RHEL7支持的防火墙:
IPTABLES
IP6TABLES
FIREWALL
EBTABLES

命令模式:
firewall-cmd

图形化界面:

firewall-config

Firewall的区域zone:
Drop 任何流入网络的包都被丢弃,并且不给出任何响应
Block 任何进入的网络都被拒绝,会给出响应。
Public 系统默认zone,允许指定的规则。
External 用在路由器等启用伪装的外部网络
Dmz 允许隔离区dmz中的电脑有限地被外界网络访问
Work 工作网络,允许受信任的计算机被限制的进入连接,类似workgroup
Home 家庭网络,同上,类似homegroup
Internal 内部网络,同上,针对所有互联网用户。
Trusted 允许所有网络连接。

一些常用的基本操作命令
#systemctl state/status/start/stop firewalld
#systemctl mask iptables    ---RHEL7中建议使用firewalld,把其它三个防火墙mask掉
#systemctl mask ip6tables
#systemctl mask ebtables
#firewall-cmd --help
#firewall-cmd --list-all     --列出默认zone-public中的防火墙规则

[root@rhel1 ~]# firewall-cmd --list-all
public (active)
   target: default
   icmp-block-inversion: no
   interfaces: enp0s3 enp0s8
   sources:
   services: ssh dhcpv6-client mysql ftp dns smtp samba nfs rpc-bind mountd
   ports: 139/tcp 445/tcp 20048/tcp 20049/tcp 6666/tcp 8888/tcp 12345/tcp 12345/udp 6666/udp 3260/tcp 123/udp 80/tcp
   protocols:
   masquerade: no
   forward-ports:
   source-ports:
   icmp-blocks:
   rich rules:

#firewall-cmd --get-active-zones --列出活动有zone,也就是配置过防火墙策略的zone

[root@rhel1 ~]# firewall-cmd --get-active-zones
public
   interfaces: enp0s3 enp0s8
block
   sources: 192.168.100.0/24

#firewall-cmd --zone=block --add-source=192.168.100.2     --来自这个IP的数据包全部被拒绝了。

从RHEL2客户机ping RHEL1测试:

[root@rhel2 ~]# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
From 192.168.100.1 icmp_seq=1 Destination Host Prohibited   --提示被拒绝。
From 192.168.100.1 icmp_seq=2 Destination Host Prohibited

# firewall-cmd --zone=block --remove-source=192.168.100.2  --删除防火墙策略

# firewall-cmd --zone=drop --add-source=192.168.100.2   --来自source网络的数据包全部被丢弃了。从rhel2 ping rhel1 测试时,没任何提示。从这可以看出block和drob的区别。生产环境一般用drop,就是直接丢弃数据包,不返回任何提示,这样更安全。

#firewall-cmd --zone=work --list-all   --列出指定zone中已配置的防火墙规则

[root@rhel1 ~]# firewall-cmd --zone=block --list-all
block (active)
   target: %%REJECT%%
   icmp-block-inversion: no
   interfaces:
   sources: 192.168.100.2
   services:
   ports:
   protocols:
   masquerade: no
   forward-ports:
   source-ports:
   icmp-blocks:
   rich rules:

#firewall-cmd --get-default-zone   --查看默认zone

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

#firewall-cmd --set-default-zone=public    --设置默认zone,添加防火墙策略时,如果不指定zone参数,则默认添加到public区域中
#firewall-cmd --add-service=http   --添加服务
#firewall-cmd --remove-service=http  --删除服务
#firewall-cmd --add-port=8080/tcp   --添加端口
#firewall-cmd --remove-port=8080/tcp --删除端口
#firewall-cmd --add-source=192.168.100.0/24  --添加源地址
#firewall-cmd --remove-source=192.168.100.0/24
#firewall-cmd --add-icmp-block=echo-request     --添加echo-request屏蔽
#firewall-cmd --remove-icmp-block=echo-request
#firewall-cmd --zone=work --add-service=http    ---指定zone添加服务
#firewall-cmd --permanent --zone=work --add-service=http   --加permanent参数,表示永久生效,即,将防火墙策略写入到配置文件/etc/firewalld下。否则重启防火墙或重启服务器之后,防火墙策略就不生效了。
#firewall-cmd –reload   --重读配置文件

# firewall-cmd --get-zone-of-interface=enp0s3 --查看指定接口的Zone信息
public
#firewall-cmd --zone=public --list-interfaces   --查看指定级别的接口
enp0s3

# firewall-cmd --zone=public --list-all   --查看指定zone的所有信息

# firewall-cmd --zone=public --add-interface=eth0 --添加某接口到指定zone

===============

配置public zone端口转发

# firewall-cmd --zone=public --add-masquerade  --打开端口转发

# firewall-cmd --zone=public --add-forward-port=port=12345:proto=tcp:toport=80  --将tcp12345转发到80端口

转发 22 端口数据至另一个 ip 的相同端口上
# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

转发 22 端口数据至另一ip的 2055 端口上
# firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

富规则端口转发

把80端口转向8899:

# firewall-cmd –permanent --add-rich-rule="rule family="ipv4" forward-port port="80" protocol="tcp" to-port="8899""
#firewall-cmd --reload

其它富规则例子(拒绝192.168.100.111通过ssh方式连接进来):

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.100.111/24 service name=ssh reject"
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: [root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: ssh dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.100.111/24" service name="ssh" reject
[root@localhost ~]#
firewall-cmd --permanent --add-rich-rule="这里面的内容也可以不加引号,系统会自动添加引号“

防火墙 Firewalld的更多相关文章

  1. Centos 7防火墙firewalld开放80端口(转)

    开启80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 出现success表明添加成功 命令含义: --zone #作用域 -- ...

  2. fedora/centos7防火墙FirewallD详解

    1 使用 FirewallD 构建动态防火墙 1.1 “守护进程” 1.2 静态防火墙(system-config-firewall/lokkit) 1.3 使用 iptables 和 ip6tabl ...

  3. 第一篇:动态防火墙firewalld和静态防火墙iptables

    动态防火墙firewalld firewalld提供了一个动态管理的防火墙,它支持网络(network)/防火墙区域(firewall zones )来定义网络连接( network connecti ...

  4. 防火墙firewalld的基础操作

    防火墙Firewalld.iptables 1.systemctl模式 systemctl status firewalld #查看状态 2 systemctl start firewalld #启动 ...

  5. centos 7.0 修改ssh默认连接22端口 和 添加防火墙firewalld 通过端口

    首先 先做的就是 修改ssh的默认端口22 需要修改文件 /etc/ssh/sshd_config 使用命令 vi /etc/ssh/sshd_config [root@localhost ~]# v ...

  6. Centos 7防火墙firewalld开放80端口

    开启80端口 1.firewall-cmd --zone=public --add-port=80/tcp --permanent  出现success表明添加成功 命令含义: --zone #作用域 ...

  7. linux 防火墙--firewalld学习

    firewalld是centos7默认的防火墙,相比于iptables重要的优势: 1 支持动态更新: 2 不用重启服务: 同时增加了防火墙的“zone”概念,具体差异没做过多了解,这篇文章只记录fi ...

  8. 【Centos7】5分钟理解防火墙firewalld

    Centos7中默认将原来的防火墙iptables升级为了firewalld,firewalld跟iptables比起来至少有两大好处: 1.firewalld可以动态修改单条规则,而不需要像ipta ...

  9. Centos 7 防火墙firewalld命令

    今天自己在Hyper-v下搭建三台Linux服务器集群,用于学习ELKstack(即大数据日志解决技术栈Elasticsearch,Logstash,Kibana的简称),下载的Linux版本为cen ...

  10. CentOS7 防火墙firewalld详细操作

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disab ...

随机推荐

  1. ASP.NET Razor 简介

    ylbtech-.NET: ASP.NET Razor 简介 Razor 不是一种编程语言.它是服务器端的标记语言. 1. 什么是 Razor?返回顶部 Razor 是一种标记语法,可以让您将基于服务 ...

  2. 用Razor語法寫範本-RazorEngine組件介紹

    最近剛好有要寫寄Email的程式,在代碼中寫HTML覺得很呆,抽出代碼外寫到txt或html檔當範本,由程式執行時在載入檔案時用Regex換關鍵字又覺得不夠好用,而且因為有時會有要判斷一些條件,就會寫 ...

  3. Java学习笔记——File类文件管理及IO读写、复制操作

    File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图片 文件和文件夹 相关函数  (boolean) mkdir( ...

  4. CSS-图片不变形设置

    不管网页做的美还是丑,有一个问题始终是无法躲避的,就是有的时候会遇到图片变形的问题,之前遇到过这种问题解决过,不过还是整体的重新研究了一下图片,其中主要涉及到的知识点就是max-width和max-h ...

  5. Ios之网络编程NSURLConnection

    通过NSURLConnection主要通过四个类进行网络访问:NSURL,NSURLRequest,NSMutableURLRequest,NSURLConnection 一.基本知识 (1)NSUR ...

  6. MongoDB 通过配置文件启动

    mongod启动命令需指定一些参数启动服务,我们通过配置文件的方式配置这些参数加载配置. ./bin/mongod --config ./conf/mongodb.conf(或./bin/mongod ...

  7. 【ElasticSearch】ElasticSearch-SQL插件

    ElasticSearch-SQL插件 image2017-10-27_11-10-53.png (1067×738) elastic SQL_百度搜索 Druid SQL 解析器的解析过程 - be ...

  8. 如何基于TensorFlow使用LSTM和CNN实现时序分类任务

    https://www.jiqizhixin.com/articles/2017-09-12-5 By 蒋思源2017年9月12日 09:54 时序数据经常出现在很多领域中,如金融.信号处理.语音识别 ...

  9. java web文件下载功能实现 (转)

    http://blog.csdn.net/longshengguoji/article/details/39433307 需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一 ...

  10. sql 根据另一个表的数据更新当前表

    --update mchk --set shwdjh=dbo.erpzhong.zhongbz--from erpzhong--where mchk.dwmch=erpzhong.matno