首页 新闻 文章 软件 动画 搜黑 编程 网校 网址 设计 视频 上传 图文 破解 专题 论坛 热门 虚拟主机 最近更新

 IDC 脚本注入 灰鸽子 DDOS攻击 QQ黑客 3389入侵 加壳脱壳 红客圈 黑页公布 防火墙 操作系统 代理IP 专杀工具 杀毒软件

 漏洞公布 病毒公告 业界动态 黑客新闻 黑客人物 杀毒防护 安全书籍 升级补丁 红客圈子
 入侵检测 漏洞研究 软件评测 操作系统 网管天地 黑客编程 安全防护 Q Q 技巧 防黑信封
 扫描检测 远程监控 脚本注入 拒绝攻击 嗅探监听 木马后门 字典代理 密码破解 黑客博客
 木马教程 脚本入侵 漏洞利用 加密破解 软件应用 安全配置 综合教程 Q Q 动画 网友上传
 Delphi编程 汇编编程 VB编程 VC/C++编程 PB编程 VFP编程 WEB编程 Exploite 数据库编程
国内超人气黑客论坛
定做软件 救援服务

综合 新闻 文章 软件 动画 编程 视频
·搜黑-全球首例黑客资讯搜索
·视频-国内视频学习教学大全
·设计-汇集百家设计网站精华
·编程-13大编程语言全面学习
安全中国首页 > 文章中心 > 图片文章
用Linux系统防火墙功能抵御网络攻击
http://www.anqn.com     时间:2006-12-9 20:37:06      责任编辑:丛森      网友评论
热 点:

    虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以考虑利用Linux系统本身提供的防火墙功能来防御。

1. 抵御SYN
    SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN的重试次数。

    加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分SYN攻击,降低重试次数也有一定效果。

调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3

为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。

2. 抵御DDOS
DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于一般Apache配置的接受连接数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行。

Linux提供了叫ipchains的防火墙工具,可以屏蔽来自特定IP或IP地址段的对特定端口的连接。使用ipchains抵御DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断攻击。发现一个阻断一个。

*** 打开ipchains功能
首先查看ipchains服务是否设为自动启动:
chkconfig --list ipchains
输出一般为:
ipchains 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如果345列为on,说明ipchains服务已经设为自动启动
如果没有,可以用命令:
chkconfig --add ipchains
将ipchains服务设为自动启动
其次,察看ipchains配置文件/etc/sysconfig/ipchains是否存在。如果这一文件不存在,ipchains
即使设为自动启动,也不会生效。缺省的ipchains配置文件内容如下:

# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
:input ACCEPT
:forward ACCEPT
:output ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
# allow http,ftp,smtp,ssh,domain via tcp; domain via udp
-A input -p tcp -s 0/0 -d 0/0 pop3 -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 http -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 https -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 ftp -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 smtp -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 ssh -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 domain -y -j ACCEPT
-A input -p udp -s 0/0 -d 0/0 domain -j ACCEPT
# deny icmp packet
#-A input -p icmp -s 0/0 -d 0/0 -j DENY
# default rules
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT

如果/etc/sysconfig/ipchains文件不存在,可以用上述内容创建之。创建之后,启动ipchains服:
/etc/init.d/ipchains start

*** 用netstat命令发现攻击来源
假如说黑客攻击的是Web 80端口,察看连接80端口的客户端IP和端口,命令如下:
netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
输出:
161.2.8.9:123 FIN_WAIT2
161.2.8.9:124 FIN_WAIT2
61.233.85.253:23656 FIN_WAIT2
...
第一栏是客户机IP和端口,第二栏是连接状态
如果来自同一IP的连接很多(超过50个),而且都是连续端口,就很可能是攻击。
如果只希望察看建立的连接,用命令:
netstat -an -t tcp | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort

*** 用ipchains阻断攻击来源
用ipchains阻断攻击来源,有两种方法。一种是加入到/etc/sysconfig/ipchains里,然后重启动ipchains服务。另一种是直接用ipchains命令加。屏蔽之后,可能还需要重新启动被攻击的服务,是已经建立的攻击连接失效

* 加入/etc/sysconfig/ipchains
假定要阻止的是218.202.8.151到80的连接,编辑/etc/sysconfig/ipchains文件,在:output ACCEPT
行下面加入:
-A input -s 218.202.8.151 -d 0/0 http -y -j REJECT
保存修改,重新启动ipchains:
/etc/init.d/ipchains restart
如果要阻止的是218.202.8的整个网段,加入:
-A input -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT

* 直接用命令行
加入/etc/sysconfig/ipchains文件并重起ipchains的方法,比较慢,而且在ipchains重起的瞬间,可能会有部分连接钻进来。最方便的方法是直接用ipchains命令。
假定要阻止的是218.202.8.151到80的连接,命令:
ipchains -I input 1 -p tcp -s 218.202.8.151 -d 0/0 http -y -j REJECT
如果要阻止的是218.202.8的整个网段,命令:
ipchains -I input 1 -p tcp -s 218.202.8.0/255.255.255.0 -d 0/0 http -y -j REJECT
其中,-I的意思是插入,input是规则连,1是指加入到第一个。

1 2 下一页

·上一篇: 如何编译一个内核 - Ubuntu方式
·下一篇: 四问IDS入侵检测应用

发表评论  打印本文  返回顶部  关闭窗口
最新5条评论 条评论
条评论
名称: 信箱:

相关连接
·非IT企业网络也要安全 硬件防火墙导购(图) [2007-8-12]
·个人整理的国外超强防火墙集合(图) [2007-8-12]
·为销售防火墙变身黑客攻击客户 北京警方侦破获DDOS攻击案 [2007-8-12]
·黑客入地无门:国外防火墙横评(图) [2007-8-11]
·Outpost防火墙应用设置全攻略(图) [2007-8-10]
·安全知识之基于C/S架构的分布式防火墙(图) [2007-8-6]
·有效防止盗号 三款主流防火墙横评(图) [2007-8-6]
·天网防火墙3.0个人版设置图文说明(图) [2007-8-6]
·超级保镖:国外精品个人防火墙亲密接触(图) [2007-8-3]
·Mcafee桌面防火墙设置指引(图) [2007-8-3]