防火墙 Firewalld
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 |
#firewall-cmd --get-active-zones --列出活动有zone,也就是配置过防火墙策略的zone
[root@rhel1 ~]# firewall-cmd --get-active-zones |
#firewall-cmd --zone=block --add-source=192.168.100.2 --来自这个IP的数据包全部被拒绝了。
从RHEL2客户机ping RHEL1测试: [root@rhel2 ~]# ping 192.168.100.1 |
# 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 |
#firewall-cmd --get-default-zone --查看默认zone
[root@rhel1 ~]# firewall-cmd --get-default-zone |
#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="这里面的内容也可以不加引号,系统会自动添加引号“
最新文章
- ANdroid Studio查看debug SHA1
- [翻译练习]密码学1小时入门 (Everything you need to know about cryptography in 1 hour)
- Java利用aspose-words将word文档转换成pdf(破解 无水印)
- node.js基础:HTTP服务器
- javascript提高篇+吐槽
- Jboss 集群配置
- 编程范式:命令式编程(Imperative)、声明式编程(Declarative)和函数式编程(Functional)
- MongoDB 基础(2019年开篇)
- C++中的Public 、Private、Protected 区别
- Log4j配置记录
- Linux及MacOSX中使用zsh
- mysql添加字段并且设置默认值
- 14.纯 CSS 创作一种侧立图书的特效
- MariaDB 插入&;更新&;删除数据(8)
- JS funtion()中URL不跳转后台action问题
- Android -- java代码设置margin
- (转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲
- Distill详述「可微图像参数化」:神经网络可视化和风格迁移利器!
- specialized English for automation-Lesson 2 Basic Circuits of Operational Amplifiers
- python正则表达式 Python Re模块
热门文章
- C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher (WMI)
- java.lang.NoClassDefFoundError: com.sap.conn.jco.JCo (initialization failure) java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
- UrlRewriter &;&; IIS7
- 使用rsync实现客户端与服务器端的文件同步与传送,重点是原理和参数解释
- 构建-0 Gradle DSL 属性和方法【API】
- window.location属性用法及解决一个window.location.search为什么为空的问题
- impala 导出CSV 或excel
- [BUG] Dashboard报错:if usages['subnets']['available'] &;lt;= 0: KeyError: 'available'
- [转]学习块格式化上下文(BlockFormattingContext)
- Web项目MySQL配置文件运维