|
|
51CTO旗下网站
|
|
挪动端

通博8888官网防火墙:关于iptables和firewalld的那些事

以下是怎样运用 iptables 和 firewalld 东西来办理 通博8888官网 防火墙规矩。防火墙是一组规矩。当数据包收支受维护的网络地区时,收支内容(特殊是关于其泉源、目的和运用的协议等信息)会依据防火墙规矩停止检测,以确定能否容许其经过。

作者:David Clinton泉源:通博8888官网中国|2018-10-09 09:00

通博8888官网防火墙:关于iptables和firewalld的那些事

以下是怎样运用 iptables 和 firewalld 东西来办理 通博8888官网 防火墙规矩。

这篇文章摘自我的书《通博8888官网 in Action》,尚未公布的第二个曼宁出书项目。

防火墙

防火墙是一组规矩。当数据包收支受维护的网络地区时,收支内容(特殊是关于其泉源、目的和运用的协议等信息)会依据防火墙规矩停止检测,以确定能否容许其经过。上面是一个复杂的例子:

防火墙可以依据协议或基于目的的规矩过滤恳求。

防火墙可以依据协议或基于目的的规矩过滤恳求。

一方面, iptables 是 通博8888官网 呆板上办理防火墙规矩的东西。

另一方面,firewalld 也是 通博8888官网 呆板上办理防火墙规矩的东西。

你有什么题目吗?假如我通知你另有别的一种东西,叫做 nftables,这会不会摧残浪费蹂躏你的美妙一天呢?

好吧,我供认整件事的确有点可笑,以是让我来表明一下。这统统都从 Netfilter 开端,它在 通博8888官网 内核模块级别控制拜访网络栈。几十年来,办理 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 和 CentOS 上。假如您的盘算机上运转着像 Apache 如许的 web 效劳器,您可以经过阅读效劳器的 web 根目次来确认防火墙能否正在任务。假如网站不行拜访,那么 firewalld 正在任务。

你可以运用 firewall-cmd 东西服从令行办理 firewalld 设置。添加 –state 参数将前往以后防火墙的形态:

  1. # firewall-cmd --state
  2. running

默许状况下,firewalld 处于运转形态,并回绝一切传入流量,但有几个破例,如 SSH。这意味着你的网站不会有太多的拜访者,这无疑会为你节流少量的数据传输本钱。但是,这不是你对 web 效劳器的要求,你盼望翻开 HTTP 和 HTTPS 端口,依照常规,这两个端口辨别被指定为 80 和 443。firewalld 提供了两种办法来完成这个功用。一个是经过 –add-port 参数,该参数间接援用端标语及其将运用的网络协议(在本例中为TCP)。 别的一个是经过 –permanent 参数,它通知 firewalld 在每次效劳器启动时加载此规矩:

  1. # firewall-cmd --permanent --add-port=80/tcp
  2. # firewall-cmd --permanent --add-port=443/tcp

–reload 参数将这些规矩使用于以后会话:

  1. # firewall-cmd --reload

检查以后防火墙上的设置,运转 –list-services

  1. # firewall-cmd --list-services
  2. dhcpv6-client http https ssh

假定您曾经如前所述添加了阅读器拜访,那么 HTTP、HTTPS 和 SSH 端口如今都应该是和 dhcpv6-client 一样开放的 —— 它容许 通博8888官网 从当地 DHCP 效劳器恳求 IPv6 IP 地点。

运用 iptables 设置装备摆设锁定的客户信息亭

我置信你曾经看到了信息亭——它们是放在机场、图书馆和商务场合的盒子里的平板电脑、触摸屏和 ATM 类电脑,约请主顾和路人阅读内容。大少数信息亭的题目是,你通常不盼望用户像在本人家一样,把他们当成本人的设置装备摆设。它们通常不是用来阅读、寓目 YouTube 视频或对五角大楼提倡回绝效劳打击的。因而,为了确保它们没有被滥用,你需求锁定它们。

一种办法是使用某种信息亭形式,无论是经过奇妙运用 通博8888官网 表现办理器照旧控制在阅读器级别。但是为了确保你曾经梗塞了一切的破绽,你能够还想经过防火墙添加一些硬性的网络控制。在下一节中,我将解说怎样运用iptables 来完成。

关于运用 iptables,有两件紧张的事变需求记着:你给出的规矩的次序十分要害;iptables 规矩自身在重新启动后将无法坚持。我会一次一个地在表明这些。

信息亭项目

为了阐明这统统,让我们想象一下,我们为一家名为 BigMart 的大型连锁市肆任务。它们曾经存在了几十年;现实上,我们想象中的祖怙恃能够是在那边购物并长大的。但是现在,BigMart 公司总部的人能够只是在数着亚马逊将他们永久赶下去的工夫。

虽然云云,BigMart 的 IT 部分正在尽他们最大高兴提供处理方案,他们向你发放了一些具有 WiFi 功用信息亭设置装备摆设,你在整个市肆的战略地位运用这些设置装备摆设。其想法是,登录到 BigMart.com 产物页面,容许查找商品特性、过道地位和库存程度。信息亭还容许进入 bigmart-data.com,那边贮存着很多图像和视频媒体信息。

除此之外,您还需求容许下载软件包更新。最初,您还盼望只容许从当地任务站拜访 SSH,并制止其别人登录。下图阐明了它将怎样任务:

信息亭流量IP表

kiosk traffic flow ip tables

*信息亭业务流由 iptables 控制。 *

剧本

以下是 Bash 剧本内容:

  1. #!/bin/bash
  2. iptables -A OUTPUT -p tcp -d bigmart.com -j ACCEPT
  3. iptables -A OUTPUT -p tcp -d bigmart-data.com -j ACCEPT
  4. iptables -A OUTPUT -p tcp -d ubuntu.com -j ACCEPT
  5. iptables -A OUTPUT -p tcp -d ca.archive.ubuntu.com -j ACCEPT
  6. iptables -A OUTPUT -p tcp --dport 80 -j DROP
  7. iptables -A OUTPUT -p tcp --dport 443 -j DROP
  8. iptables -A INPUT -p tcp -s 10.0.3.1 --dport 22 -j ACCEPT
  9. iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP

我们从根本规矩 -A 开端剖析,它通知 iptables 我们要添加规矩。OUTPUT 意味着这条规矩应该成为输入链的一局部。-p 表现该规矩仅运用 TCP 协议的数据包,正如 -d 通知我们的,目标地点是 bigmart.com-j 参数的作用是当数据包契合规矩时要接纳的操纵是 ACCEPT。第一条规矩表现容许(或承受)恳求。但,往下的规矩你能看到抛弃(或回绝)的恳求。

规矩次序是很紧张的。由于 iptables 会对一个恳求遍历每个规矩,直到遇到婚配的规矩。一个向外收回的阅读器恳求,比方拜访 bigmart.com 是会经过的,由于这个恳求婚配第一条规矩,但是当它抵达 dport 80dport 443 规矩时——取决于是 HTTP 照旧 HTTPS 恳求——它将被抛弃。当遇到婚配时,iptables 不再持续往下反省了。(LCTT 译注:此处原文有误,径改。)

另一方面,向 ubuntu.com 收回软件晋级的零碎恳求,只需契合其得当的规矩,就会经过。显然,我们在这里做的是,只容许向我们的 BigMart 或 Ubuntu 发送 HTTP 或 HTTPS 恳求,而不容许向其他目标地发送。

最初两条规矩将处置 SSH 恳求。由于它不运用端口 80 或 443 端口,而是运用 22 端口,以是之前的两个抛弃规矩不会回绝它。在这种状况下,来自我的任务站的登录恳求将被承受,但是对其他任何中央的恳求将被回绝。这一点很紧张:确保用于端口 22 规矩的 IP 地点与您用来登录的呆板的地点相婚配——假如不如许做,将立刻被锁定。固然,这没什么大不了的,由于依照现在的设置装备摆设方法,只需重启效劳器,iptables 规矩就会全部丧失。假如运用 LXC 容器作为效劳器并从 LXC 主机登录,则运用主机 IP 地点衔接容器,而不是其大众地点。

假如呆板的 IP 发作变革,请记着更新这个规矩;不然,你会被回绝拜访。

在家玩(是在某种一次性假造机上)?太好了。创立本人的剧本。如今我可以保管剧本,运用 chmod 使其可实行,并以 sudo 的方式运转它。不要担忧“igmart-data.com 没找到”之类的错误 —— 固然没找到;它不存在。

  1. chmod +X scriptname.sh
  2. sudo ./scriptname.sh

你可以运用 cURL 下令行测试防火墙。恳求 ubuntu.com 见效,但恳求 manning.com 是失败的 。

  1. curl ubuntu.com
  2. curl manning.com

设置装备摆设 iptables 以在零碎启动时加载

如今,我怎样让这些规矩在每次信息亭启动时主动加载?第一步是将以后规矩保管。运用 iptables-save 东西保管规矩文件。这将在根目次中创立一个包括规矩列表的文件。管道前面随着 tee 下令,是将我的sudo 权限使用于字符串的第二局部:将文件实践保管到不然受限的根目次。

然后我可以通知零碎每次启动时运转一个相干的东西,叫做 iptables-restore 。我们在上一章节(LCTT 译注:指作者的书)中看到的惯例 cron 义务并不实用,由于它们在设定的工夫运转,但是我们不晓得什么时分我们的盘算机能够会决议解体和重启。

有很多办法来处置这个题目。这里有一个:

在我的 通博8888官网 呆板上,我将装置一个名为 anacron 的顺序,该顺序将在 /etc/ 目次中为我们提供一个名为 anacrontab 的文件。我将编辑该文件并添加这个 iptables-restore 下令,通知它加载谁人 .rule 文件确当前内容。当引导后,规矩每天(须要时)01:01 时加载到 iptables 中(LCTT 译注:anacron 会增补实行由于呆板没有运转而错过的 cron 义务,因而,即使 01:01 机遇器没有启动,也会在呆板启动会尽快实行该义务)。我会给该义务一个标识符(iptables-restore),然后添加下令自身。假如你在家和我一同如许,你应该经过重启零碎来测试一下。

  1. sudo iptables-save | sudo tee /root/my.active.firewall.rules
  2. sudo apt install anacron
  3. sudo nano /etc/anacrontab
  4. 1 1 iptables-restore iptables-restore < /root/my.active.firewall.rules

我盼望这些实践例子曾经阐明了怎样运用 iptables 和 firewalld 来办理基于 通博8888官网 的防火墙上的衔接题目。

【编辑引荐】

  1. 在通博8888官网中运用Wondershaper限定网络带宽
  2. 在通博8888官网中平安且轻松地办理Cron定时义务
  3. 5个给孩子的十分好的通博8888官网游戏和教诲软件
  4. 用于通博8888官网桌面的4个扫描东西
  5. 怎样在Ubuntu 通博8888官网中运用RAR文件
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
各人都在看
猜你喜好

读 书 +更多

网管员必读—网络使用(第2版)

本书固然是《网管员必读—网络使用》的改版,但它绝不是复杂的修正,而是完完全全的重写,内容更适用、更专业。全书共9章,13个巨细方案,...

订阅51CTO邮刊

点击这里检查样刊

订阅51CTO邮刊