安装配置指南
以Centos7为例,iptables默认情况并没有systemd服务因此需要手动安装:
安装防火墙
yum install -y iptables
开机自启,并启动防火墙
systemctl stop firewalld
systemctl disable firewalld
清空所有规则,禁止输入、允许转发和输出,打开关键端口。
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j DROP
保存配置(持久化)
iptables-save > /etc/sysconfig/iptables
创建自启配置恢复服务:
vi /lib/systemd/system/iptables-restore.service
内容如下:
[Unit]
Description=Restore iptables firewall rules
Before=network.target
Conflicts=shutdown.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/sbin/iptables-restore /etc/sysconfig/iptables
[Install]
WantedBy=basic.target
设置应用服务,设置开机启动
systemctl daemon-reload
systemctl enable iptables-restore.service
systemctl start iptables-restore
systemctl status iptables-restore
查看配置当前防火墙配置情况
iptables -nvL
如果需要可以使用下面命令删除已经开放的端口
iptables -t filter -D INPUT -p tcp --dport 3306 -j ACCEPT
如果需要可以使用下面命令删除已经开放的端口
iptables -t filter -D INPUT -p tcp --dport 3306 -j ACCEPT
iptables扩展配置
iptables的配置方式可用过iptables的扩展手册查询:
man iptables-extensions
允许指定IP范围
# 源IP范围
-m iprange --src-range 192.168.1.50-192.168.1.56
# 目的IP范围
-m iprange --dst-range 192.168.1.50-192.168.1.56
允许指定端口范围
# 源端口
-m multiport --sports 8080,9000,30000:32000
# 目的端口
-m multiport --dports 8080,9000,30000:32000
参考文献
[1]. 博客园 . iptables持久化方案 . godenstone . 2018.04 . https://www.cnblogs.com/goldenstones/articles/8868577.html
[2]. linux-training.be . Chapter 14. iptables firewall . http://linux-training.be/networking/ch14.html
[3]. 简书 . . iptables拓展规则(多端口、根据IP地址范围、MAC地址设置). 一个小运维 . 2021.05 . https://www.jianshu.com/p/5bee3be85f20