iptables应用
2018-07-17 03:55:42来源:博客园 阅读 ()
192.168.4.119 为本机的ip地址;每条链的规则是由上至下进行匹配,因此我们需要把范围小的规则放在上面以防被覆盖。
1)清空iptables默认规则,并自定义规则
[root@iptables ~]# systemctl start firewalld.service #启用防火墙 [root@iptables ~]# iptables -F #清空默认规则 [root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 22 -j ACCEPT #接受任何主机对本机的ssh连接请求 [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 22 -j ACCEPT #允许本机对任何主机建立ssh连接 [root@iptables ~]# iptables -A INPUT -j REJECT #最后一条规则设置为拒绝所有入站请求 [root@iptables ~]# iptables -A OUTPUT -j REJECT #最后一条规则设置为拒绝所有出站流量 [root@iptables ~]# iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.4.119 tcp dpt:22 7 1076 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 192.168.4.119 0.0.0.0/0 tcp spt:22 8 720 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
2)多端口匹配,开放21,22,23,80,3306端口
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp -m multiport --dports 21:23,80,3306 -j ACCEPT [root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p udp -m multiport --dports 21:23,80,3306 -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp -m multiport --sports 21:23,80,3306 -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p udp -m multiport --sports 21:23,80,3306 -j ACCEPT
3)连续地址的匹配,允许192.168.4.1 ~ 192.168.4.100访问80端口
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 80 -m iprange --src-range 192.168.4.1-192.168.4.100 -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m iprange --dst-range 192.168.4.1-192.168.4.100 -j ACCEPT
4)限定时间访问,只允许周一到周五 9:00~18:00 之间访问80端口
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 80 -m time --kerneltz --weekdays 1,2,3,4,5 --timestart 9:00 --timestop 18:00 -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m time --kerneltz --weekdays 1,2,3,4,5 --timestart 9:00 --timestop 18:00 -j ACCEPT
5)对报文作字符串匹配,拒绝响应带“vpn”明文字符的报文通过80端口
[root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp --sport 80 -m string --algo kmp --string "vpn" -j REJECT
6)并发连接限制,限制192.168.2.0/24网段中每个ip对3306端口最多只能有2个并发
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -s 192.168.2.0/24 -p tcp --dport 3306 -m connlimit --connlimit-upto 2 -j ACCEPT
7)对报文作速率限制,限制同时最多有5个icmp包,每秒1个icmp包
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p icmp --icmp-type 8 -m limit --limit-burst 5 --limit 60/minute -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p icmp --icmp-type 0 -j ACCEPT
8)对报文状态作匹配,开放会话状态为ESTABLISHED的连接
[root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT
9)对ftp服务作会话追踪:
# 加载ftp追踪模块
[root@iptables data]# modprobe nf_conntrack_ftp
[root@iptables data]# lsmod | grep ftp
nf_conntrack_ftp 18638 0
nf_conntrack 105745 8 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4,nf_conntrack_ipv6
# 卸载模块:rmmod nf_conntrack_ftp
# 添加iptables rules
[root@iptables data]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 21 -m state --state NEW -j ACCEPT
[root@iptables data]# iptables -I INPUT -d 192.168.4.119 -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@iptables data]# iptables -I OUTPUT -s 192.168.4.119 -m state --state ESTABLISHED -j ACCEPT
[root@iptables data]# cat /proc/net/nf_conntrack
ipv4 2 tcp 6 431995 ESTABLISHED src=192.168.4.116 dst=192.168.4.119 sport=57103 dport=21 ...
10)将对80端口的访问重定向到8080端口:
[root@iptables ~]# iptables -t nat -I PREROUTING -d 192.168.4.119 -p tcp --dport 80 -j REDIRECT --to-port 8080 [root@iptables ~]# iptables -I INPUT -d 192.168.4.119 -p tcp --dport 8080 -j ACCEPT [root@iptables ~]# iptables -I OUTPUT -s 192.168.4.119 -p tcp -m multiport --sports 80,8080 -j ACCEPT
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Kubernetes学习与应用(01)——什么是Kubernetes 2020-06-09
- 应用系统分布式构建运维 2020-05-07
- Linux三阶段之八:架构nginx实践应用 2020-05-01
- shell脚本之十:while循环及应用实践 2020-04-29
- shell脚本之十三:Shell数组应用实践 2020-04-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash