接防火墙配置上篇
显式扩展:
-m limit
--limit 3/min 速率
--limit-burst 30 峰值
-m limit
--limit 3/min 速率
--limit-burst 30 峰值
用法示例:
[root@localhost ~]# iptables -A INPUT -p icmp -m limit --limit 5/minute --limit-burst 8 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p icmp -m limit --limit 5/minute --limit-burst 8 -j ACCEPT
通过-m limit模块实现远程登录控制
[root@localhost ~]# iptables -A INPUT -p icmp -m limit --limit 5/minute --limit-burst 8 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p icmp -m limit --limit 5/minute --limit-burst 8 -j ACCEPT
通过-m limit模块实现远程登录控制
[root@localhost ~]# iptables -A INPUT -d 192.168.0.7 -p tcp --dport 22 -m state --state NEW -m limit --limit 2/minute --limit-burst 2 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -d 192.168.0.7 -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -A INPUT -d 192.168.0.7 -p tcp --dport 22 -j DROP
-m connlimit 限定最大连接数(每个IP)
[!] --connlimit-above n
多于n个表示满足条件,若条件为=
DNAT:
打开web服务并记录日志
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 80 -j LOG --log-prefix "iptables (web) --"
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.6
开打FTP服务
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 21 -j DNAT --to-destination 192.168.0.7
[root@localhost ~]# iptables -A INPUT -d 192.168.0.7 -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -A INPUT -d 192.168.0.7 -p tcp --dport 22 -j DROP
-m connlimit 限定最大连接数(每个IP)
[!] --connlimit-above n
多于n个表示满足条件,若条件为=
-m iprage IP范围
--src-range ip-ip
--dst-range ip-ip
--src-range ip-ip
--dst-range ip-ip
例如:
-m iprange --src-range 172.16.100.1-172.16.100.100
-m mac 限定源mac地址
-m iprange --src-range 172.16.100.1-172.16.100.100
-m mac 限定源mac地址
例如:
--mac-source XX:XX:XX:XX:XX:XX
-m string 做字符串匹配
--algo {bm|kmp} 指定匹配算法
--string "PATTERN" 指定匹配模式
--mac-source XX:XX:XX:XX:XX:XX
-m string 做字符串匹配
--algo {bm|kmp} 指定匹配算法
--string "PATTERN" 指定匹配模式
用法示例:
[root@localhost ~]# iptables -I INPUT 1 -d 192.168.0.6 -p tcp --dport 80 -m string --algo kmp --string "sex" -j DROP
[root@localhost ~]# iptables -I OUTPUT 1 -s 192.168.0.6 -p tcp --dport 80 -m string --algo kmp --string "sex" -j DROP
-m recent
--name 创建存放IP的列表
--set 将符合条件的地址添加到列表中
--rcheck
--update 重新设定禁锢时间
--remove 从列表中释放
--seconds seconds 指定禁锢时间
--hitcount 某种行为达到几次,添加至指定列表
[root@localhost ~]# iptables -I INPUT 1 -d 192.168.0.6 -p tcp --dport 80 -m string --algo kmp --string "sex" -j DROP
[root@localhost ~]# iptables -I OUTPUT 1 -s 192.168.0.6 -p tcp --dport 80 -m string --algo kmp --string "sex" -j DROP
-m recent
--name 创建存放IP的列表
--set 将符合条件的地址添加到列表中
--rcheck
--update 重新设定禁锢时间
--remove 从列表中释放
--seconds seconds 指定禁锢时间
--hitcount 某种行为达到几次,添加至指定列表
--update 是指每次建立连接都更新列表
--seconds必须与--rcheck或者--update同时使用
--hitcount必须与--rcheck或者--update同时使用
--seconds必须与--rcheck或者--update同时使用
--hitcount必须与--rcheck或者--update同时使用
-j TARGET
ACCEPT 接受
DROP 丢弃
REJECT 拒绝 可以跟选项表明拒绝原因
REDIRECT 重定向(端口)
DNAT 目标地址转换
SNAT 源地址转换
MASQUERADE 地址伪装
LOG 记录日志
RETURN 从自定义链返回到主链
ACCEPT 接受
DROP 丢弃
REJECT 拒绝 可以跟选项表明拒绝原因
REDIRECT 重定向(端口)
DNAT 目标地址转换
SNAT 源地址转换
MASQUERADE 地址伪装
LOG 记录日志
RETURN 从自定义链返回到主链
保存规则:
service iptables save 使用系统自带的脚本保存,保存位置一般为/etc/sysconfig/iptables
没有脚本的情况下保存:
iptables-save > /etc/sysconfig/iptables.3(自己定义,可以保存任何位置)
iptables-restore < /etc/sysconfig/iptables.3(从哪一个保存规则的文件中恢复)
service iptables save 使用系统自带的脚本保存,保存位置一般为/etc/sysconfig/iptables
没有脚本的情况下保存:
iptables-save > /etc/sysconfig/iptables.3(自己定义,可以保存任何位置)
iptables-restore < /etc/sysconfig/iptables.3(从哪一个保存规则的文件中恢复)
自定义链的用法:
[root@localhost ~]# iptables -N come_in 创建自定义链
iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP 向自定义链中添加规则,同向系统链中添加规则一样
iptables -A INPUT -d 172.16.100.1 -j clean_in 调用自定义链
iptables -A clean_in -d 172.16.100.1 -j RETURN 返回主链
源地址和目标地址转换:
VMnet0(桥接):实现虚拟机与外网通信,虚拟机与虚拟机通信,虚拟机与物理机通信(直接通过虚拟交换机连接到物理网卡上)
VMnet1:实现虚拟机与物理机通信,虚拟机与虚拟机通信,虚拟机不能与外网通信
VMnet8:nat模式
同一台虚拟机上两块网卡不能配置位于同一网段内的地址
linux地址属于主机不属于网卡
源地址转换:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.16.3.1 将源地址为192.168.0.0网段的IP地址都转换为172.16.3.1
查看:iptables -t nat -L -n -v
VMnet1:实现虚拟机与物理机通信,虚拟机与虚拟机通信,虚拟机不能与外网通信
VMnet8:nat模式
同一台虚拟机上两块网卡不能配置位于同一网段内的地址
linux地址属于主机不属于网卡
源地址转换:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.16.3.1 将源地址为192.168.0.0网段的IP地址都转换为172.16.3.1
查看:iptables -t nat -L -n -v
实现NAT转换,必须打开路由转发功能
查看转发功能是否打开: cat /proc/sys/net/ipv4/ip_forward,0表示关闭,1表示打开
打开转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward
关闭转发功能:echo 0 > /proc/sys/net/ipv4/ip_forward
放行到外网的80端口访问:
iptables -P FORWARD DROP将默认策略设置为拒绝
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
查看转发功能是否打开: cat /proc/sys/net/ipv4/ip_forward,0表示关闭,1表示打开
打开转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward
关闭转发功能:echo 0 > /proc/sys/net/ipv4/ip_forward
放行到外网的80端口访问:
iptables -P FORWARD DROP将默认策略设置为拒绝
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
DNAT:
打开web服务并记录日志
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 80 -j LOG --log-prefix "iptables (web) --"
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.6
开打FTP服务
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp --dport 21 -j DNAT --to-destination 192.168.0.7
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp -m -state --state NEW -j DNAT --to-destination 192.168.0.7
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp -m state --state RELATED,ESTABLISHED -j DNAT --to-destination 192.168.0.7
如果开放FTP服务,必须开启RELATED状态
iptables -t nat -A PREROUTING -d 1.2.3.1 -p tcp -m state --state RELATED,ESTABLISHED -j DNAT --to-destination 192.168.0.7
如果开放FTP服务,必须开启RELATED状态
开打路由转发功能
iptables -P FORWARD DROP
放行web服务
iptables -A FORWARD -d 192.168.0.6 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.6 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
放行FTP服务:
iptables -A FORWARD -d 192.168.0.6 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.6 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED -j ACCEPT
放行web服务
iptables -A FORWARD -d 192.168.0.6 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.6 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
放行FTP服务:
iptables -A FORWARD -d 192.168.0.6 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.6 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED -j ACCEPT