CentOs7改变的最大处就是防火墙了,下面列用了常用的防火墙规则,端口转发和伪装

一、Firewalld基础规则

--get-default-zone  打印已设置为默认区域的当前区域,默认情况下默认区域为公共区域。

[root@centos7 ~]# firewall-cmd --get-default-zone
public

--new-zone=ZONE_NAME  创建自己的自定义区域

[root@centos7 ~]# firewall-cmd --permanent --new-zone=testing
success

--set-default   修改默认区域

[root@centos7 ~]# firewall-cmd --permanent --set-default-zone=testing

--get-zones  打印所有可用区域的列表

[root@centos7 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

--list-all-zones  显示每个区域的详细信息,为了简单起见,这里只显示一个区域的结果

[root@centos7 ~]# firewall-cmd --list-all-zones
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client dns http https ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

--get-active-zones  仅列出当前使用的区域,并具有绑定到接口的功能

[root@centos7 ~]# firewall-cmd --get-active-zones
public
interfaces: eth0

--get-services  列出可用于防火墙规则的预定义服务,这些服务与端口绑定

[root@centos7 ~]# firewall-cmd --get-services
RH-Satellite- 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-https

--list-services  列出在区域中允许的服务,下面列出的是默认的公共区域

[root@centos7 ~]# firewall-cmd --list-services
dhcpv6-client dns http https ssh

--add-service  在指定区域中添加附加服务,在本示例中,将添加Kerberos服务到公共区域

[root@centos7 ~]# firewall-cmd --add-service=kerberos
success
[root@centos7 ~]# firewall-cmd --list-services
dhcpv6-client dns http https kerberos ssh

--remove-service  移除服务进入区域的访问

[root@centos7 ~]# firewall-cmd --remove-service=kerberos
success
[root@centos7 ~]# firewall-cmd --list-services
dhcpv6-client dns http https ssh

--add-source=IP  向区域添加IP地址或地址范围

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-source=10.10.10.0/
success

--list-sources  列出已应用于区域的源地址

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --list-sources
10.10.10.0/

--remove-source=IP  移除已添加到区域的源IP地址或地址范围

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --remove-source=10.10.10.0/
success

可以将多个IP地址或范围添加为单个区域的源

[root@centos7 ~]# firewall-cmd --add-port=9000/tcp
success

--list-ports  列出默认区域允许的端口

[root@centos7 ~]# firewall-cmd --list-ports
/tcp

--remove-port  移除已添加过的端口

[root@centos7 ~]# firewall-cmd --remove-port=/tcp
success

下面的示例将创建一个新的“测试”区域,并将其应用于192.168.1.0/24,然后允许SSH服务和TCP端口9000进入该区域

[root@centos7 ~]# firewall-cmd --permanent --new-zone=test
success
[root@centos7 ~]# firewall-cmd --permanent --zone=test --add-source=192.168.1.0/
success
[root@centos7 ~]# firewall-cmd --permanent --zone=test --add-service=ssh
success
[root@centos7 ~]# firewall-cmd --permanent --add-port=/tcp --zone=test
success
[root@centos7 ~]# firewall-cmd --reload
success

列出测试区域的信息

[root@centos7 ~]# firewall-cmd --list-all --zone=test
test
interfaces:
sources: 192.168.1.0/
services: ssh
ports: /tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

这些类型的规则是相当基本的,接下来我们深入到丰富的规则,提供更大的灵活性

二、Firewalld Rich Rules

富规则通过更大的自定义选项提供了更大的控制级别,富规则也可以用来配置日志记录、伪装、端口转发和速率限制

一旦多个规则到位,它们将按照一定的顺序进行处理,端口转发和伪装规则将首先应用,接着是任何日志规则,然后是任何允许的规则,最后是任何拒绝规则;一个包将使用它所适用的第一条规则,如果它不符合一条规则,它将默认的拒绝

--add-rich-rule=’RULE’  用来添加指定的规则,在这里,我们允许通过从10.0.0.0/24范围内进入192.168.0.10/32的TCP端口8080到8090

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-rich-rule='rule family=ipv4 source address=10.0.0.0/24 destination address=192.168.0.10/32 port port=8080-8090 protocol=tcp accept'
success

--list-rich-rules  列出指定区域的所有富规则

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --list-rich-rules
rule family="ipv4" source address="10.0.0.0/24" destination address="192.168.0.10/32" port port="8080-8090" protocol="tcp" accept

--remove-rich-rule  移除现有的规则

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --remove-rich-rule='rule family=ipv4 source address=10.0.0.0/24 destination address=192.168.0.10/32 port port=8080-8090 protocol=tcp accept'
success

在这里,我们创建了一个富规则来拒绝来自192.168.0.10/24的任何访问

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-rich-rule='rule family=ipv4 source address=192.168.0.10/24 reject'
success

富规则也可以用来限制速率,在这里,我们将传入SSH连接限制为10次每分钟

[root@centos7 ~]# firewall-cmd --permanent --add-rich-rule='rule service name=ssh limit value=10/m accept'
success

富规则也可以用来将消息发送到日志文件,并且日志记录也可以受速率限制,这里,我们记录从192.168.0.0/24的SSH连接,以每分钟不超过50个日志条目的速率记录。只记录级别“info”或更重要的日志。

[root@centos7 ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="ssh" log prefix="ssh" level="info" limit value="50/m" accept'
success

三、网络地址转换

NAT可以用Firewalld进行伪装或端口转发,这两种都可以用firewall-cmd来配置,值得注意的是,伪装只能用IPv4而不是IPv6来完成

3.1 用firewalld进行地址伪装

--add-masquerade  在区域内添加伪装

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-masquerade
success

--query-masquerade  查询是否伪装成功

[root@centos7 ~]# firewall-cmd --permanent --query-masquerade
yes

在这个示例中,发送到区域“testing”中定义的地址的任何包都将被伪装

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
success

在这个例子中,来自192.1681.0/24的任何内容都将被伪装

3.2 用firewalld进行端口转发

在下面的示例中,本地系统将发送到端口22的所有业务转发到10.0.0.10:2222,因此在端口22上发送到该服务器的任何业务将在TCP 2222上转发到外部系统10.0.0.10,在这种情况下,端口转发规则只适用于在“test”区域中指定的源

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-forward-port=port=:proto=tcp:toport=:toaddr=10.0.0.10
success

查询是否成功转发

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --query-forward-port=port=:proto=tcp:toport=:toaddr=10.0.0.10
yes

另一种查看伪装是否已启用的方法

[root@centos7 ~]# firewall-cmd --permanent --list-all --zone=testing
testing
interfaces:
sources:
services:
ports:
masquerade: yes
forward-ports: port=:proto=tcp:toport=:toaddr=10.0.0.10
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.1.0/24" masquerad

富规则可以用于更详细的控制,我们可以在test区域内指定一个特定的源地址,而不是整个区域

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 forward-port port=22 protocol=tcp to-port=2222 to-addr=10.0.0.10'
success

我们不能使用“to-addr”参数,如果这样,端口转发将完全在本地主机上进行;

我们可以使用“--list-rich-rules”查看指定区域的富规则

[root@centos7 ~]# firewall-cmd --permanent --zone=testing --list-rich-rules
rule family="ipv4" source address="192.168.1.0/24" masquerade
rule family="ipv4" source address="192.168.1.0/24" forward-port port="" protocol="tcp" to-port="" to-addr="10.0.0.10"

CentOS7 Firewall超详细使用方法的更多相关文章

  1. VMware虚拟机下安装CentOS7.0超详细图文教程

    1.本文说明: 官方的第一个文本档案.也就是0_README.txt,大概意思是这样(渣翻译,但是大概意思还是有的). CentOS-7.0-1406-x86_64-DVD.iso:这个镜像(DVD ...

  2. bootstrap datetimepicker 日期插件超详细使用方法

    日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...

  3. unity3d Light Probe Group图解超详细使用方法

    原创文章如需转载请注明:转载自http://blog.csdn.net/qq617119142 第一步,创建一个Panel 和 三个 cube,搭建成如下图形状 第二步,创建2个点光源,一个为绿灯,一 ...

  4. VMwear安装Centos7超详细过程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...

  5. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  6. 非常详细的 (VMware安装Centos7超详细过程)

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...

  7. VMware安装Centos7超详细教程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定安装参考价值 在没有运维的情况下,很多时候测试需要自己搭建测试环境,而测试环境又分为QA环境,自动化测试环境,uat环境,以 ...

  8. VMware安装Centos7超详细过程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 一.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...

  9. centos7安装zabbix3.0超详细步骤解析

    centos7安装zabbix3.0超详细步骤解析 很详细,感谢作者 以下是我操作的history 622 java -version 623 javac -version 624 grep SELI ...

随机推荐

  1. javascript记住用户名和登录密码

    javascript记住用户名和登录密码 下面主要通过代码给大家展示下javascript记住用户名和登录密码,具体代码内容请看下文. <script type="text/javas ...

  2. 关于echart没有数据显示暂无数据

    对于echart当没有数据的时候怎么显示, 首先,如果你的series的值为空值的话,曲线将是一片空白,什么都不会有,所以在这里就要进行一个判断,如果没有值的话,人为的添加一个键 if(Object. ...

  3. volatile与synchronized实现原理

    参考文章:https://www.cnblogs.com/charlesblc/p/5994162.html --------------------------------------------- ...

  4. JS的正则表达式 - RegExp

    RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 正则表达式的创建方式 1.文字格式,使用方法如下: /pattern/flags  (即:/模式/标记) 2 ...

  5. bzoj 4942: [Noi2017]整数

    Description Solution 加法减法可以分开考虑,如果只有加法的话,直接暴力进位复杂度是对的 询问的时候就是把两个二进制数做差,判断第 \(k\) 位的取值 实际上我们只需要判断 \(1 ...

  6. js验证身份证号码是否合规

    需求:最近要做实名验证的功能,但是验证身份证号码和身份证图片的接口不想短信,比较贵,所以之前我们要验证严谨一点,参考了网上关于验证身份证号码的代码,总结一下 代码: //验证身份证号码 functio ...

  7. PostgreSQL On Windows Process Connection Performance

    本文主要对PostgreSql在Windows下的连接测试. 测试环境: Win7 x64, PostgreSql 10.1 x64 测试语言: VS2015 C# 因为Pg的数据库连接是开启进程来处 ...

  8. WP手机短信导出方法和MSG格式文件阅读器的实现

    最近想起来自己一直扔在抽屉里的Nokia920T里还存着珍贵的短信,觉得把它导出来存到电脑上比较稳妥也方便阅读.经过搜索找到一下方法:到应用市场里搜索contacts+message backup,安 ...

  9. vue本地设置请求接口及数据

    1.安装axios yarn add axios 2.在入口文件main.js中设置 import { getRequest, postRequest} from './libs/api';//导入 ...

  10. mongodb-mms安装

    mms是mongo集群监控软件. mms非常吃内存,虚拟机测试时,3G内存启动成功一次,之后重启时失败,建议不少于4G内存. MMS下载地址: https://downloads.mongodb.co ...