文档章节

CentOS7防火墙管理firewall-cmd

豆花饭烧土豆
 豆花饭烧土豆
发布于 2017/04/03 16:35
字数 1263
阅读 184
收藏 0

启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。
一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则.

查看 firewall  状态 :
# firewall-cmd --state   # eg :running

查看 firewall 版本 :
# firewall-cmd --version #eg : 0.4.3.2

重启防火墙  
# systemctl restart firewalld

#查看所有的zone信息
# firewall-cmd --list-all-zones    

#查看默认zone是哪一个
# firewall-cmd --get-default-zone     

#临时修改接口p3p1所属的zone为internal
# firewall-cmd --zone=internal --change-zone=p3p1  

#暂时开放http
# firewall-cmd --add-service=http    

#永久开放http
# firewall-cmd --permanent --add-service=http  

#在public中永久开放80端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent  

#从public zone中移除服务
# firewall-cmd --permanent --zone=public --remove-service=ssh   

#重新加载配置
# firewall-cmd --reload   

查看一下防火墙现在开启了哪些服务和端口  
[root@localhost ~]# firewall-cmd --list-all  
public (default, active)  
  interfaces: eno16777736  
  sources:   
  services: dhcpv6-client ssh  
  ports: 8080/tcp  
  masquerade: no  
  forward-ports: port=80:proto=tcp:toport=8080:toaddr=  
  icmp-blocks:   
  rich rules: 

设置默认的zone  
irewall-cmd --get-default-zone  
firewall-cmd --set-default-zone=trusted  
#开放80 端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent    

命令含义:

--zone #作用域
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

从public移除 interface  
# firewall-cmd --zone=public  --remove-interface=eno16777736  

查询外网端口  
# firewall-cmd --permanent --query-port=8080/tcp  
  
删除8080端口,禁止外网访问  
# firewall-cmd --permanent --remove-port=8080/tcp   
  
添加8080端口,供外网访问  
# firewall-cmd --permanent --add-port=8080/tcp   

暂时开放ftp服务
firewall-cmd --add-service=ftp

永久开放ftp服务
firewall-cmd --add-service=ftp --permanent

永久关闭ftp服务
firewall-cmd --remove-service=ftp --permanent


打开mysql 3306端口并 设置外部访问
mysql安装后默认是localhost访问,如果需要外部访问可以设置一个新的账号把host改为%,意味着所有ip均可以访问

grant all privileges on *.* to 'outUser'@'%' identified by '12' with grant option

然后

flush privileges;

就可以使用outUser账户密码12来外部访问,有的时候无法访问需要打开防火墙开放端口

centos 7 中使用的是firewall-cmd命令

打开3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

参考:

http://blog.csdn.net/joeyon1985/article/details/46459255

http://linux.51yip.com/search/firewall-cmd

http://blog.sina.com.cn/s/blog_43b39e250102v4zt.html

http://www.cnblogs.com/yangxunwu1992/p/6091422.html

centos7 firewall 防火墙 命令

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

#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

© 著作权归作者所有

共有 人打赏支持
豆花饭烧土豆
粉丝 14
博文 353
码字总数 92682
作品 0
深圳
centos 6/7 防火墙操作

centos 7 firewall(防火墙)开放端口/删除端口/查看端口 1.firewall的基本启动/停止/重启命令 2.新增开放一个端口号 3.开放多个端口 查看本机已经启用的监听端口: 4.查看 5.删除 注意:新增/删...

殘留回憶
08/20
0
0
Centos系统开启及关闭端口

Centos7端口管理 1.查看已开放的端口(默认不开放任何端口) firewall-cmd --list-ports 2.开启80端口 firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永...

TaoismLi
06/05
0
0
centos7的基础文档二

centos7基础文档二 一.centos7的服务控制 1. 服务脚本文件 systemctl对于Linux来说,就是一个init程序,可以作为sysVinit和Upstat的替代。 centos7的服务脚本存放在:/usr/lib/systemd/,有系...

挚爱linux
2017/05/11
0
0
Centos 7 防火墙

莫小安 CentOS7使用firewalld打开关闭防火墙与端口 1、firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld ...

94年的男人
2017/06/12
0
0
centos7新特性(firewall防火墙)的简单配置

centos7默认使用firewall作为防火墙,其使用方式已经变化。基于iptables的防火墙被默认不启用,但仍然可以继续使用。管理工具是firewall-cmd,centos7内核版本是3.10,此版本的内核里防火墙过...

wb5a447e6e6541c
2017/12/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
39
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部