前言
- CentOS 7.4
- 开启firewalld防火墙。开启ssh、80/http端口。其余端口关闭。
操作
在CentOS7开始,默认是没有iptables的,而是使用了firewalld防火墙.
开启防火墙
- 操作firewalld防火墙,需要使用firewall-cmd命令。
- 使用firewall-cmd命令,需要先启动防火墙。
- firewalld防火墙默认使用的是public域(zone)。
- public域(zone)中,默认打开了ssh服务(ssh服务默认启用22端口)。
- 远程使用ssh登录到服务器,并开启firewalld防火墙前,先确认: firewalld防火墙开启前是否还能继续通过ssh连到服务器。(默认情况下是可以的。)
- 在本步确保开启防火墙。
可能用到的命令:
操作 | 命令 |
---|---|
启动firewalld服务 | systemctl start firewalld.service |
关闭firewalld服务 | systemctl stop firewalld.service |
重启firewalld服务 | systemctl restart firewalld.service |
显示firewalld服务的状态 | systemctl status firewalld.service |
在开机时启用firewalld服务 | systemctl enable firewalld.service |
在开机时禁用firewalld服务 | systemctl disable firewalld.service |
查看firewalld服务是否开机启动 | systemctl is-enabled firewalld.service |
查看已启动的服务列表 | systemctl list-unit-files |
查看启动失败的服务列表 | systemctl –failed |
查看域(zone)
- 每个域(zone)就是一套规则集。在域(zone)中配置服务、端口等。
- firewalld防火墙,提供了9个域(zone)。firewalld防火墙读取默认域(zone)的配置。
- 默认域(zone)为public。
- 在本步确认默认域。此处以未修改过默认域为基础,后面操作均在public域(zone)下进行操作。
可能用到的命令:
操作 | 命令 |
---|---|
查看默认域(zone) | firewall-cmd –get-default-zone |
获取活动的区域(zone) | firewall-cmd –get-active-zones |
列出所有支持的域(zone) | firewall-cmd –get-zones |
查看当前的默认域(zone) | firewall-cmd –get-active-zones |
设置默认区域(zone) | firewall-cmd –set-default-zone=public |
查看firewall的可用服务
- 这里也只是查看一下
firewall-cmd --get-services
简单列举几个服务
服务名 | 端口 | 端口 |
---|---|---|
ssh | tcp | 22 |
http | tcp | 80 |
https | tcp | 443 |
mysql | tcp | 3306 |
dns | tcp&udp | 53 |
dhcp | udp | 67 |
查看域(zone)下的服务
- 命令中添加参数–zone=public,表示操作public域。不添加该参数–zone,则表示操作默认域。
- 查看public域(zone)中,是否包含了ssh、http服务。如果有,则本次操作结束。如果没有就往下执行,添加上缺少的服务。
可能用到的命令:
操作 | 命令 |
---|---|
列出public域(zone)中已启用的服务 | firewall-cmd –zone=public –list-services |
列出public域(zone)中已启用的特性(包含服务、端口等) | firewall-cmd –zone=public –list-all |
列出默认域(zone)中已启用的服务 | firewall-cmd –list-services |
列出默认域(zone)中已启用的特性(包含服务、端口等) | firewall-cmd –list-all |
添加服务
- 默认情况下,ssh服务已经启用。此步,仅添加http服务即可。
可能用到的命令:
操作 | 命令 |
---|---|
添加服务 | firewall-cmd –zone=public –add-service=http –permanent |
移除服务 | firewall-cmd –zone=public –remove-service=http –permanent |
临时添加服务 | firewall-cmd –zone=public –add-service=http |
临时移除服务 | firewall-cmd –zone=public –remove-service=http |
注:临时添加或移除服务,在 firewalld防火墙重载配置后失效。
重新载入配置
- 重新载入配置
- 重新载入配置后,检查所添加的服务是否依然有效(查询public下的可用服务即可)。
可能用到的命令:
操作 | 命令 |
---|---|
重新加载防火墙,并不中断用户连接 | firewall-cmd –reload |
重新加载防火墙,并中断用户连接 | firewall-cmd –complete-reload |
配置文件说明
域配置文件
优先级 | 位置 | 说明 |
---|---|---|
高 | /etc/firewalld/zones | 带 –permanent参数时,会修改此目录下的域文件 |
低 | /usr/lib/firewalld/zones |