投稿    登录
  您好,欢迎光临崔庆才的博客,最近博主在忙复习考试,可能评论和友链不能及时回应,请谅解,至17.1.12解除!

计算机网络探究二之利用PHP实现登录验证之后上网

Net 崔庆才 2273浏览 9评论

综述

在上一篇文章中,客户机可以借助路由机直接上网,并没有什么登录限制。接下来我们将加入上网登录验证,只有输入了正确的用户名和密码才可以通过验证,然后才可以访问互联网。

接下来,就跟随我用PHP来实现登录验证吧。

环境配置

在这之前,你需要配置一下LAMP环境,也就是Apache,MySQL,PHP开发环境,依次执行如下命令即可。

如果配置出现问题,请查阅相关资料。

apache默认的目录为 /var/www/html,我们这时访问

localhost 或者 192.168.122.4,都可以出现apache的欢迎界面,就证明我们配置成功了。

路由初始设置

为了在登录之前限制主机的上网,我们需要利用iptables规则来对数据包的转发加以限制。同时,将网页重定向到本机的登录界面。

初始路由设置如下

首先清除所有的iptables规则,然后设置前一篇我们说的IP伪装,这时可以客户机可以通过主机上网。

接下来的一条规则则禁用了来自 192.168.122.0 网段的所有IP的数据包转发,然后设置可访问DNS服务器,最后一条则设置了所有的tcp连接自动跳转到 192.168.122.4,也就是我们刚才配置的服务器。

可以把以上规则保存为脚本,比如叫 init.sh 来运行,也可以添加到 /etc/rc.local 中,开机自动运行。

登录页面

访问到192.168.122.4时,我们需要给用户呈现的当然不是刚才显示的apache欢迎页面,而是登录的输入框以及登录按钮界面。

所以,登录界面代码如下

其中的js,jquery文件请大家自行引入。

预览一下效果

20151008151728

在这里我们设置了两个按钮,一个是登录,一个是下线。

数据库查询验证

接下来我们新建一个数据库,例如我新建了一个数据库叫auth,然后数据表user,里面有三个字段。分别是id,username,password,我插入了一条数据。

20151008152059

接下来我们就尝试一下登录,提交到 login.php 文件验证一下。

其中,最重要的部分莫过于

这一行代码了,此处便是登录验证用户名和密码之后执行的一个 Linux 脚本命令。

在这里我把要执行的脚本写入了login.sh文件中,传入的参数便是ip地址。

那么login.sh里面发生了什么事情呢,我们来看一下。

$1的意思就是获取第一个参数,在这里就是IP地址,脚本主要做的事情就是放行来自这个IP地址的数据包,让其正常访问互联网。

保存脚本后,记得给脚本赋予权限

-D的意思就是删除,因为iptables是可以添加多次相同的规则的,在添加之前删除一下,以防止多次添加。

在这里

执行命令脚本前,我们加了sudo,意思就是管理员身份运行,但是仍然可能导致权限问题,因为命令的执行者是PHP(其实是www-data),而并不是root用户,所以我们需要修改一下执行权限。

首先通过PHP文件获取执行该命令的用户是叫什么,比如新建一个 info.php 文件,输入如下内容:

看一下运行结果

20151008153424

嗯,果然,执行用户是www-data,这样我们只需要给www-data添加一个执行权限就好了。

修改 /etc/sudoers 文件

添加一行

意思是www-data以root身份运行并且不需要密码。

20151008153700

好,保存之后,我们尝试一下,就可以登录啦。

测试登录

在路由主机(Ubuntu Route)里面,初始化一下iptables规则,然后查看当前规则。

我们发现当前访问都是被阻止的,而且tcp连接会自动跳转到 192.168.122.4

20151008154216

现在我们登录客户机,随机打开一个网址,比如百度,就发现自动跳转到了登录界面

20151008154629

输入用户名密码,尝试登陆,比如之前插入数据库的是cqc,123456,输入之后登录。

20151008162712

提示登录成功之后,我们便可以欢乐地上网啦。

20151008162926

好,这样我们就完成了验证之后上网啦。

下线操作

同样的,下线操作我们同样写一个logout.php

登出的脚本如下,其实就是单纯去除了刚才添加的路由规则

配置方式和登录一样,大家可以尝试下。

源代码

在这里提供大家源代码下载

源码下载

如有问题,欢迎交流。

转载请注明:静觅 » 计算机网络探究二之利用PHP实现登录验证之后上网

喜欢 (17)or分享 (0)

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

  1. 家里买了台42寸的电视机,比之前那台21寸的大了很多。我们一家人都很开心,还记得姥姥当时问我,“这下新闻联播里的那俩主持人能看全身了吧?”