iptables

  1. iptables -F # 清除已有 iptables 规则
  2. iptables -L -n -v # 查看所有已添加的 iptables 规则
  3. 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/目录下,如果端口有变化则可以修改文件中的数值,也可以根据相关定义自己写。

启停防火墙

  1. systemctl start firewalld # 开启防火墙
  2. systemctl stop firewalld # 关闭防火墙
  3. systemctl restart firewalld # 重启防火墙
  4. firewall-cmd --reload # 重载配置文件

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

开放、关闭指定服务

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

查看服务的启动状态

  1. firewall-cmd --state # 检测防火墙状态
  2. firewall-cmd --query-service ftp
  3. firewall-cmd --query-service ssh
  4. firewall-cmd --query-service http

SELinux

  1. setenforce 0 # 关闭 SELinux 服务

参考资料