LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1200|回复: 11

Linux做代理服务器,800个客户端,经常出现系统崩溃

[复制链接]
发表于 2005-6-10 19:53:54 | 显示全部楼层 |阅读模式
一个校园宿舍网,大概有800台左右的客户端,客户端有很多感染震荡波、冲击波等病毒的机器。用一台P42.8/512/内存的机器安装Red Hat Linux9.0,做NAT,做MAC地址绑定,并封掉了已知的病毒攻击的端口,像135-139,445,4444等,还屏掉了ICMP包。
目前有很多客户端上不了网或上网速度很慢,Red Hat Linux9.0还会经常出现死机状况。请问大家有什么办法能够解决这800台机器稳定上网的问题?代理服务器应当如何修改,或是有什么其它的软硬件解决方案,请赐教。

附防火墙脚本
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -t nat -F
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/16 -j SNAT --to x.x.x.x
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
#/sbin/iptables -A FORWARD -p tcp -d 0.0.0.0/24 --dport smtp -i eth0 -j REJECT
#iptables  -t filter -A INPUT -j REJECT  -p tcp --dport smtp
#iptables  -t filter -A OUTPUT -j REJECT  -p tcp --dport smtp
iptables -A FORWARD -p tcp --dport 3300 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 3550 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5500 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 7000 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 7100 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5100 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5000 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 7200 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 16300 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 16301 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 16302 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 6000 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5600 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 4900 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 10000 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 44405 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55557 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 44400 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55960 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55902 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55962 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55970 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 55901 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 7003 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 27015 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 27016 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5555 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 4444 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 6666 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 7777 -o eth0 -j DROP
iptables -A FORWARD -P tcp --dport 135 -o eth0 -j DROP
iptables -A FORWARD -P tcp --dport 136 -o eth0 -j DROP
iptables -A FORWARD -P tcp --dport 137 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 138 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 139 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 3127 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 1433 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 1434 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 445 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5800 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 5900 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 6667 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 4444 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 69 -o eth0 -j DROP
iptables -A FORWARD -p tcp --dport 593 -o eth0 -j DROP
UDP 也屏掉了同样了的端口
发表于 2005-6-11 10:48:29 | 显示全部楼层
我觉得你的防火墙脚本写的太复杂了,是否可以这样
.....(清空链表的语句略)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
(注:如果要在防火墙上开放特定端口,比如telnet,加上iptables -A INPUT -p tcp --dport 23 -j ACCEPT即可)

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
(注:eth0为internet接口,eth1为内网接口,如有多个内网接口,可以都设为ACCEPT规则,如果要通过端口重定向允许外网的机器访问内网的主机端口,比如内网的3389端口,加上一句:iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT)

......(NAT表实现地址转换的和端口重定向的根据需要加)


其实可以将防火墙脚本的实现放在redhat linux 里的iptables服务配置文件中(/etc/sysconfig/iptables),然后启动这个服务就可以了,这样更简单一点.

上面的规则的语法我记得不太清楚,如果有误,请man iptables.
回复 支持 反对

使用道具 举报

发表于 2005-6-11 11:03:34 | 显示全部楼层
iptables -A FORWARD -s 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
…………
iptables -A FORWARD -p tcp --dport 3300 -o eth0 -j DROP
…………

你的防火墙规则照这个顺序写,能起到过滤作用么?
回复 支持 反对

使用道具 举报

发表于 2005-6-11 11:09:51 | 显示全部楼层
对于800个客户上网,通过redhat linux 的nat 来实现,我没有过这种经历,但是由于这种nat实际上是一种端口复用,每个客户上网建立一个tcp联接时,都会在redhat linux 服务器上打开一个端口(作为映射端口,同是要加入到映射表中),如果同时上网的客户端增多(每个客户端打开的tcp联接变多),可想而知都会在服务器上打开很多的端口,服务器产生的相应联接必然会很多很多(占用很多的资源),这样很可能会产生系统崩溃.加上你的内网机器病毒太厉害了,产生了大量的联接.
所以我想可能采用这种方法来实现800客户机的上网,不太理想.期待大家想一个好的解决方法,对了你的内网的拓扑结构是怎样的?
回复 支持 反对

使用道具 举报

发表于 2005-6-11 14:03:27 | 显示全部楼层
做nat最怕的就是BT,迅雷,快车这类东西.一开起来就等着网卡趴窝.
iptables推荐的写法应该是先Drop所有,然后根据需要开相应的端口.
还有你的网卡不能太差哦.至少也要百兆的.甚至可以试试通过网卡绑定增加带宽和网卡的稳定性
回复 支持 反对

使用道具 举报

发表于 2005-6-11 22:59:40 | 显示全部楼层
[root@shlinux squid]# du -s /var/spool/squid/

它的使用空間嚇人所以看看空間問題....
不然就會出現掉線了....
回复 支持 反对

使用道具 举报

发表于 2005-6-13 10:48:28 | 显示全部楼层
那你最好把的局域网弄好在说吧,我可是碰见这样的问题,换了N台服务器都当场挂掉.最后把网络的问题解决完了也就好了,有问题加我QQ362261006 在上面聊
回复 支持 反对

使用道具 举报

发表于 2005-6-15 13:00:54 | 显示全部楼层
UDP的断口需要屏蔽吗?不知道,望赐教!!!
回复 支持 反对

使用道具 举报

发表于 2005-6-15 13:24:55 | 显示全部楼层
你有没有自己写监控日志的呀?如果无有,写一个,查查是什么原因死机,我猜应该是因为,大多人用BT之类的软件所置的,可以加我QQ研究一下~~26793217
回复 支持 反对

使用道具 举报

发表于 2005-6-15 13:45:34 | 显示全部楼层
Post by dream3401
对于800个客户上网,通过redhat linux 的nat 来实现,我没有过这种经历,但是由于这种nat实际上是一种端口复用,每个客户上网建立一个tcp联接时,都会在redhat linux 服务器上打开一个端口(作为映射端口,同是要加入到映射表中),如果同时上网的客户端增多(每个客户端打开的tcp联接变多),可想而知都会在服务器上打开很多的端口,服务器产生的相应联接必然会很多很多(占用很多的资源),这样很可能会产生系统崩溃.加上你的内网机器病毒太厉害了,产生了大量的联接.
所以我想可能采用这种方法来实现800客户机的上网,不太理想.期待大家想一个好的解决方法,对了你的内网的拓扑结构是怎样的?

不是这样的,netfilter工作在ip层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表