科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Linux免费防火墙试用手记(3)

Linux免费防火墙试用手记(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

一个带有防火墙功能的路由器可以有效地消除这些危险。你可以把钱省下来,完全使用Linux内建的路由和防火墙的功能来达到目的。在很多情况下,你甚至可以把你的Linux服务器同时作为路由器使用。

作者:51CTO.COM 2007年11月11日

关键字: 服务 防火墙 iptables Linux

  • 评论
  • 分享微博
  • 分享邮件

  我们可以先打开所有的服务,然后再来关闭那些不想让别人访问的东西,这看起来似乎很不错。不过在实际中,我们往往把这个过程倒过来,也就是说,我们首先禁止所有的和路由器的通信,然后再把一些特定的服务和端口打开。所以我们可以采用以下的命令过程:

  ipchains -F

  ipchains -P input DENY

  ipchains -P output REJECT

  ipchains -P forward DENY

  对这些命令说明如下:

  * -P input DENY对所收到的数据包不做任何反应。

  * -P output REJECT不接收任何数据包,但会给出一个ICMP无法到达的返回信息。

  下面,我们再增加规则,允许内部网里的信息流出:

  ipchains -A input -i lo -j ACCEPT

  ipchains -A output -i lo -j ACCEPT

  ipchains -A input -i eth0 -s 192.168.1.0/24 -j ACCEPT

  ipchains -A output -i eth0 -d 192.168.1.0/24 -j ACCEPT

  刚开始的两行告诉路由器接收所有流入的信息,放行所有流出的信息。第三行和第四行为内部网网卡eth0建立一些流入和流出的规则。

  这其中:

  * -i选项指定要应用规则的接口(在第一行中是lo,在最后两行中使用的是eth0)。

  * -A告诉路由器要增加一个规则。

  * -j告诉路由器如何处理数据包。

  * -s指示源地址(对于输入而言)。

  * -d指明目的地址(对于输出而言)。

  第三行在内部网(eth0)上创建了一个输入规则,允许路由器接收所有源地地址为192.168.1.0/24的数据包。第四行指明,所有去往以上地址的数据包都可以通行。

  转发

  下面,我们将增加一些规则,控制流出数据的转发:

  ipchains -A forward -i eth1 -s 192.168.1.0/24 -j MASQ

  ipchains -A forward -i eth0 -s 192.168.1.0/24 -j ACCEPT

  ipchains -A forward -i eth0 -d 192.168.1.0/24 -j ACCEPT

  这三条转发的规则非常的简单。第一行告诉路由器允许所有源地址为192.168.1.0的数据都可以发到Internet上。-j MASQ选项告诉路由器要使用IP伪装,这使得多个内部网主机可以使用同一个IP地址来访问Internet。接下来两行创建的规则,允许路由器转发所有源自或者送往内部网192.168.1.0的数据包。

   到此,最基本的东西就已经配置完成。但是,有时,我们可能需要限制一些内部网里的用户对 Internet的访问。要做到这一点,我们可以让用户使用不同的子网,这样,他的IP地址和规则不相符,那么所有源自这些主机的数据包就不能转发到 Internet。类似地,我们却可以让这些用户使用其它的服务(比如e-mail服务等)。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章