1、iptables
iptables分为四表五链:
四表:mangle raw nat filter
五链:input output forward prerouting postrouting
2、查看
查看iptables规则
iptables -vnL
-v 查看时显示更详细信息
-n 所有字段以数字形式显示
-L 查看规则列表
3、允许和拒绝
iptables -t filter -A INPUT -s 192.168.91.101 -j ACCEPT
接受来自192.168.91.101的包
拒绝来自 192.168.91.101 的源地址 直接丢弃
iptables -t filter -A INPUT -s 192.168.91.101 -j DROP
4、删除规则
iptables -D INPUT 1 删除第1条规则
5、黑白名单
修改默认规则为 白名单后自己也无法访问
所以要先把重要的写入 再更改为白名单
iptables -P INPUT DROP
将默认规则改为禁止
在规则最后一条加上拒绝所有也可以实现白名单
6、清空规则
iptables -F
清空规则
7、扩展模块
显示扩展 必须加 -m 选项
隐式扩展 -p tcp 指定了特殊的协议无需再次使用-m 选项
1、tcp
指定端口号
iptables -I INPUT 3 -s 192.168.91.101 -p tcp --dport 80 -j REJECT
iptables -I INPUT 3 -s 192.168.91.101 -p tcp --dport 80:82 -j REJECT 连续的
2、icmp
A可以ping通B B 不可以ping通A
双方都不可以ping:
iptables -A INPUT -s 192.168.91.101 -j REJECT
拒绝请求包:
iptables -A INPUT -s 192.168.91.101 -p icmp --icmp-type 8 -j REJECT
拒绝回复包:
iptables -A OUTPUT -d 192.168.91.101 -p icmp --icmp-type 0 -j REJECT
3、iprange
iptables -A INPUT -m iprange --src-range 192.168.91.101-192.168.91.103 -j REJECT
指定 源地址为192.168.91.101-192.168.91.103 3个地址无法访问 当前主机
4、mac
iptables -A INPUT -m mac --mac-source 00:0c:29:2a:d6:05 -j DROP
指定mac地址的包全部拒绝
只有源mac没有目标mac
5、state状态
NEW:无论是我发出的第一个包还是收到的第一个包 都叫NEW
ESTABLISHED:NEW 之后都叫ESTABLISHED,除了第一个
实现功能老用户可以访问,新用户不可以访问
iptables -AINPUT -m state --state ESTABLISHED -j ACCEPT
已在ping 的可以继续ping,停了也不可以通了,xshell也不可以再连iptables -AINPUT -m state --state NEW -j REJET
新用户拒绝
A不能访问我,我可以访问A 单向通讯
iptables -A INPUT -s 192.168.91.101 -j REJECT
不行都不可以了iptables -A INPUT -s 192.168.91.101 -m state --state NEW -j REJECT
第一个包是请求包只要禁止请求包即可
8、自定义链
iptables -N web 自定义链
iptables -vnL 可以看到自己定义的链
iptables -E web WEB 改名
删除自定义链
iptables -F INPUT
iptables -F WEB
iptables -X WEB
9、nat
9.1、snat
iptables -t nat -A POSTROUTING -s 192.168.91.100/24 -o ens36 -j SNAT --to 12.0.0.254
将源地址为192.168.91.0段的私网地址全部 转化为网关地址
iptables -t nat -A POSTROUTING -s 192.168.91.0/24 -o ens36 -j MASQUERADE
如果地址不固定可以设置
9.2、dnat
iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.91.100
9.3、用内网查看外网的网站
配置三台机器:一个外网服务器做wed网站,一个服务器做nat转换,一台做内网机
用外网服务器配置一个wed页面
配置nat转换服务器
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.64.0/24 -j SNAT --to \
12.255.255.2
服务器进行内网到外网的转换
iptables -t nat -A PREROUTING -i ens36 -d 12.255.255.2 -p tcp --dport 80 -j \
DNAT --to 192.168.64.100:8080
服务器进行外网到内网的转换
iptables -vnL
使用内网客户端打开wed
curl 12.0.0.3
使用内网客户端打开外网wed