firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

firewalld中常用的区域名称及策略规则
区域 默认规则策略
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关
firewall-cmd命令中使用的参数以及作用

参数 作用

--get-default-zone    查询默认的区域名称
--set-default-zone=<区域名称> 设置默认的区域,使其永久生效
--get-zones 显示可用的区域
--get-services 显示预先定义的服务
--get-active-zones 显示当前正在使用的区域与网卡名称
--add-source= 将源自此IP或子网的流量导向指定的区域
--remove-source= 不再将源自此IP或子网的流量导向某个指定区域
--add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称> 将某个网卡与区域进行关联
--list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones 显示所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=<服务名> 设置默认区域允许该服务的流量
--add-port=<端口号/协议> 设置默认区域允许该端口的流量
--remove-service=<服务名> 设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
--reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
--panic-on 开启应急状况模式
--panic-off 关闭应急状况模式

与Linux系统中其他的防火墙策略配置工具一样,使用firewalld配置的防火墙策略默认为运行时(Runtime)模式,又称为当前生效模式,而且随着系统的重启会失效。如果想让配置策略一直存在,就需要使用永久(Permanent)模式了,方法就是在用firewall-cmd命令正常设置防火墙策略时添加--permanent参数,这样配置的防火墙策略就可以永久生效了。但是,永久生效模式有一个“不近人情”的特点,就是使用它设置的策略只有在系统重启之后才能自动生效。如果想让配置的策略立即生效,需要手动执行firewall-cmd --reload命令。

[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=eno16777728
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh
[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp

centos7修改ssh端口记得添加防火墙规则

1.向防火墙中添加端口的命令为:

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

查看端口是否添加成功:

 firewall-cmd --zone=public --query-port=/tcp

2.开机启动相关

systemctl start firewalld

systemctl enable firewalld

3.与状态相关的firewalld命令

firewall-cmd --state ##查看火墙的状态(运行/停止)
firewall-cmd --get-active-zones ##查看正在使用域的情况
firewall-cmd --get-default-zone ##查看默认使用的域
firewall-cmd --get-zones ##查看能使用的所有域
firewall-cmd --zone=public --list-all
firewall-cmd --get-services ##显示直接可以在火墙中写的服务
firewall-cmd --list-all-zones ##查看所有域 firewall-cmd --list-all ##默认查看正在使用的域 firewall-cmd --set-default-zone=public ##修改默认域

4.firewalld中服务的添加与删除
(1)地址源的添加与删除

firewall-cmd [--permanent] --add-source=172.25.254.31 --zone=trusted ##添加来源
firewall-cmd [--permanent] --remove-source=172.25.254.31 --zone=trusted

(2)接口的添加与删除、改变

firewall-cmd [--permanent] --remove-interface=eth1 --zone=public
firewall-cmd [--permanent] --add-interface=eth1 --zone=trusted ##在某域中添加接口
firewall-cmd --list-all --zone=trusted
firewall-cmd [--permanent] --chang-interface=eth1 --zone=public ##改变接口

(3)端口的添加与删除

firewall-cmd [--permanent] --add-port=/tcp

firewall-cmd [--permanent] --remove-port=/tcp

(4)服务的添加与删除

firewall-cmd [--permanent] --add-service=http
firewall-cmd [--permanent] --remove-service=ssh ##永久删除
firewall-cmd --remove-service=ssh ##临时删除,reload后会继续生效

(5)加载

firewall-cmd --reload ##加载使生效,不会断开已经连接的客户端
firewall-cmd --complete-reload ##加载使生效,断开所有客户端的连接

5.firewalld相关设定文件

cd /etc/firewalld/zones ##火墙设定目录
cd /lib/firewalld/services/ ##服务相关文件(函数)

6.防火墙中规则的设定

firewall-cmd --remove-service=ssh
firewall-cmd --direct --add-rule ipv4 filter INPUT -s 172.25.254.31 -p tcp --dport -j ACCEPT
firewall-cmd --direct --get-all-rules ##查看所有规则
-s 来源 -p 协议 --dport 目标端口 -j 动作

示例:

firewall-cmd --direct --add-rule ipv4 filter INPUT  ! -s 172.25.254.31 -p tcp --dport  -j ACCEPT ##除该主机外所有主机走该规则(可以使用ssh)

7.地址伪装

sysctl -a | grep ip_forward
vim /etc/sysctl.conf
net.ipv4.ip_forward=
firewall-cmd --permanent --add-masquerade ##打开伪装功能
firewall-cmd --reload

8.端口转发

firewall-cmd --add-forward-port=port=:proto=tcp:toport=:toaddr=1.1.1.231

端口转发设置的删除

firewall-cmd --remove-forward-port=port=:proto=tcp:toport=:toaddr=1.1.1.231

把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:

流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/" service name="ssh" reject"

启用SNAT:在firewall-config中Masquerading,并选中Masquerade zone复选框,就自动开启了SNAT技术。

8.4 服务的访问控制列表

TCP Wrappers是RHEL 7系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤工具,而TCP Wrappers服务则是能允许或禁止Linux系统提供服务的防火墙,从而在更高层面保护了Linux系统的安全运行。

在配置TCP Wrappers服务时需要遵循两个原则:

编写拒绝策略规则时,填写的是服务名称,而非协议名称;
建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果。

[root@linuxprobe ~]# vim /etc/hosts.deny
sshd:* [root@linuxprobe ~]# vim /etc/hosts.allow
sshd:192.168..

TCP Wrappers服务的控制列表文件中常用的参数

客户端类型        示例                  满足示例的客户端列表
单一主机   192.168.10.10         IP地址为192.168.10.10的主机
指定网段   192.168..          IP段为192.168.10./24的主机
指定网段   192.168.10.0/255.255.255.0 IP段为192.168.10./24的主机
指定DNS后缀   .linuxprobe.com         所有DNS后缀为.linuxprobe.com的主机
指定主机名称   www.linuxprobe.com       主机名称为www.linuxprobe.com的主机
指定所有客户端   ALL              所有主机全部包括在内

Linux防DDOS攻击脚本:

*/ * * * * /usr/local/nginx/var/log/drop.sh
#!/bin/sh
cd /usr/local/nginx/var/log
tail access.log -n |grep vote.php | |sort |uniq -c |sort -nr |awk '{if ($2!=null && $1>50)}' > drop_ip.txt
for i in `cat drop_ip.txt`
do
#/sbin/iptables -I INPUT -s $i -j DROP;
firewall-cmd --add-source=192.168.5.6 --zone=drop
done

查看与80端口建立的链接

netstat -an | grep ":80" | grep ESTABLISHED

Centos7防火墙firewalled基本使用的更多相关文章

  1. Centos7防火墙快速开放端口配置方法

    ▲这篇文章主要为大家详细介绍了Centos7防火墙开放端口的快速方法,感兴趣的小伙伴们可以参考一下! Firewalld服务是红帽RHEL7系统中默认的防火墙管理工具,特点是拥有运行时配置与永久配置选 ...

  2. CentOS7 防火墙(firewall)的操作命令

    CentOS7 防火墙(firewall)的操作命令 安装:yum install firewalld 1.firewalld的基本使用 启动: systemctl start firewalld 查 ...

  3. [转帖]Centos7防火墙配置rich-rule实现IP端口限制访问

    Centos7防火墙配置rich-rule实现IP端口限制访问 2019-02-18 18:05:35 sunny05296 阅读数 2143  收藏 更多 分类专栏: Linux   版权声明:本文 ...

  4. (三) Docker 常用操作与CentOS7 防火墙命令

    参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 doc ...

  5. CentOS7 防火墙设置

    CentOS7 防火墙命令 最近在公司服务器上安装了oracle12c数据库,在用数据库客户端连接的时候,连接不了.最后查找资料的原因是因为oracle的服务端口未开放. 首先还是还是输入以往的开启某 ...

  6. CentOS7防火墙firewalld 和 CentOS6防火墙iptables的一些配置命令

    CentOS7 防火墙 一.防火墙的开启.关闭.禁用.查看状态命令 (1)启动防火墙:systemctl start firewalld (2)关闭防火墙:systemctl stop firewal ...

  7. 5分钟理解Centos7防火墙firewalld

    版权声明:本内容为原创内容,转载请声明出处. 原文地址:http://www.excelib.com/article/287/show firewalld简介 Centos7中默认将原来的防火墙ipt ...

  8. centos6和centos7防火墙的关闭

    CentOS6.5查看防火墙的状态: [zh@localhost ~]$service iptable status 显示结果: [zh@localhost ~]$service iptable st ...

  9. Centos7 防火墙简介(一)

    Centos7下的防火墙默认是通过一个守护进程(firewalld)为网络(network) 以及与之相关的连接(connections)和接口(interface)提供一个可信层,同时支持网络空间( ...

随机推荐

  1. nfs服务器共享存储

    NFS的使用: 主机   192.168.189.129 备份机 192.168.189.130 图文详解见:https://www.cnblogs.com/security-guard/Linux公 ...

  2. 【2019.7.25 NOIP模拟赛 T1】变换(change)(思维+大分类讨论)

    几个性质 我们通过推式子可以发现: \[B⇒AC⇒AAB⇒AAAC⇒C\] \[C⇒AB⇒AAC⇒AAAB⇒B\] 也就是说: 性质一: \(B,C\)可以相互转换. 则我们再次推式子可以发现: \[ ...

  3. AtCoder Grand Contest 036题解

    传送门 爆炸的比较厉害--果然还是菜啊-- \(A\) 我们强制一个点为\((0,0)\),那么设剩下两个点分别为\((a,b),(c,d)\),根据叉积可以计算出面积为\(ad-bc=S\),那么令 ...

  4. [LeetCode] 343. Integer Break 整数拆分

    Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...

  5. 热情组——项目冲刺 Day2

    项目相关 作业相关 具体描述 班级 班级链接 作业要求 链接地址 团队名称 热情组 作业目标 实现软件的生成,以及在福大的传播 Github链接 链接地址 SCRUM部分: 成员昵称 昨日目标 开始时 ...

  6. 第17课 lambda表达式

    一. lambda表达式 (一)语法定义:[capture](paramters) mutable ->returnType{statement} 1.[capture]:捕获列表 (1)lam ...

  7. 一篇了解大数据架构及Hadoop生态圈

    一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...

  8. Java奇妙之旅day_01

    一 .java程序运行原理 1.首先我们下载JDK,它是一组命令行工具,含有编译.调试.和执行java程序所需要的软件和工具. (1)关于下载我们在这不作赘述,在Oracle官方网站直接下载,一直点击 ...

  9. Web支持HTTPS的client(HTTP&XML-RPC)

    生成Web自签名的证书(在命令行执行以下命令) keytool -genkey -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=Han ...

  10. mybatis 报Invalid bound statement(not found) 和 Property 'mapperLocations' was not specified or not matching resources found

    排除问题的步骤: 1.首先检查mapper文件和mapper接口的文件名是否相等. 2.pom.xml是否把xml排除了,这样写就会src/main/java下所有的Mybatis的xml文件都删除, ...