CentOS VPS 防火墙配置指南,安全防护从基础开始
卡尔云官网
www.kaeryun.com
在运营 CentOS 虚拟服务器(VPS)时,防火墙配置是保障网络安全的重要环节,通过防火墙,可以有效限制未经授权的访问,保护服务器免受恶意攻击,本文将详细介绍如何配置 CentOS VPS 的防火墙,帮助您从零开始掌握这一关键技能。
什么是防火墙?
防火墙(Firewall)是一种网络设备或软件,用于监控并控制进出网络的流量,在 CentOS VPS 中,防火墙通常通过系统自带的 firewalld 软件或iptables 脚本进行配置,防火墙的作用包括:
- 阻止未经授权的访问:阻止未授权的端口连接。
- 允许必要的通信:确保 VPS 与网络上的其他设备正常通信。
- 过滤恶意流量:识别并拦截潜在的恶意攻击,如 DDoS 攻击。
配置 CentOS VPS 防火墙的步骤
确保防火墙服务已启动
在 CentOS 中,默认的防火墙服务是 firewalld,要确保它已经启动并监听网络,可以执行以下命令:
sudo systemctl status firewalld
如果输出显示服务未启动,可以使用:
sudo systemctl start firewalld
添加防火墙规则
防火墙规则可以限制特定端口的流量,或根据规则进行过滤,以下是常见的配置示例:
示例 1:禁止来自未知源的连接
sudo nano /etc/firewalld/firewall0.conf
在编辑器中输入以下内容:
[firewall0] interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000
保存并退出编辑器,然后重新加载防火墙规则:
sudo systemctl reload firewalld
示例 2:允许 HTTP/HTTPS 端口通向外部网络
sudo nano /etc/firewalld/firewall0.conf
在编辑器中输入以下内容:
[firewall0] interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000
保存并退出编辑器,然后重新加载防火墙规则:
sudo systemctl reload firewalld
使用 iptables 配置防火墙
另一种常见的配置方式是使用 iptables 脚本,以下是一个简单的示例:
sudo nano /etc/sysupgrade.conf
在编辑器中输入以下内容:
[firewall] interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000
保存并退出编辑器,然后重新加载防火墙规则:
sudo systemctl reload firewalld
启用防火墙规则
在配置完规则后,需要启用防火墙规则:
sudo systemctl enable firewall0
测试防火墙配置
配置完成后,可以通过以下命令测试防火墙规则:
sudo nmap -v --script=state -p 80
如果防火墙规则生效,nmap 应该无法连接到目标端口。
常见防火墙配置示例
阻止来自未知源的连接
sudo nano /etc/firewalld/firewall0.conf
在编辑器中输入以下内容:
[firewall0] interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000
保存并退出编辑器,然后重新加载防火墙规则:
sudo systemctl reload firewalld
允许 HTTP/HTTPS 端口通向外部网络
sudo nano /etc/firewalld/firewall0.conf
在编辑器中输入以下内容:
[firewall0] interface eth0 nat-iptables-table state RELATED|ESTABLISHED nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000 interface eth0 nat-iptables-action INPUT|OUTPUT|OUTPUT nat-iptables-queue mtu 8000 interface eth0 state RELATED|ESTABLISHED action INPUT|OUTPUT|OUTPUT queue mtu 8000
保存并退出编辑器,然后重新加载防火墙规则:
sudo systemctl reload firewalld
配置 IP 包裹
IP 包裹是 CentOS 的默认防火墙配置,旨在保护 VPS 服务免受外部攻击,要查看当前的 IP 包裹规则:
sudo cat /etc/firewalld/firewall0.conf
如果输出为空,表示没有启用 IP 包裹,要启用 IP 包裹,可以执行以下命令:
sudo systemctl enable firewall0
最佳实践
- 定期更新防火墙规则:根据安全威胁的更新,定期检查并更新防火墙规则。
- 测试防火墙配置:在配置完成后,使用工具如 nmap 进行测试,确保防火墙规则生效。
- 限制不必要的端口:确保只允许必要的端口通信,避免不必要的开放端口。
- 使用 IP 包裹:启用 IP 包裹,保护 VPS 服务免受外部攻击。
配置 CentOS VPS 的防火墙是保障网络安全的重要步骤,通过合理配置防火墙规则,可以有效限制未经授权的访问,保护 VPS 服务免受恶意攻击,建议在配置完成后,定期测试防火墙规则,确保其有效性。
卡尔云官网
www.kaeryun.com