服务器的防火墙是第一道防线,能够有效阻挡恶意流量、降低攻击的风险、控制访问权限。Linux服务器的防火墙一般需要涉及iptables、firewalld 和 ufw(Uncomplicated Firewall)等工具,它们各具特点,适用于不同的应用场景。下面为大家分享Linux服务器防火墙部署的全过程。
Linux防护墙的核心功能是管理数据包的流入和流出,用一些列规则来决定哪些连接能通过,哪些不能通过。不同Linux发行版防火墙的部署和管理工具有所不同。Ubuntu通常使用ufw 作为默认防火墙,而CentOS 7及更高版本则采用firewalld,而iptables依然是许多高级用户和传统服务器管理的首选。
Ubuntu和Debian系统上,ufw提供了一种更为简洁易用的方式来管理防火墙规则。默认情况下,ufw可能未启用,用户可以通过以下命令激活它:
sudo ufw enable
启用后检查当前防火墙状态:
sudo ufw status
并允许SSH访问:
sudo ufw allow 22/tcp
如果需要开放HTTP(80端口)和HTTPS(443端口),可以执行以下命令:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
为了提高安全性,管理员还可以设置默认规则,例如默认拒绝所有入站连接,仅允许特定端口:
sudo ufw default deny incoming
sudo ufw default allow outgoing
对于需要远程管理的服务器,可以限制SSH登录来源,例如仅允许特定IP访问SSH:
sudo ufw allow from 192.168.1.100 to any port 22
删除规则用:
sudo ufw delete allow 22/tcp 来移除已开放的端口。
而在CentOS和RHEL等系统上,默认的防火墙管理工具是firewalld,它相比iptables更加动态化,可以在不影响现有连接的情况下更新规则。firewalld以“区域(zone)”的概念管理网络接口,例如 public、internal和trusted等,每个区域都可以有不同的规则。要启动 firewalld并查看当前状态,可以使用:
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --state
如果需要开放特定端口,例如SSH、HTTP和HTTPS,可以执行:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
其中permanent选项表示规则会被永久保存,而reload 用于应用新的配置。如果要查看当前已开放的端口,可以使用:
sudo firewall-cmd --list-all
高级用户而言iptables依然是灵活性最高的防火墙工具。iptables允许手动定义复杂的规则集,查看当前规则:
sudo iptables -L -v
添加规则如允许SSH访问:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁止某个IP地址访问服务器:
sudo iptables -A INPUT -s 192.168.1.200 -j DROP
iptables规则默认不会持久化,服务器重启后会丢失,因此需要手动保存规则。在Ubuntu系统上,可以使用iptables-save和iptables-restore命令来持久化规则,而在CentOS系统上,则可以使用service iptables save来保存配置。
除了基本的端口管理,Linux防火墙还可以配合Fail2Ban等工具自动检测并封锁恶意IP。例如,Fail2Ban可以监控SSH登录失败次数,并自动封禁攻击者IP,以防止强制破解:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
在/etc/fail2ban/jail.conf 文件中,可以配置SSH规则,例如:
[sshd]
enabled = true
port = 22
maxretry = 5
bantime = 3600
某个IP地址连续5次输入错误密码将被封禁1小时。当服务器暴露在公网时能有效提高服务器的安全性。
在互联网安全威胁日益增长的今天,合理配置防火墙是系统安全的基础,也是服务器稳定运行的强保障。