基础命令
检查防火墙状态:firewall-cmd --state
启用/关闭Firewalld:systemctl start/stop firewalld ; systemctl enable/disable firewalld
查看默认区域:firewall-cmd --get-default-zone
检查网络接口使用的区域类型:firewall-cmd --get-active-zones
打印区域配置设置:firewall-cmd --zone=public --list-all
创建新的Firewalld服务:默认服务存储在/ usr / lib / firewalld / services目录中。 创建新服务的最简单方法是将现有服务文件复制到/ etc / firewalld / services目录,该目录是用户创建的服务的位置并修改文件设置。
重新加载Firewalld服务:firewall-cmd --reload
防火墙开启后,默认拒绝所有,除了ssh服务,所有只要添加permit策略即可!
使用Firewalld转发端口
要将流量从一个端口转发到另一个端口或地址,请首先使用--add-masquerade开关为所需区域启用伪装。 例如,要为外部区域类型启用伪装:
firewall-cmd --zone=external --add-masquerade
在同一服务器上将流量从一个端口转发到另一个端口
在以下示例中,我们将流量从端口80转发到同一服务器上的端口8080:
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
将流量转发到其他服务器
在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口80:
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.2
将流量转发到其他端口上的另一台服务器
在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口8080:
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.2
如果你想使前锋永久性只是附加--permanent标志。
对指定IP开放指定 端口/协议
# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.29.182" protocol value="ssh" accept"
# firewall-cmd --reload
# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.29.182" port protocol="tcp" port="3306" accept"
# firewall-cmd --reload
删除某个规则
# firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.29.182" port protocol="tcp" port="3306" accept"
# firewall-cmd --reload
只允许某一IP/某段远程连接,使用hosts.allow , hosts.deny方法
修改/etc/hosts.allow文件
sshd:210.13.218.0/255.255.255.0 #允许210.13.218.网段的IP访问sshd服务
all:218.24.129.110 #表示接受110这个ip的所有请求.
sshd:all EXCEPT 192.168.0.0/255.255.255.0 #ALL匹配所有情况,EXCEPT匹配除了某些项之外的情况
httpd:all
修改/etc/hosts.deny文件
sshd:all
sshd:45.55.173.117#表示拒绝117这个ip的sshd请求。
ALL:ALL EXCEPT 192.168.0.1/255.255.255.0,192.168.1.21
一个IP请求连入,linux的检查策略是先看hosts.allow中是否允许,如果允许直接放行;如果没有,则再看hosts.deny中是否禁止,如果禁止那么就禁止连入。
hosts.allow和hosts.deny的配置不用重启就立即生效
举例
限制所有人的连接,除非从218.64.87.0/24访问
#vi /etc/hosts.deny
ALL:ALL
#vi /etc/hosts.allow
ALL:218.64.87.0/255.255.255.0