1、WEB 地址认证总体设计目标:1. 未认证的主机接入网络的时候报文不能通过交换机2. 主机进行 TCP(HTTP 服务)连接时(目前只对 TCP 进行处理)交换机重定向到认证服务器3. 主机与认证服务器进行交互4. 认证服务器把认证结果返回给交换机,通过认证在开启 ACL 条目,否则不做处理。Version 0.1采用手动写代码进行三次握手欺骗,尝试失败;Version 0.2采用 IPTABLES 来进行 NAT,经过 v0.1 的失败,感觉绕过 TCP/IP 协议栈生成连接报文有问题(应该是 SEQ 的问题),利用 IPTABLES 来进行地址转换,把报文定位到认证服务器,让主机直接和认证
2、服务器连接。测试:先在 Linux 环境下进行测试,网络拓扑如下:2 0 2 . 3 8 . 2 5 4 . 2 1 31 9 2 . 1 6 8 . 7 6 . 2 4 9I P : 2 0 2 . 3 8 . 2 5 4 . 1 9 9目的:通过在 202.38.254.199 设置 iptables,把访问 http:/202.38.254.199 重定向到 http:/192.168.76.249 上的 web 服务器。步骤 1:在 199 上配置 iptables 命令如下:Iptables -t nat -A PREROUTING p -tcp -dport 80 -j -DNAT
3、 -to-destination 192.168.76.249Iptables -t nat -A POSTROUTING -dst 192.168.76.249 -p tcp -dport 80 -j SNAT -to-source 202.38.254.199开启 ip_forward 功能Echo 1 /proc/sys/net/ipv4/ip_forward测试截图:正常访问 192.168.76.249访问 202.38.254.199可以看到,成功重定向完成。在交换机上的流程如下:1. 在交换机上配置好 iptables;2. 未认证主机尝试网络连接,交换机过滤并把报文 mirror 发送给交换机,iptables 重定向到 web 认证服务器3. 主机与 web 认证服务器通讯4. web 认证服务器把认证结果通知交换机进行后续动作。