firewall
介绍
? firewall-config #图像化工具
? firewall-cmd #命令行工具
? /etc/firewalld/firewalld.conf <== 全局配置
firewall 命令
查询
firewall-cmd --get-default-zone <==查看设置的默认区域
firewall-cmd --query-service=https <==查询这个区域的服务是否允许https流量通过
firewall-cmd --zone=public --list-ports <==查看这各区域允许哪些流量通过
firewall-cmd --query-port=80/tcp <==查看这个区域tcp的80端口是否允许流量通过
firewall-cmd –-sruntime-to-permanent
firewall-cmd --reload
firewall-cmd --computer-reload
firewall-cmd --zone=public --list-ports
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --remove-port=80/tcp
firewall-cmd --list-all
firewall-cmd --list-all-zones
firewall-cmd --panic-on
firewall-cmd --panic-off
firewall-cmd --query-panic
firewall-cmd --add-service=http
firewall-cmd --remove-service=http
firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.10.10.0/24 port protocol=tcp port=23 accept' <==只允许指定网段连接23端口
? --permanent #配置永久生效,临时生效可去掉此选项
? --zone:区域
服务管理
Amanda, FTP, Samba和TFTP等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:
firewalld-cmd --get-services
防火墙区域:
? 区域时定义的规则集,用户基于计算机所连接的网络上的信任级别来指定允许的流量。可以将网络接口和源分配给区域
以下是firewalld提供的区域,firewalld的默认区域是public
- 阻塞区域(block):拒绝所有传入连接,而无任何通知。仅允许传出连接
- 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接
- 工作区域(work):相信网络上的其他计算机
- 家庭区域(home):相信网络上的其他计算机
- 隔离区域(DMZ):也称为非军事区域,内外网络之间增加一层网络,起缓冲作用。对于隔离区域,只有选择接受传入网络连接。
- 丢弃区域(drop):任何传入的网络连接都会拒绝
- 内部区域(internal):相信网络上的其他计算机,只有选择接受传入的网络连接
- 外部区域(external):相信网络上的其他计算机,只有选择接受传入的网络连接
[root@localhost html]
block.xml dmz.xml drop.xml external.xml home.xml internal.xml public.xml trusted.xml work.xml
控制端口 / 服务
可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放 http 服务就是开放了 80 端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp 还是 udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。
firewall-cmd --add-service=mysql
firewall-cmd --remove-service=http
firewall-cmd --list-services
firewall-cmd --add-port=3306/tcp
firewall-cmd --remove-port=80tcp
firewall-cmd --add-port=233/udp
firewall-cmd --list-ports
伪装 IP
firewall-cmd --query-masquerade
firewall-cmd --add-masquerade
firewall-cmd --remove-masquerade
端口转发
端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定 ip 的话就默认为本机,如果指定了 ip 却没指定端口,则默认使用来源端口。 如果配置好端口转发之后不能用,可以检查下面两个问题:
- 比如我将 80 端口转发至 8080 端口,首先检查本地的 80 端口和目标的 8080 端口是否开放监听了
- 其次检查是否允许伪装 IP,没允许的话要开启伪装 IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
|