CentOS8的基础防火墙配置-用例


以下分为firewall和iptable的操作集锦

备注:其实推荐【Debian防火墙配置】这个ufw了!!!

firewall 防火墙

systemctl命令集合

systemctl unmask firewalld #执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reloadt firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl --failed #查看启动失败的服务列表

firewall-cmd命令集合

firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #更新防火墙规则
firewall-cmd --list-ports #查看所有打开的端口
firewall-cmd --list-services #查看所有允许的服务
firewall-cmd --get-services #获取所有支持的服务

区域相关

firewall-cmd --list-all-zones #查看所有区域信息
firewall-cmd --get-active-zones #查看活动区域信息
firewall-cmd --set-default-zone=public #设置public为默认区域
firewall-cmd --get-default-zone #查看默认区域信息
firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public

接口相关

firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0
firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default
firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域

端口控制

firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局)
firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)
firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)
firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public)
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
firewall-cmd --permanent --add-port=80/tcp # 开放80端口
firewall-cmd --permanent --remove-port=8080/tcp # 移除端口
firewall-cmd --reload #重启防火墙(修改配置后要重启防火墙)

iptables 防火墙

说明

iptables是 Linux 系统中的一个防火墙工具,用于配置网络数据包过滤规则。以下是一些常用的iptables操作命令:

改用iptables.service

安装iptables服务:yum install iptables-services

依次执行以下命令,关闭防火墙(关闭firewall 启用iptables)

systemctl stop firewalld
systemctl mask firewalld

执行以下命令,设置iptables:
服务马上启动:systemctl start iptables.service
服务开机自启动:systemctl enable iptables.service

ip6tables操作:

systemctl start ip6tables.service
systemctl enable ip6tables.service

重启iptables服务:systemctl restart iptables
重启iptables服务:/bin/systemctl restart iptables.service

查看防火墙规则(列出):iptables -L
添加新规则:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

编辑配置文件:vim /etc/sysconfig/iptables

#删除旧规则:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT

#可以指定ip开放指定端口:
-A INPUT -p tcp -m tcp -s 指定的IP地址 --dport 3306 -j ACCEPT

记得设置后需要保存:service iptables save

iptables 备用配置2

iptables -L
iptables -Z

sudo apt install iptables iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
sudo service iptables restart
sudo service ip6tables restart

查看防火墙规则

iptables -L
例如要放行8888端口

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
开启一个范围的端口

  iptables -A INPUT -p tcp --dport 51000:60000 -j ACCEPT

然后保存放行规则iptables-save

保存规则制定路径
iptables-save >/etc/iptables/rules.v4 或V6

设置完就已经放行了指定的端口,但重启后会失效,下面设置持续生效规则

安装iptables-persistent

apt-get install iptables-persistent
保存规则持续生效

 netfilter-persistent save
 netfilter-persistent reload

iptables放行所有端口

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEP

infomation: repost