防火墙规则之iptables
防火墙规则之iptables
一 如何禁止外面应用对某个端口访问
iptables -I INPUT -p TCP ! --source 127.0.0.1 --dport 8080 -j DROP
iptables -I INPUT -p TCP ! --source 127.0.0.1 --dport 9200 -j DROP
这条命令的意思是拒绝外面的所有的IP对本机的8080和9200端口的访问,但是允许本地的127.0.0.1以及localhost能够访问本地的9200以及8080端口
二 iptables的INPUT链的一些拓展
iptables -t filter -A INPUT -s 10.88.32.20 -d 10.88.32.19 -p tcp -m multiport --dport 80,22 -m state --state NEW -j DROP
解释:该条命令使用的是filter表,INPUT链,拒绝10.88.32.20网段的IP访问主机80,22端口
-t 使用的是filter表也可以省略
-A 插入的形式
-s 源端的ip地址
-p tcp协议
-m 制定mac地址,多端口或者对tcp各种状态的限制等
-j 动作 丢弃或者接受
注意:这个生效的前提是iptables里面的规则不能与其有冲突
三 还可以针对某个网段的IP进行限制访问
例如: iptables -t filter -A INPUT -p tcp -s 10.88.0.0/16 -d 10.88.32.19 -m multiport --dport 80,22 -m state --state NEW -j DROP
用法解释:10.88.32.19这个IP对于源IP是10.88.0.0/16网段的
四 针对服务的某个端口仅仅只对指定的IP开放
例如: iptables -t filter -A INPUT -p tcp ! -s 10.88.32.20 -d 10.88.32.19 -m multiport --dport 80,22 -m state --state NEW -j DROP
用法解释:10.88.32.19这个地址的80以及22的端口只能允许10.88.32.19这个ip访问
五 针对某个机器的某些端口只对某个网段访问支持
例如:iptables -t filter -A INPUT -p tcp ! -s 10.88.0.0/16 -d 10.88.3.20 -m multiport --dport 80,22 state --state NEW -j DROP
六 如何删除一条iptables规则
iptables -D chainname[INPUT/OUPPUT/FORWARD]
例如: iptables -D INPUT 5
意思是删除本机的INPUT表的第五条规则
七 使用iptables对服务器禁止ping命令
iptables -t filter -A INPUT -p icmp ! -s 10.88.0.0/16 -d 10.88.32.19 -m state --state NEW -j DROP
用法解释:这条命令是可以让目的IP为10.88.32.19的服务器仅仅接受来自10.88.0.0/16网段的ip的ping测试
八 iptables的OUTPUT链的拓展
8.1 不允许本机服务器对外面所有的机器进行ping命令
iptables -t filter -A OUTPUT -p icmp -j DROP
8.2 仅仅允许对指定的10.88.0.0/16网段进行ping命令访问
iptables -t filter -A OUTPUT ! -d 10.88.0.0/16 -m state --state NEW -j DROP
8.3 本机仅仅只能对10.88.0.0/16网段的指定22,8888端口访问
iptables -t filter -A OUTPUT -p tcp ! -d 10.88.0.0/16 -m multiport --dport 22,8888 -m state --state NEW -j DROP
8.4 禁止mac为00:0c:29:27:55:3F的访问本机的22端口
iptables - t filter -A INPUT -p tcp -m tcp -s 10.88.0.0/16 --dport 22 -m mac --mac-source 00:0c:29:27:55:3F -j DROP
8.5 防止DDOS攻击
iptables -t filter -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-brust 100 -j ACCEPT
当链接数超过100的时候允许最多每分钟25个进行链接
九 iptables的NAT链的拓展
9.1 在同一个网段的地址转换,我希望的是将来自10.88.32.20的8888端口转发到10.88.32.19的80端口上面
iptables -t nat -A PREROUTING -p tcp -d 10.88.32.20 --dport 8888 -j DNAT --to-destination 10.88.32.19:80
iptables -t filter -A INPUT -p tcp -m tcp --dport 8888 -j ACCEPT
注意: 更详细的规则描述可以参考
https://www.cnblogs.com/kevingrace/p/6265113.html