centos7 firewalld日常使用

若生产中使用有docker,建议不要使用firewalld,改用iptables,用firewalld坑很多,暂时还未找到解决办法,在此做下记录:

说明:若加参数permanent为永久添加即添加至zone配置中,reload生效,重启firewalld也会生效,若不加 --permanent,重启后不再生效)

docker和firewalld共存时,使用命令添加开放端口规则,且加 --permanent参数

firewall-cmd --add-port=80/tcp  --permanent 添加规则后,80端口被外部正常访问,

然后使用firewall-cmd --remove-port=80/tcp  --permanent 永久移除规则,按正常情况80端口将不能被外部网络访问,

但实际确依然能被外部访问,而且此后防火墙像是被关闭了一样,所有服务端口都能被外部访问到。但查看配置中已经没有开放80端口的

规则,firewalld也是runing状态,此后重新开一台测试机,不安装docker进行测试,firewalld不再出现以上问题。

1、启动firewalld

systemctl start firewalld

systemctl enable firewalld #加入到开机启动

2、查看状态

systemctl status firewalld

firewall-cmd --state

3、关闭firewalld

systemctl stop firewalld

service说明:

在 /usr/lib/firewalld/services/ 目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务,如 ssh 服务等.

与之对应的配置文件中记录了各项服务所使用的 tcp/udp 端口,在最新版本的 firewalld 中默认已经定义了 70+ 种服务供我们使用.

当默认提供的服务不够用或者需要自定义某项服务的端口时,我们需要将 service 配置文件放置在 /etc/firewalld/services/ 目录中.

service 配置的好处显而易见:

第一,通过服务名字来管理规则更加人性化,

第二,通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。

每加载一项 service 配置就意味着开放了对应的端口访问

4、查看系统自带默认有那些service可以进行配置

firewall-cmd --get-services

5、查看当前已经开放的service和port

firewall-cmd --list-services

firewall-cmd --zone=public --list-services  # 指定区域进行查看

firewall-cmd --list-ports

firewall-cmd --zone=public --list-ports  # 指定区域进行查看

6、查看所有已开放的service和port等

firewall-cmd --list-all  # 查看默认区域的

firewall-cmd --zone=public  --list-all  # 只查看指定pubilc区域的

firewall-cmd --list-all-zones  # 查看所有区域的

7、查询单个服务的启用状态[返回值yes/no]

firewall-cmd --query-service http

8、动态添加一条防火墙规则至默认区域(public),比如开放服务或端口(此方法可以立即生效,但重启firewalld服务或reload后将不再生效,因为没有保存在配置文件中)

firewall-cmd --add-service=ftp

firewall-cmd --add-port=2326/tcp

firewall-cmd --zone=public --add-port=4990-4999/udp   #添加4990-4999 udp端口 ,并指定区域

9、动态添加规则后若想保存至zone配置中需要添加参数 --permanent(reload才生效)

firewall-cmd --add-service=ftp --permanent

firewall-cmd --add-port=12222/tcp --permanent

firewall-cmd --zone=public --add-port=4990-4999/udp  --permanent   #添加4990-4999 udp端口 ,并指定区域

firewall-cmd --reload #配置生效

10、动态移除规则,但需要重载防火墙才可生效

firewall-cmd --remove-service=http #移除直接生效

firewall-cmd --remove-port=2327/tcp --permanent #永久移除、删除,需reload才生效

firewall-cmd --reload

11、重载防火墙规则

通常手动修改zone配置进行规则添加后,需要进行重载生效,以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息

firewall-cmd --reload

注意:通常在防火墙出现严重问题时,这个命令才会被使用。比如,防火墙规则是正确的,但却出现状态信息问题和无法建立连接。

firewall-cmd --complete-reload

12、‘将同一台服务器上80端口的流量转发至8080

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

13、如果要将端口转发到另外一台服务器上

  1)在需要的区域中激活 masquerade

firewall-cmd --zone=public --add-masquerade

  2)添加转发规则

例子中是将本地的80端口的流量转发到IP地址为:10.0.10.15 的远程服务器上的8080端口。

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.0.10.15

14、防火墙伪装IP

firewall-cmd --query-masquerade # 检查是否允许伪装IP

firewall-cmd --add-masquerade # 允许防火墙伪装IP

firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

危险命令:[立即生效]

如果是远程的机器执行上面的规则会立刻断开网络连接,必须紧记不能随便执行。如果你只是虚拟机或者物理机器登陆就可以执行来调试。

拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

***************************************************************************************************************

拒绝访问操作:

#添加禁止响应ping

firewall-cmd --permanent --add-rich-rule=‘rule protocol value=icmp drop‘

#查看是否有此规则[等号后面跟详细的名称]

firewall-cmd --query-rich-rule=‘rule protocol value=‘icmp‘ drop‘

#删除方法

firewall-cmd --remove-rich-rule=‘rule protocol value=icmp drop‘

#添加拒绝某个IP访问ssh端口

firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.10.1 service name=‘ssh‘ reject"

或直接丢弃

firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.10.1 service name=‘ssh‘ reject"

或对端口进行操作

firewall-cmd --add-rich-rule=‘rule family=ipv4 source address=10.0.10.1 port port=22 protocol=tcp reject‘

说明:

rule :规则

family:ipv4  指定ipv4的地址

source address=10.0.10.1  要拒绝的IP,可以是IP或者是IP段

service name=‘ssh‘指定的是ssh服务

drop :就是此条规则的执行方法是丢弃

如果要放行直接修改后面的reject为accept即可。

#允许来自此IP允许通过防火墙

firewall-cmd --add-rich-rule=‘rule family="ipv4" source address="10.0.10.1" accept‘

#允许一个IP(10.0.10.1)仅能通过指定端口(8080-8090)访问到目标(10.0.10.13):

firewall-cmd --add-rich-rule=‘rule family="ipv4" source address="10.0.10.1" destination address="10.0.10.13/32" port port="8080-8090" protocol="tcp" accept‘

#如果要移除规则相对麻烦些,要输入后面详细的记录:

firewall-cmd --remove-rich-rule=‘rule family="ipv4" source address="10.0.10.1" destination address="10.0.10.13/32" port port="80" protocol="tcp" accept‘

最后说明:

如果规则中没有加入参数:--permanent都是即时生效的,而且reload或者重启服务后都不会再有记录。

而加入了参数:--permanent后需要手动reload或者重启服务才生效。 同时可以加入--zone 应用于于哪个区域的参数。

原文地址:https://www.cnblogs.com/ccit/p/10147802.html

时间: 2024-10-10 05:11:56

centos7 firewalld日常使用的相关文章

centos7 firewalld

1.firewalld简介 firewalld是centos7的一大特性,最大的好处有两个: 1.支持动态更新,不用重启服务: 2.加入了防火墙的"zone"概念 firewalld有图形界面和工具界面,由于我在服务器上使用,图形界面请参照官方文档,本文以字符界面做介绍 firewalld的字符界面管理工具是 firewall-cmd  firewalld默认配置文件有两个:/usr/lib/firewalld/ (系统配置,尽量不要修改)和 /etc/firewalld/ (用户配置

Centos7 Firewalld使用

在CentOS7开始,默认是没有iptables的,而是使用了firewall防火墙.与时俱进,简单的整理了一下firewall的使用方法.关于详细的介绍参考官网,就不搬字了.这个网站有中文选项.可以直接看中文.关于CentOS7 非常多是资料这里面都能找到.官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls

centos7 Firewalld操作集合

=============================================== 2019/4/15_第1次修改                       ccb_warlock =============================================== 由于一直使用centos7的环境,所以接触的防火墙比较多的是firewalld而不是iptable,之前一直没有好好总结过firewalld的用法,这次做个整理. 我将firewall-cmd命令的操作分成了

Centos7 firewalld防火墙学习使用记录

1.firewalld防火墙简介. FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口. 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启.这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等.而模块的卸载

centos7 firewalld防火墙

使用 FirewallD 构建动态防火墙 FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口. 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启.这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等.而模块

centos7 firewalld基本配置方法

说明:此规范分为两部分:一是,常规配置方法:二是集合配置方法常规的配置方法是指对于端口,服务及源地址的限制方法集合配置方法是针对于源地址和端口组合限制,但源地址是一个IP地址集合,此集合中可以任意添加IP地址及网段 一.常规配置方法:1.端口限制1)放开UDP 161/162端口firewall-cmd --permanent --zone=public --add-port=161/udpfirewall-cmd --permanent --zone=public --add-port=162

关于Centos7 firewalld防火墙开放端口后仍不能访问ftp和nginx的问题解决

我在阿里轻量应用服务器搭建ftp服务器这篇博客中把防火墙换为iptables,因为当时无论我怎么设置firewalld,就是无法访问ftp服务器,今天在翻看其他博客的时候,突然发现firewalld有打开服务这么一个命令,然后我就找到了解决的办法.查看当前开了哪些端口其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件. firewall-cmd --list-services1通过这个命令我们查看当前打开了那些服务,比如下面这个 我开启

CentOS7 firewalld防火墙配置

[[email protected] ~]# firewall-cmd --version       //查看版本0.3.9 [[email protected] ~]# firewall-cmd --state        //查看状态running[[email protected] ~]# [[email protected] ~]# firewall-cmd --zone=public --list-ports  //查看所有打开的端口445/tcp 443/tcp 1080/tcp

centos7系统基本操作命令

centos7系统基本操作命令 1.root/下 cat  anaconda-ks.cfg 确定是否装base软件组 yum groupinstall base  安装base组ifconfig 命令就可以使用了或者使用ip addr sh查看IP信息 YUM使用说明需要创建xxx.repo用于yum安装系统没有自带的.然后安装base组 2.命令行: 使用shell解释输入的字符串以运行程序 type sudo which, whereis, whatis, man, info 使用Tab自动