firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用。

1、firewall的基本命令

"firewall-cmd --list-all"。查看当前的firewall的信息和配置。

"firewall-cmd --reload"。重新加载firewall配置,

"firewall-cmd --add-service=xxxx"。添加一个服务,例如下图,添加http,使得这个服务的数据可以通过,但是这个添加是临时的,重新加载配置后就会消失。

"firewall-cmd --permanent --add-service=xxxx"。可以永久添加这个服务。

"vim /etc/firewalld/zones/public.xml"。firewall的默认模式"public"的配置文件,如下图所示,可以看到添加的服务都在里面,如果在其中按照格式添加"ftp",重新加载后就添加了这个服务了。

"firewall-cmd --remove-service=xxxx"。可以去掉某一个服务。

"cd /usr/lib/firewalld/services/"。进入这个目录后,如下图所示,输入"ls",就可以看到可以添加哪些服务,并且可以看到这些服务的名称了。

"firewall-cmd --permanent --add-port=xxxx/tcp"。使某个端口的数据可以通过。例如在Apache配置文件中将端口改为8080,则即使firewall中添加了htpp也无法访问,因为其设置的可以通过的端口是80。此时需要用上述命令,添加8080端口,完成后,即可使用Apache访问。

"firewall-cmd --permanent --add-source=172.25.254.102 --zone=trusted"。表示来自"172.25.254.102"的数据全部通过。如果开启,firewall不添加http,且改为8080端口后不添加到firewall,"172.25.254.102"主机也可以访问Apache。"add"改为"remove"可以取消。

"firewall-cmd --permanent --remove-interface=eth1 --zone=public"。将eth1网卡从public模式下移除。

"firewall-cmd --permanent --add-interface=eth1 --zone=trusted"。将eth1网卡添加到trusted模式下。但是完成后需要重启防火墙"systemctl restart firewalld"才可以生效。

2、firewall的模式

"firewall-cmd --get-default-zone"。查看firewall的默认模式,是public。

"firewall-cmd --get-zones"。查看firewall都有哪几种模式。

"firewall-cmd --set-default-zone=xxx"。将firewall的默认模式改为xxx,这是一个临时更改。

firewall中常用的几种模式如下所示:

trusted:信任。可接受所有的网络连接。

home   :家庭。用于家庭网络,仅接受dhcpv6-client ipp-client mdns samba-client ssh服务连接。

work   :工作。工作网络,仅接受dhcpv6-client ipp-client ssh服务连接。

public :公共。公共区域使用,仅接受dhcpv6-client ssh服务连接,这是firewalld的默认区域。

external:外部。出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接。

dmz    :非军事区。仅接受ssh服务连接。

block  :限制。拒绝所有网络连接。

drop   :丢弃。任何接收的网络数据包都被丢弃,没有任何回复。

3、firewall的应用

例如下图所示,client的主机可以通过ssh连接上server主机。去掉server主机上所添加的ssh服务,这样所有主机都不能连接了。然后在server主机上配置"firewall-cmd --permanent --direct --add-rule -ipv4 filter INPUT 0 ! -s 172.25.254.102 -p tcp --dport 22 -j ACCEPT",该策略表示除了172.25.254.102的主机的数据都可以通过22端口。添加后可以使用"firewall-cmd --direct --get-all-rules"来查看所添加的策略。

完成后用client测试,重新通过ssh连接,发现就连接不上了。

去除这条策略将"add"改为"remove"即可。

4、firewall的路由策略

与iptables相同,firewall也可以添加路由策略,使得不同网段的主机也可以连接。三台主机的IP与网关与iptables篇中相同。

"firewall-cmd --list-all"。基本上是最初的样子。

firewall的路由策略配置如下所示:

"firewall-cmd --permanent --add-masquerade"。打开地址伪装功能。

"firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.202 masquerade""。该策略表示,将通过server主机的数据都封装为IP"172.25.254.202"。

"firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.0/24 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.2.102""。该条策略表示,将所有"172.25.254"网段的通过22端口的数据转到"172.25.2.102"主机上。

完成后重启firewall生效。"firewall-cmd --list-all"可以看到这些策略。

测试时,"2"网段的client主机可以成功连接"254"网段的"172.25.254.2"主机。与iptables相同,"172.25.254.2"的主机上看到的依旧是"172.25.254.202"的连接,ssh连接这个IP就会自动连接到"2"网段的client主机。

iptables和firewall是防火墙中常用的两种程序,可以灵活运用。

linux初学者-firewall篇的更多相关文章

  1. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  2. linux初学者-mail篇

     linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...

  3. linux初学者-iptables篇

     linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...

  4. linux初学者-Apache篇

     linux初学者-Apache篇          Apache提供了超文本传输协议http,httpd是Apache超文本传输协议的主服务器.下文将对httpd的安装和配置进行简单的叙述.     ...

  5. linux初学者-iscsi篇

     linux初学者-iscsi篇         之前介绍过网络文件共享系统NFS和CIFS.在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备.主机和客户机等之间的相互 ...

  6. linux初学者-ftp篇(一)

    linux初学者-ftp篇(一) FTP是文件传输协议,是用于Internet上的控制文件的双向传输.用户可以通过客户机程序从远程主机上下载或者向远程主机上传文件. linux系统中,如果不了解SEL ...

  7. linux初学者-磁盘阵列篇

    linux初学者-磁盘阵列篇 在磁盘的使用中,有时候需要提高磁盘的读写数据速度,就要用到磁盘组——raid,也就是磁盘阵列. 磁盘阵列是由最少两块以上的磁盘组成的,raid有许多模式,在这里将介绍其中 ...

  8. linux初学者-进程篇

    linux初学者-进程篇 不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作.下面会介绍一些关于系统中进程的查看以及管理的方法. 1.命令 1.1.命令使用 查 ...

  9. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

随机推荐

  1. foreach() 中用指针指向数组元素,循环结束后最好销毁指针

    之前发过一次微博,今天又遇到这个问题,并且再次犯错,于是决定再加深一下. 就举php.net里的一个例子吧 $a = array('abe','ben','cam'); foreach ($a as ...

  2. React性能优化之PureComponent 和 memo使用分析

    前言 关于react性能优化,在react 16这个版本,官方推出fiber,在框架层面优化了react性能上面的问题.由于这个太过于庞大,我们今天围绕子自组件更新策略,从两个及其微小的方面来谈rea ...

  3. Git 所有常用命令

    写的很细致,存: https://blog.csdn.net/Mr_Lewis/article/details/85547057

  4. 【fullGC】内存监控工具

    什么是fullGC: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的J ...

  5. javascript匿名函数自调用

    // 匿名函数的自调用 /*var f1 = function() { console.log('我是一个匿名函数!'); }*/ // f1(); // 上面是定义一个匿名函数,然后调用,其实上面就 ...

  6. 交叉编译多平台 FFmpeg 库并提取视频帧

    原文地址: 交叉编译多平台 FFmpeg 库并提取视频帧 交叉编译多平台 FFmpeg 库并提取视频帧 本文档适用于 x86 平台编译 armeabi.armeabi-v7a.arm64-v8a.x8 ...

  7. C# 中奇妙的函数–6. 五个序列聚合运算(Sum, Average, Min, Max,Aggregate)

    今天,我们将着眼于五个用于序列的聚合运算.很多时候当我们在对序列进行操作时,我们想要做基于这些序列执行某种汇总然后,计算结果. Enumerable 静态类的LINQ扩展方法可以做到这一点 .就像之前 ...

  8. WordPress教程之如何创建博客内容

    上两篇教程的链接: Wordpress教程之初识WordPress Wordpress教程之如何入门WordPress Hostwinds共享主机vps限时五折优惠链接 现在,你的 WordPress ...

  9. .Net Core 使用Http请求及基于 Polly 的处理故障

    一.介绍 在IServiceCollection调用AddHttpClient注册IHttpClientFactory服务,调用AddHttpMessageHandler以生成出站请求中间件管道. 每 ...

  10. Bzoj 3813 奇数国 题解 数论+线段树+状压

    3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 748  Solved: 425[Submit][Status][Discuss] ...