/iptables

Created Wed, 16 Aug 2023 11:12:12 +0900

iptables简介

iptables 是一个在 Linux 操作系统上用于配置网络包过滤规则的工具。它允许系统管理员定义规则,以控制网络流量的流向,从而实现网络安全和流量管理。iptables 基本上是 Linux 内核中的一个防火墙管理工具,用于处理网络数据包的过滤、转发、伪装(NAT)等功能。

iptables常用命令

查看iptables规则

iptables -vnL

清空iptables规则

iptables -F

添加iptables规则

由于iptables是由上至下进行拦截的,所以添加时需要注意顺序,千万不要把drop写在第一行!

# 插到队尾(A其实就是Append)
iptables -A INPUT -s 10.252.12.34 -p tcp --destination-port 9200  -j ACCEPT
  
# 插到队头(I其实就是Insert)
iptables -I INPUT -s 10.252.34.56 -p tcp --destination-port 9200  -j ACCEPT

保存(重启生效)ipatbles规则

service iptables save

举例说明

step1:添加白名单之前设置定时任务清除iptables规则,防止出现误操作导致无法访问机器。

# 添加crontab任务(每30分钟清除一次):
crontab -e
*/30 * * * * /sbin/iptables -F

step2:添加白名单并且生效(第三行为【允许本机】,第四行为【拦截所有】)

iptables -I INPUT -s 10.252.12.34 -p tcp --destination-port 9200  -j ACCEPT
iptables -I INPUT -s 10.252.34.56 -p tcp --destination-port 9200  -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 9200  -j ACCEPT
iptables -A INPUT -p tcp --destination-port 9200  -j DROP

service iptables save

step3:校验

curl -X GET 127.0.0.1:9200

step4:确认无误后删除定时任务

crontab -e
#删除掉*/30 * * * * /sbin/iptables -F这一行