自制上网管理系统PHP+Mysql+iptables on linux

      前言: 因公司各个楼层的会议是需要提供给用户上网使用无线,而公司内同事电脑也拥有无线网卡,为避免各种安全问题,需要给使用无线的用是设置一个密码提供上网,而并非在wifi接入时的连接密码,其实非wifi也可以认证。同时公司要求密码可设定有效期限,到期密码失效并自动删除或lock。 估计很多酒店上网管理系统跟这个功能差不多。

      构思:因本人并非编程的科班出身(因为要写的时候连PHP也完全不懂),仅仅只是为了实现该功能。实现方法

      用户上网方法:iptables的MASQUERADE功能,MAC地址帮定。

     认证方法:local - /etc/passwd 认证或 Windows AD认证

                       用户名随即的.密码随即的,生成后发给用户

                       认证成功与失败日志可在mysql查询,因使用几率太低,未开发界面,需要时打指令查询。

     管理方法:/local - /etc/passwd 本程序开发了管理界面可进行管理,可设定有效期限,到期自动删除用户,用户不可登陆linux系统 nologin。 Windows AD用户则在Windows DSA.MSC管理用户(未开发web管理界面)。

     实现方法:PHP获得用户及密码进行认证,通过则添加iptables项目。注:apache设定所有错误页面连接到该认证界面即可,用户在有权限上网之前连接的所有页面都会跳转到此页面,apache 设置透明代理,用户除了80请求,其他全部伪装去internet。

目录结构:

├─etc
│  │  sudoers                  -------------->修改sudoers文件,使apache用户能使用一些特权
│  │
│  └─sysconfig               -------------->Iptables启动时需要加载的项目(默认开启53端口)
│          iptables
│          iptables-config

└─var
    └─www
        └─html                   -------------->web程序主目录
            │  auth
            │  auth.sh           -------------->所有.sh文件为系统后台执行
            │  backup.sh
            │  cron.edit         -------------->排程项目,包括避免同一用户在2台级使用等
            │  cuur               -------------->.sh文件(没加后缀开发时未规范,不影响使用)
            │  index.php       -------------->主程序(VER.2.0)
            │  index.php.v1  -------------->主程序第一版
            │  indexv2.php   -------------->主程序第二版
            │              
            ├─admin                         -------------->管理界面主目录
            │  │  .htaccess                -------------->web界面认证文件
            │  │  autodeluser.ext       -------------->自动删除用户脚本1
            │  │  autodeluser.sh        -------------->自动删除用户脚本2,两个文件是协同工作
            │  │  calendar.php          -------------->日历,可选择用户使用有效期限
            │  │  chpasswd            -------------->新增用户设定密码时工作,无须人工干预1
            │  │  chpasswd.bak
            │  │  chpasswd.sh        -------------->新增用户设定密码时工作,无须人工干预2
            │  │  clearuspw.sh        -------------->清除密码日志
            │  │  createuser           -------------->建立用户脚本
            │  │  createuser.php     -------------->建立用户php
            │  │  cron.edit              -------------->排程项目
            │  │  deleteuser            -------------->排程项目管理界面删除用户脚本
            │  │  index.php             -------------->管理主界面
            │  │  index.php.BAK
            │  │  lastuspw              -------------->密码历史记录脚本
            │  │  log
            │  │  mailto.sh              -------------->生成的用户和密码发送Email给管理员
            │  │  random.php          -------------->随即用户和密码生成
            │  │  riqi.sh                 
            │  │  user.php               -------------->获取用户列表
            │  │  userlist                 -------------->获取用户列表脚本
            │  │  uspw.txt               -------------->密码历史记录
            │  │
            │  ├─codes                  -------------->测试时用过,可删除
            │  │      index.php
            │  │      userlist
            │  │
            │  └─logs                     -------------->用户记录打包保存
            │          uspw.20110509.tar.bz2
            │
            ├─chusr                       -------------->可删除
            └─img
                    0000.jpg                -------------->主界面背景图片

本文出自 “⑩�P磨壹��, 孀寒�i缯..” 博客,转载请与作者联系!

你可能感兴趣的:(windows,local,密码,上网,管理系统)