科技行者

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

知识库

知识库 安全导航

至顶网软件频道用Linux实现Internet冗余连接(下) (2)

用Linux实现Internet冗余连接(下) (2)

  • 扫一扫
    分享文章到微信

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

我们都知道,出于安全性的考虑,只要主机连接在Internet上,就应该有一个防火墙阻止恶意的信息访问主机。设置防火墙时,首先决定哪一些服务可以通过Internet访问,然后关闭所有其它的服务。

作者:海灯 来源:www.pczhijia.com 2007年10月18日

关键字: 操作系统 Internet 实现 Linux

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

现在,这些核心功能中的一部分在主流Linux 2.4内核的版本中还不可用,不过它们可能作为补丁被添加进去。要把这些功能添加到内核中,必须安装Linux 内核2.4.13版本和iptables1.2.4版本,可以在以下网址获得源程序:

http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.13.tar.gz

http://netfilter.filewatcher.org/iptables-1.2.4.tar.bz2

按以下步骤把iptables补丁加到内核中:

1、在/usr/src/linux目录下安装Linux 2.4.13,并运行它。

2、把iptables-1.2.4.tar.bz2解压到它自己的目录中。

3、iptables-1.2.4# make patch-o-matic

选择“yes”到以下补丁:

string 
psd (port scan detection) 
iplimit

因为并不是每个补丁都兼容,因此只选择需要的补丁即可。

4、iptables-1.2.4#开始安装。

5、/usr/src/linux# make oldconfig。

在CONFIG_IP_NF_MATCH选项时回答“m”。

6、重新编译内核并重启。

防火墙脚本

配置防火墙脚本的基本流程是依次设置INPUT、FORWARD和OUTPUT规则。Iptables防火墙脚本还要设置PREROUTING和POSTROUTING规则。各脚本都有注释,描述什么信息被接收或者拒绝。REJECT会忽略数据包并且给发送者返回一个ICMP信息,告诉他信息已经丢失。而DENY(ipchains)或者DROP(iptables)则在丢弃数据包后,不做任何回复。在有人探测主机的特定端口时,该功能可以让系统仿佛不存在,从而有效地保护系统。在本文的防火墙脚本中,设计成不给远程系统作响应。

要在Red Hat 7.1上配置防火墙脚本,先把脚本放在/etc/init.d/firewall中,然后执行以下命令:

# chkconfig firewall on

要为你的系统配置防火脚本,还必须编辑以下两行,以定义内部网和外部网的接口:

INT_IFACE="eth0" 
EXT_IFACES="eth1 eth2"

INPUT规则链在防火墙上为服务开了一个口,所以对于特定的系统,你必须编辑服务列表 。在ipchains防火墙中,流入连接可以使用以下的行:

# ACCEPT TCP connections for various 
# services found in /etc/services 
for service in ftp ssh smtp domain 
http auth ldap https; do 
ipchains -A INPUT -i $EXT_IFACE -p tcp 
-d $IP $service -j ACCEPT 
done

防火墙脚本在不同的服务间循环,这在主机上是允许的。在本例中,这些服务是FTP、SSH、Sendmail、DNS、HTTP、ident、LDAP和HTTPS。这些基于TCP协议的名字和端口号可以在/etc/services文件中找到。

通过以下规则,在ipchains防火墙脚本中,INPUT链还可以接收任何源自本地的连接:

# ACCEPT non-SYN TCP packets on 
# unprivileged ports (returns) 
ipchains -A INPUT -i $EXT_IFACE -p tcp 
! -y -d $IP 1024: -j ACCEPT 

# ACCEPT all UDP packets on unprivileged ports 
ipchains -A INPUT -i $EXT_IFACE -p udp -d $IP 1024: 
-j ACCEPT

ipchains不支持连接跟踪,而iptables一个很大的改进即是支持这一功能。这就意味着数据包只有和一个活动的连接相符,才能被接收。在iptables防火墙脚本中使用以下规则来处理:

# ACCEPT return TCP/UDP traffic (stateful firewall) 
iptables -t filter -A INPUT -m state 
--state ESTABLISHED -i $EXT_IFACE 
-p tcp -d $IP --dport 1024: -j ACCEPT 
iptables -t filter -A INPUT -m state 
--state ESTABLISHED -i $EXT_IFACE 
-p udp -d $IP --dport 1024: -j ACCEPT
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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