首页 技术 正文
技术 2022年11月16日
0 收藏 919 点赞 3,668 浏览 4263 个字

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

命令模式:
firewall-cmd

图形化界面:

firewall-config

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

防火墙 Firewalld

一些常用的基本操作命令
#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="这里面的内容也可以不加引号,系统会自动添加引号“
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,556
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,405
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898