Centos 7 关闭SELINUX ,两种防火墙配置(firewalld、iptables),可解决90%的访问问题

0.环境说明:

①Centos7.X VPS (搬瓦工)

②RAM 1G SSD 20G

推荐VPS:搬瓦工、Linode、魔方云、Akkcloud

点击进入搬瓦工VPS购买地址

1.关闭SELINUX(以root权限进入)

selinux开启常会导致一些未知错误,所以建议关闭。

①查看selinux状态(Disable表示已关闭):

getenforce
sestatus #centos7支持的方式

②临时关闭selinux:

setenforce 0 
 #设置 selinux 成为permissive模式   
 #setenforce 1 设置 selinux 成为enforcing模式 

③永久关闭 :

vi /etc/selinux/config
 #将SELINUX=enforcing改为SELINUX=disabled,输入:wq保存,需重启后生效

2.iptables防火墙配置(centos7以前的版本常用)

由于centos7默认的防火墙时firewalld,所以需要先禁用,再开启iptables

①禁用firewalld,启用iptables:

systemctl stop firewalld #关闭firewalld防火墙
systemctl mask firewalld #屏蔽firewalld防火墙 
yum install iptables-services -y #安装iptables
systemctl enable iptables #设置开机启动

②iptables规则配置:

vi /etc/sysconfig/iptables #编辑防火墙配置

下面是一个完整的配置实例,配置好后保存退出:

#-A和-I参数分别为添加到规则末尾和规则最前面。
#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问iptables -P INPUT ACCEPT
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口(一般为SSH链接地址)
iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT   注:-s后可以跟IP段或指定IP地址
#允许访问80端口(网页)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT  #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT

③iptables常用命令:

service  iptables restart #centos6 重启 
service  iptables start #centos6 开启 
service  iptables stop #centos6 关闭 
service iptabes status #centos6 查看状态

systemctl status  iptables  #查看状态
systemctl stop  iptables  #关闭 
systemctl start  iptables #开启 
systemctl  restart  iptables #重启
systemctl  disable  iptables  #关闭开机启动 

3.firewalld防火墙配置(centos7默认)

①firewalld常用命令:

systemctl status  firewalld#查看状态
systemctl stop  firewalld#关闭 
systemctl start  firewalld#开启 
systemctl restart  firewalld#重启
systemctl disable  firewalld#关闭开机启动 
firewall-cmd --list-all #查看配置规则
firewall-cmd --zone=public --list-ports #显示所有打开的端口
firewall-cmd --reload #重新载入规则

②firewalld规则配置:

增加有一条80端口的TCP规则实例

 firewall-cmd --zone=public --add-port=80/tcp --permanent #(--permanent永久生效,没有此参数重启后失效)
 firewall-cmd --reload #重新载入规则 
 systemctl restart  firewalld#重启