穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意

(点击上方大众号,可快速重视)


英文:David Clinton,翻译:Linux我国/heguangzhi

linux.cn/article-10075-1.html


以下是怎么运用 iptables 和 firewalld 东西来办理 Linux 防火墙规矩。



这篇文章摘自我的书《Linux in Action》,没有发布的第二个曼宁出书项目。


防火墙


防火墙是一组规矩。当数据包进出受维护的网络区域时,进出内容(特别是关于其来历、方针和运用的协议等信息)会依据防火墙规矩进行检测,以承认是否答应其经过。下面是一个简略的比方:


防火墙能够依据协议或根据方针的规矩过滤恳求。


一方面, iptables 是 Linux 机器上办理防火墙规矩的东西春风送暖入屠苏。


另一方面,firewalld 也是 Linux 机器上办理防火墙规矩的东西。


你有什么问题吗?假如我通知你还有别的一种东西,叫做 nftables,这会不会浪费你的夸姣一天呢?


好吧,我供认整件事的确有点好笑,所以让我来解说一下。这一切都从 Netfilter 开端,它在 Linux 内核模块等级操控拜访网络栈。几十年来,办理 Netfilter 钩子的首要指令行东西是 iptables 规矩集。


因为调用这些规矩所需的语法看起来有点不流畅难明,所以各种用户友爱的完结办法,如 ufw和 firewalld 被引进,作为更高等级的 Netfilter 解说器。可是,ufw 和 firewalld 首要是为处理独自的核算机所面对的各种问题而规划的。构建全方面的网络处理方案一般需求 iptables,或许从 2014 年起,它的替代品 nftables (nft 指令行东西)。


iptables 没有消失,依然被广泛运用着。事实上,在未来的许多年里,作为一名办理员,你应该会运用 iptables 来维护的网络。可是 nftables 经过操作经典的 Netfilter 东西集带来了一些重要的簇新的功用。


从现在开端,我将经过示例展现 firewalld 和 iptables 怎么处理简略的衔接问题。


运用 firewalld 装备 HTTP 拜访


正如你能从它的姓名中猜到的,firewalld 是 systemd 宗族的一部分。firewalld 能够装置在 Debian/Ubuntu 机器上,不过,它默许装置在 RedHat 和 Ce华莱士加盟费多少ntOS 上。假如您的核算机上运转着像 Apache 这样的 web 服务器,您能够经过阅读服务器的 web 根目录来承认防火墙是否正在作业。假如网站不行拜访,那么 firewalld 正在作业。


你能够运用 firewall-cmd 东西从指令行办理 firewalld 设置。增加 –state 参数将回来当时防火墙的状况:


# firewall-cmd --state

runn咱们穿越吧ing


默许情况下,firewalld 处于运转状况,并回绝一切传入流量,但有几个破例,如 SSH。这意味着你的网站不会有太多的拜访者,这无疑会为你节约很多的数据传输本钱。可是,这不是你对 web 服务器的要求,你期望翻开 HTTP 和 HTTPS 端口,依照惯例,这两个端口分别被指定为 80 和 443。firewalld 供给了两种办法来完结这个功用。一个是经过 –add-port 参数,该参数直接我的好妈妈引证端口号及其将运用的网络协议(在本例中为TCP)。 别的一个是经过 –permanent 参数,它通知 firewalld 在每次服务器发动时加载此规矩:


# fi穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意rewall-cmd --perm孕妈妈能够喝茶吗anent --add-port=80/tcp

# firewall-cmd --permanent --add-port=443/tcp


–rel王洁曦oad 参数将这些规矩运用于当时会话:


# firewall-cmd --reload


查看当时防火墙上的设置,运转 –list-service于生一s:


# firewall-cmd --list-services

dhcpv6-client http https ssh


假定您现已如前所述增加了阅读器拜访,那么 HTTP开心境、HTTPS 和 SSH穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意 端口现在都应该是和 dhcpv6-client 相同敞开的 —— 它答应 Linux 从本地 DHCP 服务器恳求 IPv6 IP 地址。


运用 iptables 装备确定的客户信息亭


我相信你现已看到了信息亭——它们是放在机场、图书馆和商务场所的盒子里的平板电脑、触摸屏和 ATM 类电脑,约请顾客和路人阅读内容。大多数信息亭的问题是,你一般不期望用户像在自己家相同,把他们当成自己的设备。它们一般不是用来阅读、观看 YouTube 视频或对五角大楼建议回绝服务进犯的。因而,为了保证它们没有被乱用,你需求确定它们。


一种办法是运用某种信息亭方式,无论是经过奇妙运用 Linux 显现办理器仍是操控在阅读器等级。可是为了保证你现已阻塞了一切的缝隙,你或许还想经过防火墙增加一些硬性的网络操控。鄙人一节中,我将解说怎么运用iptables 来完结。


关于运用 iptables,有两件重要的作业需求记住:你给出的规矩的次序十分要害;iptables 规矩妃常淡定废材女玩棋迹本香港红灯区身在重新发动后将无法坚持。我会一次一个地在解说这些。


信息亭项目


为了阐明这一切,让咱们幻想一下,咱们为一家名为 BigMart 的大型连锁商铺作业。它们现已存在了几十年;事实上,咱们幻想中的祖父母或许是在那里购物并长大的。可是现在,BigMart 公司总部的人或许只是在数着亚马逊将他们永久赶下穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意去的时刻。


尽管如此,BigMart 的 IT 部分正在尽他们最大尽力供给处理方案,他们向你发放了一些具瘦老头有 WiFi 功用信息亭设备,你在整个商铺的战略方位运用这些设备。其主意是,登录到 BigMart.com 产品页面,答应查找产品特征、过道方位和库存水平。信息亭还答应进入 bigmart-data.com,那里储存着许多图画和视频媒体信息。


除此之外,您还需求答应下载软件包更新。最终,您还期望只答应从本地作业站拜访 SSH,并阻挠其他人登录。下图阐明晰它将怎么作业:


*信息亭业雅思考试时刻务流由 iptables 操控。 *


脚本


以下是 Bash 脚本内容:



咱们从根本规矩 -A 开端剖析,它通知 iptables 咱们要增加规矩。OUTPUT 意味着这条规矩应该成为输出链的一部分。-p 表明该规矩仅运用 TCP 协议的数据包,正如 -d 通知咱们的,意图地址是 bigmart.com。-j 参数的作用是当数据包契合规矩时要采纳的操作是 ACCEPT。第一条规矩表明答应(或承受)恳求。但,往下的规矩你能看到丢掉(或回绝)的恳求。


规矩次序是很重要的。因为 iptables 会对一个恳求遍历每个规矩,直到遇到匹配的规矩。一个向外宣布的阅读器恳求,比方拜访 bigmart.com 是会经过的,因为这个恳求匹配第一条规矩,可是当它抵达 dport 80 或 dport 443 规矩时——取决所以 HTTP 仍是 HTTPS 恳求——它将被丢掉。当遇到匹配时,iptables 不再持续往下查看了。(LCTT 译注:此处原文有误,径改。)


另一方面,向 ubuntu.com 宣布软件晋级的体系恳求,只需契合其恰当的规矩,就会经过。明显,咱们在这里做的是,只答应向咱们的 BigMart 或 Ubuntu 发送 HTTP 或 HTTPS 恳求,而不答应向其他意图地发送。


最终两条规矩将处理 SSH 恳求。因为它不运用端口 80 或 443 端口,而是运用 22 端口,所以之前的两个丢掉规矩不会回绝它。在这种情况下,来自我的作业站的登录恳求将被承受,可是对其他任何地方的恳求将被拒国元证券绝。这一点很重要:保证用于端口 22 规矩的 IP 地址与您用来登录的机器的地址相匹配——假如穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意不这样做,将立即被确定。当然,这没什么大不了的,因为依照现在的装备办法,只需重启服务器,iptables 规矩就会悉数丢掉。假如运用 LXC 容器作为服务器并从 LXC 主机登录,则运用主机 IP 地址衔接容器,而不是其公共地址。


假如机器的 IP 发生变化,请记住更新这个规矩;不然,你会被回绝拜访。


在家玩(是在某种一次性虚拟机上)?太好了。创立自己的脚本。现在我能够保存脚本,运用 chmod 使其可履行,并以 sudo 的方式运转它。不要忧虑“igmart-data.com 没找到”之类的感恩的心手语视频过错 —— 当然没找到;它不存在。


chmod +X scriptname.sh

sudo ./scriptname.sh


你能够运用 cURL 指令行测验防火墙。恳求 ubuntu.com 见效,但恳求 manning.com 是失利的 。


curl ubuntu.com

curl manning.com


装备 iptables 以在体系发动时加载


现在,我怎么让这些规矩在每次信息亭发动时主动加载?第一步是将当时穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意规矩保存。运用 iptables-save 东西保存规矩文件。这将在根目录中创立一个包括规矩列表的文件。管道后边跟着 tee 指令,是将我的sudo 权限运用于字符串的第二部分:将文件实践保存到不然受限的根目录。


然后我能够通知体系每次发动时运转一个相关的东西,叫做 iptables-restore 。咱们在上一章节(LCTT 译注:指作者的书)中看到的惯例 cron 使命并不适用,因为它们在设定的时刻运转,可是咱们不知道什么时候咱们的核算机或许会决议溃散和重启。


有许多办法来处理这个问题。这里有一个:


在我的 Linux 机器上,我将装置一个名为 anacron 的程序,该程序将在 /etc/ 目录中为咱们供给一个名为 anacrontab 的文件。我将修改该文件并增加这个 iptables-restore 指令,通知它加载那个 .rule 文件的当时内容。当引导后,规矩每天(必要时)01:01 时加载到 iptables 中(LCTT 译注:anacron 会弥补履行因为机器没有运转而错失的 cron 使命,因而,即使 01:01 时机器没有发动,也会在机器发动会赶快履行该使命)。我会给该使命一个标识符(iptables-restore),然后增加指令自身。假如你在家和我一同这样,你应该经过重启体系来测验一下。



我期望这些实践比方现已阐明晰怎么运用 iptables 和 firewalld 来办理根据 Linux 的防火墙上的衔接问题。



【关于投稿】


假如我们有原创好文投稿,请直接给公号发送留言。


① 留言格局:
【投稿】+《 文章标题》+ 性爱漫画文gatebox章链接

② 示例:
【投稿】《不精牛要自称是程序员,我十穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意多年的吴龙 IT 职场总结》:http://blog.jobbole.com/94148/

③ 最终请附上您的个人端木星简介哈~



看完本文有收成?穷,Linux 防火墙:关于 iptables 和 firewalld 的那些事,吉祥如意请共享给更多人

重视「Linux 爱好者」,提高Linux技术

转载原创文章请注明,转载自188金宝搏app_188金宝搏苹果下载_188bet金博宝,原文地址:http://www.trial4fun.com/articles/134.html

上一篇:凯,借力教育 守住阿尔山的绿水青山,圆寸

下一篇:格列佛游记读后感,她像调查猩猩相同,研讨这些焦虑的妈妈,太极宗师