防火墙与系统安全

iptables

$ iptables -F # 清除已有 iptables 规则
$ iptables -L -n -v # 查看所有已添加的 iptables 规则
$ iptables -L -n | grep 21 # 查看指定端口的 iptables 规则

CentOS7 防火墙 - firewall

在CentOS7中默认使用 firewall 代替了 iptables service 。虽然继续保留了 iptables 命令,但已经仅是名称相同而已。除非手动删除 firewall ,再安装 iptables ,否则不能继续使用以前的 iptables 配置方法。

/usr/lib/firewalld/services 目录中存放的是定义好的网络服务和端口参数,只用于参考,不能修改。这里只定义了一部分通用网络服务。在该目录中没有定义的网络服务,也不必再增加相关 xml 定义,后续通过管理命令可以直接增加。

如果要使用到的服务的xml文件,从上面的目录中拷贝到/etc/firewalld/services/目录下,如果端口有变化则可以修改文件中的数值,也可以根据相关定义自己写。

启停防火墙

$ systemctl start firewalld # 开启防火墙
$ systemctl stop firewalld # 关闭防火墙
$ systemctl restart firewalld # 重启防火墙
$ firewall-cmd --reload # 重载配置文件

重载配置文件之后不会断掉正在连接的 tcp 会话,而重启服务则会断开 tcp 会话。

开放、关闭指定服务

$ firewall-cmd --add-service=ftp # 暂时开放 ftp 服务
$ firewall-cmd --add-service=ftp --permanent # 永久开放 ftp 服务
$ firewall-cmd --remove-service=ftp # 暂时关闭 ftp 服务
$ firewall-cmd --remove-service=ftp --permanent # 永久关闭 ftp 服务
$ firewall-cmd --add-port=8001/tcp # 添加自定义的开放端口
$ firewall-cmd --list-all # 显示防火墙应用列表

查看服务的启动状态

$ firewall-cmd --state # 检测防火墙状态
$ firewall-cmd --query-service ftp
$ firewall-cmd --query-service ssh
$ firewall-cmd --query-service http

SELinux

$ setenforce 0 # 关闭 SELinux 服务

参考资料

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress