星期二, 1月 26, 2021
Home 杂七杂八 Centos防火墙firewalld超简单实用教程

Centos防火墙firewalld超简单实用教程

Centos7和Centos8作为首选linux系统,其防火墙firewalld对提升安全性有着显著效果。

模板安装的Centos7和Centos8可能没有自带firewalld防火墙,因为IDC怕你们不会关🤣。firewalld取代了Ubuntu系列的iptables防火墙。iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。区域就是firewalld预先准备了几套防火墙策略模板,用户可以根据场景而选择合适的策略,从而实现防火墙策略之间的快速切换。

[info]区域对于 firewalld 是一大特色,但是我们使用Centos系统场景单一(就是那个呗),根本不需要切换zone,所以就不介绍了哈。[/info]

[h2title]安装与服务配置操作[/h2title]

1.安装firewalld

yum install firewalld -y

2.服务操作
启动服务:systemctl start firewalld
(不用担心启用了firewalld后无法通过ssh连接Centos系统,22端口默认打开)
停止服务:systemctl stop firewalld
重启服务:systemctl restart firewalld
查看状态:systemctl status firewalld

3.配置文件
firewalld 存放配置文件有两个,/usr/lib/firewalld 和 /etc/firewalld,前者存放了一些默认的文件,后者主要是存放用户自定义的数据,所以用户添加的service或者rule都在后者进行。

server 文件夹存储服务数据,就是一组定义好的规则。
zones 存储区域规则

firewalld.conf是默认配置文件,可以设置默认使用的区域,默认区域为 public,对应zones目录下的public.xml

[h2title]实用命令[/h2title]

[warning]如果没有带 –permanent 参数,表示配置立即生效,但不会对该配置进行存储,重启服务器就会丢失。
如果带上–permanent 参数则会将配置存储到配置文件,但仅仅是将配置存储到文件,并不会实时生效,需要执行 firewall-cmd –reload重载配置才会生效。[/warning]

1.重载firewalld配置
firewall-cmd –reload

2.查看firewalld状态
firewall-cmd –state

3.查看firewalld默认区域设置
firewall-cmd –list-all

4.应急命令
firewall-cmd –panic-on
拒绝所有流量,远程连接会立即断开,只有本地能登陆

firewall-cmd –panic-off
取消应急模式,但需要重启firewalld后才可以远程ssh

firewall-cmd –query-panic
查看是否为应急模式

5.端口
firewall-cmd –add-port=端口/协议(TCP/UDP)
firewall-cmd –remove-port=端口/协议(TCP/UDP)
firewall-cmd –list-ports #查看开放的端口

eg:firewall-cmd –add-port=8888/tcp –permanent

6.协议
firewall-cmd –add-protocol=协议 (如icmp,即允许ping)
firewall-cmd –remove-protocol=协议
firewall-cmd –list-protocols # 查看允许的协议

eg:firewall-cmd –add-protocol=icmp –permanent

7.允许指定ip的所有流量
firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”<ip>” accept”

eg:firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”192.168.2.1″ accept” #允许来自192.168.2.1的所有流量

8.允许指定ip的指定协议
firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”<ip>” protocol value=”<protocol>” accept”

eg:firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”192.168.2.208″ protocol value=”icmp” accept” #允许192.168.2.208主机的icmp协议

9.允许指定ip访问指定端口
firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”<ip>” port protocol=”<port protocol>” port=”<port>” accept”

eg:firewall-cmd –add-rich-rule=”rule family=”ipv4″ source address=”192.168.2.1″ port protocol=”tcp” port=”22″ accept” # 允许192.168.2.1主机访问22端口

10.禁止指定ip/网段

eg:firewall-cmd –zone=drop –add-rich-rule=”rule family=”ipv4″ source address=”192.168.2.0/24″ port protocol=”tcp” port=”22″ reject”

11.中转

开启ipv4转发

echo 1 > /proc/sys/net/ipv4/ip_forward

firewall-cmd –add-masquerade –permanent #允许防火墙伪装IP
firewall-cmd –add-forward-port=port=要连的中转机端口:proto=tcp:toaddr=被中转的ip:toport=被中转的端口 –permanent#添加中转
firewall-cmd –remove-forward-port=port=要连的中转机端口:proto=tcp:toaddr=被中转的ip:toport=被中转的端口 –permanent#删除中转
firewall-cmd –reload

其实还可以用iptables一键jio本中转

wget -qO natcfg.sh http://www.arloor.com/sh/iptablesUtils/natcfg.sh && bash natcfg.sh

[danger]加了–permanent一定要执行firewall-cmd –reload[/danger]

[h2title]简单常用配置命令[/h2title]

firewall-cmd –add-port=80/tcp –permanent
firewall-cmd –add-port=443/tcp –permanent
firewall-cmd –add-port=443/udp –permanent
firewall-cmd –add-port=22/tcp –permanent
firewall-cmd –add-protocol=icmp –permanent
firewall-cmd –add-port=其它开放端口/tcp –permanent
firewall-cmd –reload
firewall-cmd –list-all

最后可以看见自定义策略的详细信息

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments