1. 首页
  2. 系统运维
  3. Linux

CentOS 7中FirewallD的介绍和常用命令

在CentOS 7中默认安装有firewalld,如果没有安装的话可以使用yum安装。firewalld是iptables的包装器,可以更轻松地管理iptables规则,它不是iptables的替代品。和iptables相比,firewalld主要有两个区别:

1、iptables使用chain和rules,firewalld使用zones和services;

2、firewalld可以动态的管理更新规则,不会破坏现有的连接和会话;

一、启用关闭

启用

systemctl start firewalld
systemctl enable firewalld

关闭

systemctl stop firewalld
systemctl disable firewalld

查看状态,显示 running 或者 not running 。

firewall-cmd --state

载入配置

firewall-cmd --reload

二、配置集

firewalld有两个配置集,分别是 Runtime 和 Permanent ,runtime运行集重启机器或者firewalld配置就会失效,permanent会永久保存。例如添加http服务为可访问可以用这两个方法:

# 1
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=http
# 2
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

三、区域

zone是firewalld很重要的一个概念,可以针对不同场景定义不同的zone,例如home, public, trusted等,不同区域可以设置不同的service规则。默认firewalld zone是public。

# 1 查看默认zone
firewall-cmd --get-default-zone
# 2 设置默认zone
firewall-cmd --set-default-zone=internal
# 3 查看网卡在用的zone
firewall-cmd --get-active-zones
# 4 查看public 区域配置
firewall-cmd --zone=public --list-all
# 5 查看所有区域配置
firewall-cmd --list-all-zones

20190827152607

四、服务

firewalld预设了很多服务名,默认支持的服务的配置文件位于/usr/lib/firewalld/services,用户创建的服务文件位于/etc/firewalld/services中。

# 查看默认可用的服务
firewall-cmd --get-services
# 添加删除服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --remove-service=http --permanent

五、允许或拒绝任意端口/协议

例如:

firewall-cmd --zone=public --add-port=12345/tcp --permanent
firewall-cmd --zone=public --remove-port=12345/tcp --permanent

六、端口转发

转发80端口到本机的8080端口

firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080

转发到其他服务器的端口

firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=123.456.78.9

删除的话就把–add换成–remove

例如:

firewall-cmd --zone=public --remove-masquerade

七、常用命令举例

添加开启常见端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent

关闭禁止常见端口

firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-port=21/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent

添加端口范围

firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

重新载入

firewall-cmd --reload

参考:https://linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos/

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code