Linux作为一种流行的操作系统,其安全性一直是备受关注的话题。在实践中,设置防火墙和开放端口是保护Linux服务器安全的关键步骤。本文将介绍如何通过实战操作在Linux中设置防火墙和开放端口。
设置防火墙
在Linux中,常用的防火墙软件包括iptables和firewalld。在本文中,我们将使用firewalld。
首先,检查firewalld服务是否在运行中。运行以下命令:
systemctl status firewalld
如果没有,则输入以下命令启动它:
systemctl start firewalld
添加服务
接下来,我们需要定义允许的服务端口。可以检查firewalld默认配置设置,然后为需要开放的端口添加服务。
你可以使用以下命令查看当前已定义的服务:
firewall-cmd --list-services
要添加一个服务,请使用以下命令:
firewall-cmd --add-service=服务名 --permanent
【注意】:在每个服务名之后,必须使用' --permanent'选项将该服务配置写入永久规则集。
例如,要为SSH服务添加端口22,请使用以下命令:
firewall-cmd --add-service=ssh --permanent
添加规则后,重新加载firewalld配置以使更改生效:
firewall-cmd --reload
现在,你的防火墙已设置并保护了Linux服务器。
开放端口
在某些情况下,我们需要在Linux服务器上打开特定的端口。例如,如果你需要在Linux服务器上运行Web服务器,则必须在服务器的防火墙保护下打开HTTP端口80和HTTPS端口443。
要打开一个端口,可以输入以下命令:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
例如,要打开端口80并以永久规则添加到防火墙,请运行以下命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
同样,在完成开放端口配置后,你需要重新加载firewalld配置以使更改生效:
firewall-cmd --reload
【提示】:在示例中,我们将防火墙规则添加到'public'区域。你还可以将规则添加到其他区域,例如'internal'、'external'或'work'.
如果你需要检查已打开的端口,请运行以下命令:
firewall-cmd --zone=public --list-ports
针对某个IP
此时需要采用到富规则,如下:
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="XX.XX.XX.XX" accept' --permanent
添加之后需要重启生效:
firewall-cmd --reload
针对某个IP的某个端口
此时需要采用到富规则,如下:
firewall-cmd --permanent --add-rich-rule="rulefamily="ipv4" source
address="XX.XX.XX.XX" portprotocol="tcp" port="6379" accept"
添加之后需要重启生效:
firewall-cmd --reload
针对一个ip段访问
此时需要采用到富规则,如下:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
address="XX.XX.XX.XX/16" accept"
添加之后需要重启生效:
firewall-cmd --reload
针对一个ip段的某个端口
此时需要采用到富规则,如下:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source
address="xx.xx.xx.xx/24" port protocol="tcp" port="9200" accept"
添加之后需要重启生效:
firewall-cmd --reload
查看防火墙现有配置
firewall-cmd --list-all
获取所有支持的服务:
firewall-cmd --get-services