TencentOS Server 3.1 如何配置iptables防火墙规则?

TencentOS Server 3.1 基于 CentOS 8,因此可以使用 iptablesfirewalld 配置防火墙。以下是使用 iptables 的配置方法:


1. 检查并停止 firewalld(如果已安装)

sudo systemctl stop firewalld
sudo systemctl disable firewalld

2. 安装 iptables 服务

TencentOS 3.1 默认可能未安装 iptables:

sudo yum install iptables-services -y

3. 启动 iptables 并设置开机自启

sudo systemctl start iptables
sudo systemctl enable iptables

4. 常用规则配置示例

(1)查看现有规则

sudo iptables -L -n -v

(2)清空现有规则(谨慎操作)

sudo iptables -F
sudo iptables -X
sudo iptables -Z

(3)设置默认策略

sudo iptables -P INPUT DROP   # 默认拒绝所有入站
sudo iptables -P FORWARD DROP # 默认拒绝转发
sudo iptables -P OUTPUT ACCEPT # 允许所有出站

(4)允许本地回环

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

(5)允许已建立的连接和关联流量

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

(6)开放常用端口

# SSH(22端口)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 其他端口(如MySQL 3306)
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

(7)允许 Ping(ICMP)

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

(8)限制 IP 访问(示例:仅允许特定 IP 访问 SSH)

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

5. 保存规则

sudo service iptables save
# 或
sudo /usr/libexec/iptables/iptables.init save

6. 查看规则文件

规则保存在 /etc/sysconfig/iptables

cat /etc/sysconfig/iptables

7. 其他常用命令

命令 说明
iptables -L -n --line-numbers 查看规则行号
iptables -D INPUT <行号> 删除指定规则
iptables-save > /path/to/backup 备份规则
iptables-restore < /path/to/backup 恢复规则

注意事项

  1. 谨慎操作:配置前确保开放 SSH 端口,避免被锁在服务器外。
  2. 测试规则:可以先在非生产环境测试。
  3. 脚本化配置:复杂规则建议写成脚本,避免手动输入错误。
  4. 云服务器额外配置:如果使用腾讯云 CVM,还需在安全组中开放相应端口。

可选:使用 firewalld(TencentOS 默认推荐)

如果希望使用更现代的防火墙管理工具:

sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload

根据实际需求选择 iptablesfirewalld 即可。

云服务器