Linux系统如何关闭防火墙

linux系统防火墙的打开和关闭centos7和之前的版本的略有差别。

centos7之前的版本可以通过iptables相关命令实现防火墙的打开和关闭

1.首先可以在打开的终端使用iptables --help查看帮助使用命令;

2.查看防火墙状态:
service iptables status
(此命令可以查看防火墙是打开还是关闭);

3.service iptables常接参数:

(1)service iptables stop关闭防火墙;

(2)service iptables start开启防火墙;

(3)service iptables reload重新加载防火墙;

(4)service iptables restart重启防火墙;

4.永久关闭/打开防火墙

chkconfig iptables off 永久关闭防火墙;

chkconfig iptables on永久打开防火墙;

5.linux图形化界面实现打开和关闭防火墙

终端输入setup并回车进入图形化界面,进行相应选择。如关闭防火墙:依次选择“选择一种工具——防火墙配置——运行工具——安全级别——禁用——确定“;

6.激活和关闭防火墙端口

(1)用上文所说的命令开启防火墙后,需要修改/etc/sysconfig/iptables文件,添加两条开启80、22端口的命令

  • A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

  • A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

(2)centos linux防火墙一方面可以使用上文章节5里面提到的方法关闭,也可以使用命令关闭:

# sbin/iptables -l INPUT -p tcp -dport 80 -j ACCEPT

# sbin/iptables -l INPUT -p tcp -dport 22 -j ACCEPT

# /etc/init.d/iptables stop

(3)UBuntu关闭防火墙只需要输入下面一条命令即可

iptables -A INPUT -i ! PPP0 -j ACCEPT


对于centos7系统

centos7使用firewall命令来开启和关闭防火墙。

1.systemctl命令

(1)systemctl status firewalld.service查看防火墙的状态;

(2)systemctl start firewalld.service启动防火墙;

(3)systemctl stop firewalld.service关闭防火墙;

(4)systemctl restart firewalld.service重启防火墙;

(5)systemctl enable firewalld.service开机启动防火墙;

(6)systemctl disable firewalld.service开机禁用防火墙;

(7)systemctl is-enabled firewalld.service查看防火墙是否开机启动;

2.Firewall区域管理

firewall引入了zone概念,firewall能将不同的网络连接归类到不同的信任级别,为了便于理解,这里附上级别说明:

block(阻塞区域)拒绝所有外部的连接,返回icmp-host-prohibited,允许内部发起的连接;
?
dmz(隔离区域)允许受限制的进入连接;

drop(丢弃区域)丢弃所有进入的包,而不给出任何响应;

external(外部区域)只有指定的连接被接受,一般用于路由转发;

home(家庭区域)允许受信任的计算机被限制的进入连接;

internal(内部区域)信任网络上其他计算机,不会损坏你的计算机。只有选择接受传入的网络连接;

public(公共区域)不信任网络上的任何计算机,只有选择接受传入的网络连接;

trusted(信任区域)信任所有连接;

work(工作区域)允许受信任的计算机被限制的进入连接。

查看区域管理命令示例:

(1)firewall-cmd –list-all-zones查看域详情列表;

(2)firewall-cmd –get-zones查看支持的区域列表;

(3)firewall-cmd –get-default-zone查看默认的区域列表;

(4)firewall-cmd –set-default-zone=home设置默认的区域;

(5)firewall-cmd –zone=home –list-all查看home区域l;

(6)firewall-cmd –get-active-zone查看活动的区域;

(7)firewall-cmd –permanent-new-zone=myself创建自己的区域;

(8)firewall-cmd –permanent-delete-zone=myself删除区域;

3.Firewall服务端口管理

在下面提到的命令示例中,带”–permanent”永久生效的策略记录(除了查看)执行后,必须执行”–reload”参数后才能立即生效,否则需要重启后再生效。不带”–permanent”的命令立即生效,但是reload或者restart后失效。

(1)firewall-cmd –state查看防火墙状态;

(2)firewall-cmd –get services查看已被firewall提供的一些常用服务;

(3)firewall-cmd –zone=public –permanent –list-services查看某域的服务(注:加了–permanent表示永久服务,不加显示所有服务,包含临时服务;不加–zone表示默认区域);

(4)firewall-cmd –zone=public–permanent –add-service=http添加某域的服务;

(5)firewall-cmd –zone=public–permanent –remove-service=http移除某域的服务(注:加了–permanent表示永久服务,不加显示所有服务,包含临时服务;不加–zone表示默认区域);

(6)firewall-cmd –zone=home–permanent –add-por=5000/tcp添加端口;

(7)firewall-cmd –zone=home–permanent –remove-por=5000/tcp删除端口;

(8)firewall-cmd –zone=home–permanent –add-por=5000-5005/tcp添加多端口(注:加了–permanent表示永久服务,不加显示所有服务,包含临时服务;不加–zone表示默认区域;端口后面的tcp和udp表示协议类型);

(9)firewall-cmd –zone=public –permanent –list-ports查看端口情况(注:加了–permanent表示永久服务,不加显示所有服务,包含临时服务;不加–zone表示默认区域);

(10)firewall-cmd –zone=public –query-service=ssh查询服务是否被允许(不加–zone表示默认区域);

(11)firewall-cmd –permanent –zone=public –add-forward-port=80:proto=tcp:toport=8080将80端口的流量转发至8080端口;

(12)firewall-cmd –permanent –zone=public –add-forward-port=80:proto=tcp:toaddr=192.168.1.1将80端口的流量转发至192.168.1.1;

(13)firewall-cmd –permanent –zone=public –add-forward-port=80:proto=tcp:toaddr=192.168.1.1:toport=8080将80端口的流量转发至192.168.1.1的端口8080端口(注:不加ip地址,默认转发到本地的端口;不加–zone表示默认区域;不加–permanent表示临时增加,reload或则restart后失效)。

4.手动编写服务

可以将某个程序需要的端口写在一个自己编写的服务里,然后直接添加服务就可以。

/usr/lib/firewalld/services创建自己的服务,格式可以拷贝/etc/firewalld/services任意一个服务。

(1)查找服务:

firewalld-cmd --get-srvice |grep myself

(2)重新加载配置:

firewall-cmd --reload