利用Linux打造安全的管理型网关


我们首先安装网关的系统,网上我们有三块网卡:第一块网卡为eth0,IP地址为212.1.1.1的公网地址。第二块网卡为eth1,IP地址为192.168.1.1。

    在这里我们选用redhat的一个Linux发行版本CentOS。安装完成后,系统自带了一套完善的防火墙系统iptables。首先我们在建立一个firewall,并赋于它执行的权限。

    #touch /etc/rc.d/firewall

    #chmod u+x /etc/rc.d/firewall

    首先,为了使客户机可以正常上网,我们先在这个文件内写入:

    #!/bin/sh

    echo 1 > /proc/sys/net/ipv4/ip_forward

    在使用之前需要先对iptables的规则进行清除

    iptables -F

    iptables -t nat -F

    iptables -X

    iptables -t nat -X

    iptables -F -t mangle

    iptables -t mangle –X

    为了有效的防止Spoofing Attack,可以继续添加下面的语句

    if [ -e /proc/sys/net/ipv4/tcp_ecn ]

    then

    echo 0 > /proc/sys/net/ipv4/tcp_ecn

    fi

    接下来,我们要预制iptables的三个内置链

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD ACCEPT

    iptables -A INPUT -i lo -j ACCEPT

    iptables -A INPUT -i eth0 -j ACCEPT

    PORT="80,21,110,23"

    iptables -A INPUT -p tcp -m multiport --dports $PORT -m state --state NEW -j ACCEPT

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    iptables -A INPUT -j MIRROR

    iptables -P INPUT  DROP

    前期的准备工作已经做好,我们将要进行网管管理功能的相应规则。

    #禁用了192.168.1.1/24这个段内的主机禁止使用了p2p协议的软件,泛指BT下载类。

    iptables -A FORWARD -m iprange --src-range 192.168.1.1-192.168.1.254 -m ipp2p --ipp2p -j DROP

    #屏蔽访问指定的网站

    iptables -A FORWARD -m domain --name "www.test.com" -j DROP

    #禁止上班时间使用QQ

    iptables -A FORWARD -m layer7 --l7proto qq -m time --timestart 8:00 --timestop 12:00 --days Mon,Tue,Wed,Thu,Fri  -j DROP

    iptables -A FORWARD -m layer7 --l7proto qq -m time --timestart 13:00 --timestop 17:30 --days Mon,Tue,Wed,Thu,Fri -j DROP

    特别说明一下,使用layer7这个模块,可以禁止现在市面上大部分的IM工具。

    #发现某个客户机在局域网内捣乱,可以使用下面的规则

    iptables -I FORWARD -m mac --mac-source 00:11:FF:FF:FF:FF -j DROP

    其中00:11:FF:FF:FF:FF是该客户机的MAC地址。

    #将内网内的WEB服务器映射至公网

    iptables -t nat -A PREROUTING -p tcp –d 212.1.1.1 --dport 80 -j DNAT --to 192.168.1.10:80

    按照上述方法,我们就不难把mail、FTP等内网服务映射至公网

    再者我们配合TC,来实现每台客户机的限速

    tc qdisc del dev eth0 root 2>/dev/null

    tc qdisc add dev eth0 root handle 2: htb

    tc class add dev eth0 parent 2: classid 2:1 htb rate 1024kbit

    i=1;

    while [ $i -lt 254 ]

    do

    tc class add dev eth0 parent 2:1 classid 2:2$i htb rate 1024kbit ceil 1024kbit burst 15k

    tc qdisc add dev eth0 parent 2:2$i handle 2$i: sfq

    tc filter add dev eth0 parent 2:0 protocol ip prio 4 u32 match ip dst 192.168.1.$i flowid 2:2$i

    i=`expr $i + 1`

    done

    从上面的脚本来看,如果客户机的速度超过了1024kbit,那么就会以15kbit的速度进行下调。

    为了防止局域网内的IP地址盗用问题,我们可以编辑/etc/ethers文件以下面这种格式

    IP-addr MAC-addr

    编写完了之后,执行arp –f 这样的话,如果IP地址与MAC地址不匹配的话,客户机就无法上网了,这样也可以有效的防止ARP病毒的攻击。

    这样,一台相对安全的服务器就已经设定完成了。当然,安全是一个整体,不要改过任何一个细节,因为它都有可能是一个安全隐患


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3