Firewalld命令详解
# Linux下firewalld命令管理详解
# Firewalld中的区域管理
阻塞区域(block) | 任何传入的网络数据包都将被阻止 |
---|---|
工作区域(work) | 相信网络上的其他计算机,不会损害你的计算机 |
家庭区域(home) | 相信网络上的其他计算机,不会损害你的计算机 |
公共区域(public) | 不相信网络上的任何计算机,只有选择接受传入的网络连接 |
隔离区域(DMZ) | 隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接 |
信任区域(trusted) | 所有的网络连接都可以接受 |
丢弃区域(drop) | 任何传入的网络连接都被拒绝 |
内部区域(internal) | 信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接 |
外部区域(external) | 不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接 |
# 常用区域管理方法
firewall-config ##开启火墙的图形管理
firewall-cmd --state #查看防火墙状态
firewall-cmd --get-active-zones #查看正在生效的域
firewall-cmd --get-default-zone #查看默认的域
firewall-cmd --zone=public --list-all #查看public域里的设置,--zone指定域
firewall-cmd --list-all #列出默认域的火墙情况
firewall-cmd --set-default-zone=public #把默认的域设为public
firewall-cmd --get-zones #查看所有的域
firewall-cmd --get-services #查看所有可以添加到火墙里的服务
firewall-cmd --list-all-zones ##查看所有域的所有设置
注:Firewalld的默认区域是public
# 基本命令用法
参数 | 功能 |
---|---|
--permanent | 永久设定 |
--zone | 指定域 |
--add-service | 添加服务 |
--remove-service | 删除服务 |
--add-source | 添加主机ip |
--remove-source | 删除主机ip |
--add-port | 添加端口 |
--remove-port | 删除端口 |
--add-interface | 添加网卡 |
--change-interface | 改变网卡 |
--remove-interface | 删除网卡 |
# 参数用法示例
$ firewall-cmd --permanent --zone=trusted --add-source=172.25.0.1 #添加外来主机ip到trusted域
$ firewall-cmd --permanent --zone=trusted --remove-source=172.25.0.1 #从trusted域中删除外来主机ip
$ firewall-cmd --permanent --zone=trusted --add-interface=eth0 #添加网卡到指定的域
$ firewall-cmd --permanent --zone=trusted --change-interface=eth0 #改变网卡所在的域
$ firewall-cmd --permanent --zone-trusted --remove-interface=eth0 #将网卡从指定域上面删除
$ firewall-cmd --permanent --zone=public --add-service=smtp #永久添加服务
$ firewall-cmd --permanent --zone=public --remove-service=smtp #永久移走服务
$ firewall-cmd --zone=public --list-ports #列出允许的端口
$ firewall-cmd --permanent --zone=public --add-port=8080/tcp #永久添加端口
$ firewall-cmd --permanent --zone=public --remove-port=8080/tcp #永久删除端口
注意: 1.在设定火墙策略时,可以加
--permanent
参数永久设定;临时设定时则不加该参数 2.永久设定后,火墙策略不会立即生效,需要进行重新加载,两种方式如下:$ firewall-cmd --reload #重新加载使其生效,但是不会断开已经连接的 $ firewall-cmd --complete-relode #重新加载,并且断开所有的连接
# 设定火墙规则
指定主机访问指定端口
$ firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.1 -p tcp --dport 22 -j ACCEPT #添加只有主机172.25.254.1可以ssh访问本机
注释:
filter (规则表)
INPUT (链)
1 (写在第一条)
-s (源ip) 172.25.254.1
-p (协议类型) tcp
--dport (目的端口) 22
-j (动作) ACCEPT
动作:
accept 接受客户端的请求
reject 拒绝请求,但是给客户端有回应,客户端不再访问
drop 丢弃,没有回应,客户端会一直发数据包,加大负载
$ firewall-cmd --direct --get-all-rules #查看规则
$ firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.1 -p tcp --dport 22 -j ACCEPT#删除规则
注意:除了指定主机外的主机访问指定端口:
$ firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.1 -p tcp --dport 22 -i ACCEPT #除了指定ip地址的主机不使用此策略,其他主机都使用此策略(指定的使用默认策略)
上次更新: 2023/11/28, 22:03:59