在上一篇中,设置的 iptables 路由转发只是保存在内存当中,假设服务器重启,那么就会丢失该配置信息。本文中介绍如何安装 iptables(centos7 版本默认没有安装 iptables),并保存相关配置信息,做到开机自启动。
一、禁用防火墙
# 停止 firewalld
systemctl stop firewalld
# 禁用 firewalld
systemctl disable firewalld
二、安装 iptables
# 安装iptables
yum -y install iptables
# 安装iptables-services
yum -y install iptables-services
# 设置 iptables 开机启动
systemctl enable iptables
三、保存配置
# 开放 22 端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 开放 21 端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# 开放 80 端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 开放 443 端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 开放 7000 端口(frp)
iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
# 开放 1194 端口(open***)
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
# 允许 ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 允许接受本机请求之后的返回数据 RELATED,为 FTP 设置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 其他入站一律丢弃
iptables -P INPUT DROP
# 设置路由转发
# 10.8.1.0/24 网段可访问所有
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -j MASQUERADE
# 只允许 10.8.2.0/24 网段访问 192.168.2.66
iptables -t nat -A POSTROUTING -s 10.8.2.0/24 -d 192.168.2.66/32 -j MASQUERADE
# 保存上述所有配置
service iptables save
iptables 安装后会生成 /etc/sysconfig/iptables 文件,我们修改的配置会保存到该文件中。
保存配置后的 iptables 文件
# Generated by iptables-save v1.4.21 on Thu Jun 23 22:29:50 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.1.0/24 -j MASQUERADE
-A POSTROUTING -s 10.8.2.0/24 -d 192.168.2.66/32 -j MASQUERADE
COMMIT
# Completed on Thu Jun 23 22:29:50 2022
# Generated by iptables-save v1.4.21 on Thu Jun 23 22:29:50 2022
*filter
:INPUT DROP [10:2341]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [54:7208]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 7000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Jun 23 22:29:50 2022
注意:所有转发需保持 ACCEPT 状态,否则会出现 openvpn*** 能够正常连接,但是无法 ping 通内网其他机器的问题
iptables -nL # 确保以下状态
Chain FORWARD (policy ACCEPT)
target prot opt source destination
至此完成 iptables 相关配置的保存
参考资料:Linux CentOS7 安装配置 IPtables
上一篇:Open*** 配置访问权限策略