Linux基础——Firewalld防火墙(二)

处理运行时区域:

运行时模式下对区域进行的修改不是永久有效的。重新加载或者重启后修改将失效。

1、启用区域中的一种服务即给某个区域开启某个服务

firewall-cmd [--zone=区域] --add-service=服务 [--timeout=秒数]

此操作启用区域中的一种服务。如果未指定区域,将使用默认区域。如果设定了超时时间,服务将只启用特定秒数。

使区域中的 ipp-client服务生效 60 秒:

启用默认区域中的 http 服务:firewall-cmd--add-service=http

2、禁用区域中的某种服务即关闭某个服务

firewall-cmd [--zone=区域] --remove-service=服务

此举禁用区域中的某种服务。如果未指定区域,将使用默认区域。

例:禁止默认区域中的 http 服务:

3、查询区域中是否启用了特定服务

firewall-cmd [--zone=区域] --query-service=服务

Yes 表示服务启用,no 表示服务关掉了。

4、启用区域端口和协议组合

firewall-cmd [--zone=区域] --add-port=portid[-portid]/protocol [--timeout=seconds]此操作将启用端口和协议的组合。端口可以是一个单独的端口或者是一个端口范围 - 。协议可以是 tcp 或 udp。

5、禁用端口和协议组合

firewall-cmd [--zone=区域] --remove-port=portid[-portid]/protocol

6、查询区域中是否启用了端口和协议组合

firewall-cmd [--zone=区域] --query-port=portid[-portid]/protocol

7、启用区域中的 IP 伪装功能

firewall-cmd [--zone=区域] --add-masquerade

此操作启用区域的伪装功能。私有网络的地址将被隐藏并映射到一个公有 IP。这是地址转换的一种形式,常用于路由。由于内核的限制,伪装功能仅可用于IPv4。

8、禁用区域中的 IP 伪装

firewall-cmd [--zone=区域] --remove-masquerade

9、查询区域的伪装状态 firewall-cmd [--zone=区域] --query-masquerade

注意:启用伪装功能的主机同时也需要开启转发服务:

# echo 1 > /proc/sys/net/ipv4/ip_forward

#vi /etc/sysctl.conf 添加如下内容

net.ipv4.ip_forward = 1

保存退出并执行#sysctl -p使修改生效

10、启用区域的 ICMP 阻塞功能

firewall-cmd [--zone=区域] --add-icmp-block=icmp 类型

例:firewal-cmd --add-icmp-block=echo-request

此操作将启用选中的 Internet 控制报文协议(ICMP)报文进行阻塞。 ICMP 报文可以是请求信息或者创建的应答报文,以及错误应答。

11、禁止区域的 ICMP 阻塞功能

firewall-cmd [--zone=区域] --remove-icmp-block=icmp 类型

12、查询区域的 ICMP 阻塞功能

firewall-cmd[--zone=区域] --query-icmp-block=icmp 类型

13、在区域中启用端口转发或映射

firewall-cmd [--zone=区域]

--add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toaddres s=address [/mask]]

端口可以映射到另一台主机的同一端口,也可以是同一主机或另一主机的不同端口。端口号可以是一个单独的端口或者是端口范围 - 。协议可以为 tcp 或 udp。目标端口可以是端口号或者是端口范围 - 。目标地址可以是 IPv4 地址。受内核限制,端口转发功能仅可用于 IPv4。

意思是凡是来从 external进来的 22端口的数据包全部转发到 211.106.65.50

firewall-cmd --zone=external

--add-forward-port=port=22:proto=tcp:toaddress=211.106.65.50

14、禁止区域的端口转发或者端口映射

firewall-cmd [--zone=]

--remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][ :toad dress=address [/mask]]

15、查询区域的端口转发或者端口映射

firewall-cmd

[--zone=]--query-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]] [ :toaddress=address[/mask]]

处理永久区域:

永久选项不直接影响运行时的状态。这些选项仅在重载或者重启服务时可用。为了使用运行时和永久设置,需要分别设置两者。选项--permanent 需要是永久设置的第一个参数。

1、获取永久选项所支持的服务

firewall-cmd --permanent --get-services

2、获取永久选项所支持的 ICMP类型列表

firewall-cmd --permanent --get-icmptypes

3、获取支持的永久区域

firewall-cmd --permanent --get-zones

4、配置防火墙在 public 区域打开 http 协议,并保存,以致重启有效

firewall-cmd --permanent --zone=public --add-service=http 查看永久模式下 public区域是否打开http 服务。firewall-cmd --permanent --zone=public --query-service=http

5、防火墙开放 8080 端口在 public 区域

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

6、命令行配置富规则:

查看富规则:# firewall-cmd --list-rich-rules

创建富规则:

firewall-cmd--add-rich-rule 'rule family=ipv4 source address=10.35.89.0/24 service name=ftplog prefix="ftp" level=info accept' --permanent

firewall-cmd --add-rich-rule 'rule family=ipv4 sourceaddress=10.35.89.0/24 port port=80 protocol=tcp log prefix="80"level=info accept' --permanent

firewall-cmd --add-rich-rule rule family="ipv4" sourceaddress="192.168.10.30" forward-port port="808"protocol="tcp" to-port="80" to-addr="10.10.10.2"

富规则中使用伪装功能可以更精确详细的限制:

firewall-cmd--add-rich-rule 'rule family=ipv4 source address=10.10.10.2/24 masquerade'

仅允许部分 IP 访问本机服务配置

firewall-cmd --permanent --zone=public --add-rich-rule="rulefamily="ipv4" source address="192.168.0.0/24" servicename="http" accept"

禁止远程 IP 访问ssh

firewall-cmd--permanent --zone=public --add-rich-rule=’rule family=ipv4

sourceaddress=192.168.0.0/24 service name=sshreject’

7、删除rich 规则

firewall-cmd--permanent --zone=public --remove-rich-rule=’rule family=ipv4

sourceaddress=192.168.0.0/24 service name=sshreject’

8、仅允许部分 IP 访问本机端口配置

firewall-cmd --permanent --zone=public--add-rich-rule="rule family="ipv4" sourceaddress="192.168.0.0/24"port protocol="tcp"port="8080" accept"

9、创建rich 规则,可以指定日志的前缀和输出级别

firewall-cmd --permanent --zone=public --add-rich-rule="rulefamily="ipv4" source address="192.168.0.4/24"port port=8080protocol="tcp" log prefix=proxy level=warning accept"

可以通过查看/var/log/messages 日志文件

10、端口转发。实验环境下,desktop访问server的5423端口,将访问server的80端口。

Server上的操作:(172.25.0.10是desktop的IP地址)

11、172.25.1.0/24 网段内的客户端不能访问主机的 SSH

12、也可通过配置以下 XML 文件,进行对防火墙的配置修改

#cat /etc/firewalld/zones/public.xml

<?xmlversion="1.0" encoding="utf-8"?>

<zone>

<short>Public</short>

<description>Foruse in public areas. You do not trust the other computers on networks

to not harmyour computer. Only selected incoming connections areaccepted.</description>

<servicename="dhcpv6-client"/>

<servicename="ssh"/>

<rulefamily="ipv4">

<sourceaddress="192.168.0.4/24"/>

<servicename="http"/>

<accept/>

</rule>

</zone>

netfilter 防火墙总是容易受到规则顺序的影响,因为一条规则在链中没有固定的位置。在一条规则之前添加或者删除规则都会改变此规则的位置。在静态防火墙模型中,改变防火墙就是重建一个干净和完善的防火墙设置,默认链通常也没有安全的方式添加或删除规则而不影响其他规则。

动态防火墙有附加的防火墙功能链。这些特殊的链按照已定义的顺序进行调用,因而向链中添加规则将不会干扰先前调用的拒绝和丢弃规则。从而利于创建更为合理完善的防火墙配置。下面是一些由守护进程创建的规则,过滤列表中启用了在公共区域对ssh , mdns 和ipp-client的支持:

图形化配置工具

firewall daemon 主要的配置工具是 firewall-config。它支持防火墙的所有特性。管理员也可以用它来改变系统或用户策略。

命令行客户端

firewall-cmd 是命令行下提供大部分图形工具配置特性的工具。

注:要想了解更多 firewall 防火墙更多知识可以查看 firewall的相关手册页:

man -k firewalld

若要查看rich-rule 手册页

man firewalld.richlanguage

原文发布于微信公众号 - L宝宝聊IT(gh_b0e552aa80db)

原文发表时间:2018-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2000
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6708
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2506
来自专栏杨龙飞前端

scrollto 到指定位置

2494
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2537
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2632
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2938
来自专栏落花落雨不落叶

canvas画简单电路图

59911
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4818
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7

扫码关注云+社区