防火墙 (iptables)
iptables 和 firewalld 都是不是真正意义上的防火墙,只是将规则交给netfilter进行过滤,本身并不具备过滤功能RHEL7中使用firewalld服务替代了iptables,但是iptables依然可用
Iptables
iptables [-t 表] 选项 [链] [条件] [-j 控制类型]
规则策略重启后失效,保存规则需执行 service iptables save
表
选项
链
条件
控制类型
实例
仅允许来自于 192.168.10.0/24域的用户连接本机器SSH服务
不允许任何用户访问本机的12345端口
拒绝其他用户从"eno167777734"网卡访问本机HTTP服务的数据包
禁止用户访问 www.my133t.org
禁止IP地址为 192.168.10.10的用户上网
SNAT 源地址转换技术 (内网多用户通过一个外网地址上网)
原理图
使用iptables实现SNAT源地址转换
实现自动外网地址转换
DNAT 目的地地址转换技术(使外网IP用户访问局域网内不同的服务器)
原理图
互联网客户机访问内网 192.168.10.6
Iptables
iptables 用于创建数据过滤的NAT(网络地址转换)规则iptables 命令中设置数据过滤或处理数据包的规则是策略,多个策略组成一个链
iptables [-t 表] 选项 [链] [条件] [-j 控制类型]
规则策略重启后失效,保存规则需执行 service iptables save
表
用于容纳规则链
- raw : 确定是否对改数据包进行状态跟踪
- mangle :为数据包设置标记
- nat : 修改数据包中的源,目标IP地址或者端口
- filter : 确定是否放行该数据包(过滤)
没有指定表的情况下默认指定filter表
raw -> mangle -> nat -> filter
选项
- -P 设置默认策略
- -F 清空规则链
- -L 查看规则链
- -A 在规则链的末尾加入新规则
- -I num 在规则链的头部加入规则
- -D num 删除某一条规则
- -s 匹配来源地址
- -d 匹配来源目标
- -p 匹配协议, tcp 等…
- -i 网卡名称 匹配从这块网卡流入的数据
- -o 网卡名称 匹配从这块网卡流出的数据
- -dport num 匹配目标端口号
- -sport num 匹配来源端口号
链
- PREROUTING (路由前) : 在进行路由选择前处理数据包
- INPUT : 处理输入数据包
- OUTPUT : 处理出站数据包
- FORWARD (转发): 处理转发的数据包
- POSTROUTING (路由后): 在进行路由选择后处理数据包
不指定规则链则表示表内所有的规则链
规则链会一次匹配,匹配到合适的规则即停止,LOG除外,没有匹配的按默认处理
入站顺序:PREROUTING -> INPUT
出站顺序:OUTPUT -> POSTROUTING
转发顺序:PREROUTING -> FORWARD -> POSTROUTING
条件
- ACCEPT 通过
- LOG 记录交个下一个规则
- REJECT 拒接通过,但是会给拒接提示
- DROP 直接丢弃
控制类型
实例
查看已有规则 iptables -L
清空已有规则 iptables -F
将INPUT链规则默认设置为拒接 iptables -t fileter -P INPUT -j drop
允许所有的Ping操作 iptables -I INPUT -p icmp -j ACCEPT
对未匹配到的包通过 iptables -A INPUT -j ACCEPT
仅允许来自于 192.168.10.0/24域的用户连接本机器SSH服务
得保证运行规则在拒绝规则的前边
iptables -t filter -l INPUT -s 192.168.10.0/24 -p tcp –dport 22 -j ACCEPT
iptables -t filter -A INPUT -p tcp -dport 22 -j DROP
不允许任何用户访问本机的12345端口
iptables -l INPUT -p tcp –dport 12345 -j REJECT
iptables -l INPUT -p udp –dport 12345 -j REJECT
拒绝其他用户从"eno167777734"网卡访问本机HTTP服务的数据包
iptables -l INPUT -i eno167777734 -p tcp –dport 80 -j REJECT
禁止用户访问 www.my133t.org
iptables -l FORWARD -d www.my1335.org -j DROP
禁止IP地址为 192.168.10.10的用户上网
iptables -l FORWARD -s 192.168.10.10 -j REJECT
SNAT 源地址转换技术 (内网多用户通过一个外网地址上网)
原理图
总是通过网关服务器进行分发动作
使用iptables实现SNAT源地址转换
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eno16777735 -j SNAT –to-source 111.196.211.212
实现自动外网地址转换
MASQUERADE 外网IP地址不稳定的情况下,MASQUERADE(动态伪装)会自动获取外网地址,并改为当前的外网地址;
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
DNAT 目的地地址转换技术(使外网IP用户访问局域网内不同的服务器)
原理图
互联网客户机访问内网 192.168.10.6
iptables -t nat -A PREROUTING -i eno677745 -d 61.213.123.123 -p tcp -dport 80 -j DNAT –to-destination 192.168.10.6

浙公网安备 33010602011771号