CentOS7 Firewall 简单设置

本文详细介绍了如何在Linux系统上安装、配置及管理Firewalld防火墙,包括基本操作如安装、启动、关闭等,以及高级功能如设置特定服务、端口、IP规则等。

如果你的系统上没有安装使用命令安装

#yum install firewalld  //安装firewalld 防火墙

开启服务 

# systemctl start firewalld.service

关闭防火墙

# systemctl stop firewalld.service

开机自动启动

# systemctl enable firewalld.service

关闭开机制动启动

# systemctl disable firewalld.service

 

查看状态

#systemctl status firewalld

得到到的结果如果是

● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-09-05 02:34:07 UTC; 15min ago
Main PID: 3447 (firewalld)
CGroup: /system.slice/firewalld.service
└─3447 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Sep 05 02:34:07 vultr.guest systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 05 02:34:07 vultr.guest systemd[1]: Started firewalld - dynamic firewall daemon.

这样的说明没有问题

设置 firwall 

使用firewall-cmd 命令

查看状态

#firewall-cmd --state    //running 表示运行

获取活动的区域

#firewall-cmd --get-active-zones
这条命令将用以下格式输出每个区域所含接口:
<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

 获取所有支持的服务

#firewall-cmd --get-service

每个服务以空格分隔  例如:

RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-http

获取永久选项所支持的服务   就是重启后也支出的

#firewall-cmd --get-service --permanent  //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic
 
开启应急模式阻断所有网络连接
#firewall-cmd --panic-on  //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic

关闭应急模式       

#firewall-cmd --panic-off

 查看应急模式的状态

#firewall-cmd --query-panic

 在不改变状态的条件下重新加载防火墙:

#firewall-cmd --reload

防火墙预定义的服务配置文件是xml文件 目录在 /usr/lib/firewalld/services/

 

在 /etc/firewalld/services/ 这个目录中也有配置文件    但是/etc/firewalld/services/目录 优先于 /usr/lib/firewalld/services/  目录

修改配置文件后 使用命令重新加载

#firewall-cmd --reload

 

启用某个服务

# firewall-cmd --zone=public --add-service=https   //临时
# firewall-cmd --permanent --zone=public --add-service=https  //永久

开启某个端口

#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp  //永久
#firewall-cmd  --zone=public --add-port=8080-8081/tcp   //临时

使用命令加载设置

#firewall-cmd --reload

 

查看开启的端口和服务

#firewall-cmd --permanent --zone=public --list-services    //服务空格隔开  例如 dhcpv6-client https ss   
#firewall-cmd --permanent --zone=public --list-ports //端口空格隔开  例如  8080-8081/tcp 8388/tcp 80/tcp
 
 

在每次修改 端口和服务后  /etc/firewalld/zones/public.xml  文件就会被修改   所以也可以在文件中之间修改  然后重新加载

 

 

 设置某个ip 访问某个服务

#firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

ip 192.168.0.4/24 访问 http

设置后 public.xml 就会出现变化

 

 删除上面设置的规则

#firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

 

启动服务

复制代码
#systemctl start firewalld.service  //开启服务
#systemctl enable firewalld.service //开机制动启动

#systemctl stop firewalld.service //关闭服务
#systemctl disable firewalld.service //禁止开机启动


复制代码

 

 

转自: http://www.cnblogs.com/phpshen/p/5842118.html 

<think>好的,用户想了解CentOS 7防火墙配置和管理,我需要根据提供的引用资料来组织回答。首先,确认用户的需求是配置或解决防火墙相关问题,所以应该涵盖基本操作、常用命令和实际应用。 首先,引用[1]提到Firewalld是CentOS 7默认的防火墙解决方案,使用firewall-cmd工具管理。我需要介绍基本概念,比如区域和服务。然后,引用[4]中有重启服务和设置开机启动的例子,可以结合到防火墙服务的启动和状态管理中。 接下来,用户可能需要知道如何查看当前状态,添加端口或服务,比如开放HTTP(80端口)和HTTPS(443端口),这里需要给出具体的命令,如firewall-cmd --permanent --add-service=http。同时,引用[3]中涉及Redis部署,可能需要开放6379端口作为例子,但用户的问题是关于防火墙配置,所以应该用更常见的服务如SSH或Web服务器。 然后,区域管理部分,引用[1]提到区域的概念,需要解释如何将接口分配到不同区域,比如将eth0接口放入internal区域,并设置默认区域为public。 另外,应急模式的处理也很重要,引用[1]可能提到相关命令,需要指导用户如何进入和退出应急模式,防止被锁在外面。 最后,高级配置部分,可以包括端口转发和富规则,比如引用[4]中的Apache服务可能需要端口转发,但需要调整例子为防火墙配置,如将80端口转发到8080。 生成的问题需要围绕用户可能遇到的后续问题,比如如何永久生效配置,如何添加自定义端口,管理区域,处理应急情况等。需要确保每个命令准确,并注意--permanent参数的使用,以及重新加载防火墙的重要性。 检查是否有遗漏,比如服务管理、运行时与永久配置的区别,以及如何确保配置在重启后仍然有效。同时,提醒用户在生产环境中谨慎操作,避免锁死自己。确保引用资料中的例子正确应用,比如引用[4]中的systemctl命令适用于防火墙服务,如systemctl enable firewalld。</think>[系统级响应] ### CentOS 7防火墙配置与管理 Firewalld是CentOS 7默认的动态防火墙管理工具,支持运行时修改与永久配置分离的特性。以下是具体操作框架: #### 1. 基础服务控制 ```bash # 查看防火墙状态 $ sudo firewall-cmd --state # 启动/停止/重启服务 $ sudo systemctl start firewalld $ sudo systemctl stop firewalld $ sudo systemctl restart firewalld # 设置开机自启 $ sudo systemctl enable firewalld ``` #### 2. 端口与服务管理 ```bash # 开放HTTP服务(永久生效需加--permanent) $ sudo firewall-cmd --add-service=http $ sudo firewall-cmd --add-service=http --permanent # 开放自定义端口(例:TCP 8080) $ sudo firewall-cmd --add-port=8080/tcp $ sudo firewall-cmd --add-port=8080/tcp --permanent # 查看已开放服务列表 $ sudo firewall-cmd --list-services ``` #### 3. 区域管理策略 ```bash # 查看默认区域 $ sudo firewall-cmd --get-default-zone # 修改接口区域(将eth0划入internal区域) $ sudo firewall-cmd --zone=internal --change-interface=eth0 # 设置默认区域为public $ sudo firewall-cmd --set-default-zone=public ``` #### 4. 应急模式处理 ```bash # 进入应急模式(仅保留ssh连接) $ sudo firewall-cmd --panic-on # 退出应急模式 $ sudo firewall-cmd --panic-off ``` #### 5. 高级配置示例 ```bash # 端口转发(将80转到8080) $ sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 富规则(允许192.168.1.0/24访问3306) $ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept' ``` 操作后需执行重载使永久配置生效: ```bash $ sudo firewall-cmd --reload ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值