TencentOS Server 3.1 基于 CentOS 8,因此可以使用 iptables 或 firewalld 配置防火墙。以下是使用 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 |
恢复规则 |
注意事项
- 谨慎操作:配置前确保开放 SSH 端口,避免被锁在服务器外。
- 测试规则:可以先在非生产环境测试。
- 脚本化配置:复杂规则建议写成脚本,避免手动输入错误。
- 云服务器额外配置:如果使用腾讯云 CVM,还需在安全组中开放相应端口。
可选:使用 firewalld(TencentOS 默认推荐)
如果希望使用更现代的防火墙管理工具:
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
根据实际需求选择 iptables 或 firewalld 即可。
CLOUD技术笔记