iptable实现认证

Captive Portal

Portal认证bs结构 [nodogsplash,openNDS,coova,wifidog]

管理全部dns解析

iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.0.121:53

自定义

## 连接数

sysctl -w net.netfilter.nf_conntrack_buckets=262144
sysctl -w net.netfilter.nf_conntrack_max=262144
sysctl -w net.nf_conntrack_max=262144

sysctl -a|grep  'nf_conntrack'
## --自定规则
iptables -t nat -F  #不操作

iptables -t nat  -X localDef        #删除
iptables -t nat  -X localManage  #删除
iptables -t nat  -N localDef   #创建
iptables -t nat  -N localManage   #创建


iptables -t nat -I PREROUTING   -j localManage   #加入系统
iptables -t nat -A PREROUTING   -j localDef   #加入系统

## --默认规则链
## --劫持所有web访问
iptables -t nat -A localDef -p tcp  --dport 443 -j DNAT --to-destination  192.168.0.121:9090
iptables -t nat -A localDef -p tcp  --dport 80 -j DNAT --to-destination  192.168.20.199:2028
## --劫持dns
iptables -t nat -A localDef -p udp  --dport 53 -j DNAT --to-destination 192.168.11.122:53

##--局域网互通
iptables -t nat -I localDef  -s   192.168.0.0/24 -j ACCEPT
iptables -t nat -I localDef  -d   192.168.0.0/16 -j ACCEPT
iptables -t nat -I localDef  -d   10.0.0.0/8 -j ACCEPT


## -- 上网管理链

##  --放行规则
iptables -t nat -I localManage  -s 192.168.20.222  -j ACCEPT
iptables -t nat -D localManage  -s 192.168.20.222 -j ACCEPT



## 查看
iptables -t nat -L --line-numbers


radiusdesk服务

docker-compose.yml

version: "2"
services:
 radiusdesk:
  image/]: drummerroma/radiusdesk:latest
  depends_on:
  - mysql
  container_name: radiusdesk
  ports:
  - 8888:80
  volumes:
  - $PWD/dockerdata/www/:/var/www/
  links:
  - mysql

 mysql:
  image: drummerroma/mysqlradius
  container_name: mysql
  environment:
   MYSQL_ROOT_PASSWORD: root
   MYSQL_DATABASE: rd
   MYSQL_USER: rd
   MYSQL_PASSWORD: rd
  ports:
  - 3306:3306

openwrt 路由

openwrt root/admin

安装 nodogsplash 插件

nodogsplash 服务

本质是防火墙规则组合 配置文件

/etc/config/nodogsplash

可以使用eth1 ,缺了一个非本网段验证通过上网

option gatewayinterface 'br-lan'

list authenticated_users 'allow tcp port 22'
list authenticated_users 'allow tcp port 53'
list authenticated_users 'allow udp port 53'
list authenticated_users 'allow tcp port 80'
list authenticated_users 'allow tcp port 443'


list authenticated_users 'allow all'

修改html文件

/etc/nodogsplash/htdocs


ndsctl 管理工具命令

ndsctl status

openNDS服务

/etc/config/opennds

/etc/opennds/htdocs

option gatewayinterface 'eth1'

ndsctl 管理工具命令

ndsctl status

dns劫持

## --劫持dns
iptables -t nat -A PREROUTING -p udp  --dport 53 -j DNAT --to-destination 192.168.11.122:53

iptables -t nat -A PREROUTING -i ethX -p udp --dport 53 -j DNAT --to $(get lan_ipaddr)
iptables -t nat -A PREROUTING -i ethX -p tcp --dport 53 -j DNAT --to $(get lan_ipaddr)

??

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53