Centos 7使用firewalld代替了原来的iptables。
1、firewall相关的操作
使用方法如下:
>>> 关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl start firewalld.service #开启firewall
systemctl disable firewalld.service #禁止firewall开机启动>>> 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效>>> 重启防火墙 firewall-cmd --reload常用命令介绍
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的相同的 man firewall-cmd ##查看帮助更多命令,使用 firewall-cmd --help 查看帮助文件
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下直接关闭防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动2、iptables相关的操作
2.1常规命令
iptables服务需要自己安装,命令是:
yum install iptables-services
如图:
开启iptables防火墙的命令是:
systemctl start iptables.service
重启iptables防火墙的命令是:
systemctl restart iptables.service
关闭iptables防火墙的命令是:
systemctl stop iptables.service
查看iptables防火墙状态的命令是:
systemctl status iptables.service
如图:
2.2使用编辑文件的方式开放特定的端口
很多时候,需要开启防火墙,但是放行某些特定的端口,如何在防火墙开启的状态下,放行50007端口?按照下面的步骤做。
2.2.1修改规则
主要是编辑/etc/sysconfig/iptables文件,编辑方法很多,可以使用vim编辑,也可以直接把该文件下载到本地,用本地工具编辑。
将原来的内容 :INPUTACCEPT [0:0] 修改为 :INPUT DROP[0:0]
将原来的内容 :FORWARDACCEPT [0:0] 修改为 :FORWARD DROP[0:0]
将原来的内容 :OUTPUT ACCEPT [0:0] 修改为 :OUTPUTACCEPT [0:480]
2.2.2添加放行的端口
iptables文件的末尾有如下三行内容:
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -j REJECT--reject-with icmp-host-prohibited
COMMIT
在这这三行的前面添加一行放行50070端口的配置内容:
-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT
同理,如果要放行80端口,就添加一行:
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
修改完成后,我的/etc/sysconfig/iptables文件是这样的:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:480]
-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 tcp --dport 50070 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
2.2.3重启iptables防火墙
执行重启iptables防火墙的命令,命令是:
systemctl restart iptables.service
如图:
2.2.4测试端口放行效果
在使用命令systemctl stop firewalld.service关闭防火墙,使用命令systemctl start iptables.service开启防火墙,但是为配置/etc/sysconfig/iptables文件,未放行50070端口的情况下,访问以下地址
是访问不了的,如图:
在配置了/etc/sysconfig/iptables文件,添加了放行50070端口,并且重启了iptables防火墙的情况下,在访问该地址:
发现OK了,如图:
2.3使用执行命令的方式开放特定端口
2.3.1执行命令
在不手动修改iptables防火墙的配置文件的情况下,使用命令做到放行某些常用端口,命令集合是:
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -jACCEPT
iptables -A INPUT -p tcp --dport22 -j ACCEPT
iptables -A INPUT -p tcp --dport21 -j ACCEPT
iptables -A INPUT -p tcp --dport80 -j ACCEPT
iptables -A INPUT -p tcp --dport8080 -j ACCEPT
iptables -A INPUT -p tcp --dport8088 -j ACCEPT
iptables -A INPUT -p tcp --dport443 -j ACCEPT
iptables -A INPUT -p icmp--icmp-type 8 -j ACCEPT
iptables -A INPUT -p tcp --dport50070 -j ACCEPT
iptables -A INPUT -m state --stateRELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
service iptables save
systemctl restart iptables.service
如图:
2.3.2测试
测试方法同2.2.4章节,开放端口的效果是一样的。