ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] **CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了。** ## 1. centos 防火墙开放端口 端口访问分为入(input)和出(output)方向 ### 1.1 Firewall Centos7下默认的防火墙是Firewall,替代了之前的iptables。Firewall有图形界面管理和命令行管理两种方式。 常用方法如下: ~~~ firewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口 iptables -L -n ##查看规则,这个命令是和iptables的相同的 ~~~ ### 1.2 用例 ~~~ #防火墙列表 firewall-cmd --list-all #防火墙开放31005端口 firewall-cmd --permanent --add-port=31005/tcp # 防火墙重新加载配置 firewall-cmd --reload ~~~ ## 2. iptables **centos6用iptables,而centos7用Firewall取代了iptables** ### 2.1 修改配置文件的方式 1. 开放单个端口: ~~~ -A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT ~~~ 2. 开放多个端口 3. 开放区间端口 ~~~ -A INPUT -m state –state NEW -m tcp -p tcp –dport 3000:5000 -j ACCEPT ~~~ 修改配置文件,加入开放端口 ~~~ vim /etc/sysconfig/iptables ~~~ ~~~ # Generated by iptables-save v1.4.7 on Wed May 16 09:10:48 2018 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [11:2144] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT # 开放8888端口 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Wed May 16 09:10:48 2018 ~~~ 新开放的端口一定要放在以下配置的上边才可以生效! ~~~ -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited ~~~ 重启iptables服务 ~~~ service iptables restart ~~~ 查看状态: ~~~ iptables -L -n ~~~ ### 2.2 命令行的方式 ~~~ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT ~~~ 保存设置 ~~~ service iptables save ~~~ ## 3. 如何删除规则 首先我们要知道 这条规则的编号,每条规则都有一个编号 通过 iptables -L -n --line-number 可以显示规则和相对应的编号 ~~~ iptables -L -n --line-number num target prot opt source destination 1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 2 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 3 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ~~~ 多了 num 这一列, 这样我们就可以 看到刚才的规则对应的是 编号2 例如删除第二行 iptables -D INPUT 2