0%

CentOS防火墙命令集

1. firewalld的基本使用

1
2
3
4
systemctl start firewalld # 启动防火墙
systemctl status firewalld # 防火墙状态
systemctl stop firewalld # 停止防火墙
systemctl disable firewalld # 禁止开机启动

2. systemctl工具

1
2
3
4
5
6
7
8
9
systemctl start firewalld.service # 启动一个服务
systemctl stop 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 # 查看启动失败的服务列表

3. 配置firewall-cmd

1
2
3
4
5
6
7
8
9
10
11
firewall-cmd --version # 查看版本
firewall-cmd --help # 查看帮助
firewall-cmd --state # 显示状态
firewall-cmd --panic-on # 拒绝所有包
firewall-cmd --panic-off # 取消拒绝状态
firewall-cmd --query-panic # 查看是否拒绝
firewall-cmd --reload # 更新防火墙规则
firewall-cmd --completely-reload # 更新防火墙规则,重启服务
firewall-cmd --get-active-zones # 查看已激活的Zone信息
firewall-cmd --zone=public --list-ports # 查看所有打开的端口
firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所属区域

4. firewall区域分类

1
2
3
4
5
6
7
8
9
drop # 丢弃所有进入的包,而不给出任何响应 
block # 拒绝所有外部发起的连接,允许内部发起的连接
public # 用于公共场所,允许指定的进入连接
external # 用于特别为路由器启用伪装的外部网络,仅接受选定的传入连接
dmz # 适用于非军事区中的计算机,这些计算机可公开访问,并且对内部网络的访问权限有限。仅接受选定的传入连接
work # 用于工作区域,仅接受选定的传入连接
home # 用于家庭区域,仅接受选定的传入连接
internal # 范围针对所有互联网用户
trusted # 信任所有连接

5. 开启和关闭端口

1
2
3
4
5
# 以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以
firewall-cmd --zone=public --query-port=80/tcp # 查看策略
firewall-cmd --permanent --zone=public --add-port=80/tcp # 添加策略
firewall-cmd --permanent --zone=public --remove-port=80/tcp # 删除策略
firewall-cmd --reload # 更新策略

6. 管理服务

1
2
3
4
#以httpd服务为例,添加到work zone
firewall-cmd --zone=work --add-service=httpd # 添加策略
firewall-cmd --zone=work --query-service=httpd # 查看策略
firewall-cmd --zone=work --remove-service=httpd # 删除策略

7. IP地址伪装

1
2
3
firewall-cmd --zone=external --query-masquerade # 查看
firewall-cmd --zone=external --add-masquerade # 打开
firewall-cmd --zone=external --remove-masquerade # 关闭

8. 端口转发

1
2
3
4
firewall-cmd --zone=external --add-masquerade # 打开端口转发,先要打开IP地址伪装
firewall-cmd --zone=external --add-forward-port=23:porto=tcp:toport=2333 # 转发 tcp 233端口至2333端口
firewall-cmd --zone=external --add-forward-port=23:porto=tcp:toaddr=10.10.10.10 # 转发端口数据至另一个IP的相同端口
firewall-cmd --zone=external --add-forward-port=23:porto=tcp::toport=2333:toaddr=10.10.10.10 # 转发端口数据至另一个IP的2333端口