加固Linux_apf防火墙+bfd+ddos+chkrootkit

对于虚拟主机提供商,面临的情况都比较复杂,来租用的客户有不懂的,也有故意来搞破坏的
所以加固linux,是必不可少的一个步骤

lamp应该就已经是比较安全的,类似ssh proftpd wu-ftpd软件都能限制登陆的错误次数,也可以用iptables加以限制数据包的进出
但是更简单的办法,就是安装apf+bfd了
简单的安装方式,可以控制复杂的数据进出流,端口的限制,减轻自己的工作量,当然如果你是脚本高手又有很多的时间,则不在讨论范围之内。

  1. 下载apf
  2. wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
  3.  
  4. 进入安装目录并安装
  5. cd apf-<version>/ && ./install
  6.  
  7. 修改apf配置文件
  8. vi /etc/apf/conf.apf
  9.  
  10. 几个重要参数设置
  11.  
  12. DEVEL_MODE="x"
  13. x15分钟会关闭apf以防止误操作导致无法远程控制
  14. x0 为正常工作模式
  15.  
  16. INSTALL_PATH="/etc/apf"
  17. 定义安装目录,可以更改,但是不推荐
  18.  
  19. DLIST_DSHIELD="1"
  20. 改为1,此动作将从spamhausv收集恶意的IP地址加以屏蔽
  21.  
  22. IG_TCP_CPORTS="20,21,80,22,2222,6000_7000"
  23. 定义哪些TCP数据包允许从某些端口流入
  24.  
  25. EGF="1" #开启出站过滤
  26.  
  27. EG_TCP_CPORTS="21,25,80,443,43"
  28. 出口过滤
  29.  
  30. DLIST_PHP="1" #开启防止spam的IP
  31. DLIST_SPAMHAUS="1" 
  32. DLIST_DSHIELD="1"
  33. DLIST_RESERVED="1"
  34.  
  35. apf -s
  36. 启动APF防火墙
  37.  
  38. wget http://www.r-fx.ca/downloads/bfd-current.tar.gz
  39. 下载BFD
  40.  
  41. tar zxvf bfd-current.tar.gz 
  42. cd bfd-<version>/ && ./install.sh
  43. 解压并安装
  44.  
  45. vi /usr/local/bfd/conf.bfd
  46. 更改BFD配置文件
  47.  
  48. EMAIL_ALERTS="0"
  49. 改为EMAIL_ALERTS="1"
  50. 发出邮件提醒
  51.  
  52. EMAIL_ADDRESS="root"
  53. root改为自己的邮件地址
  54.  
  55. vi /usr/local/bfd/ignore.hosts
  56. 填入可信任的IP
  57.  
  58. bfd -s
  59. 运行bfd后,有状况将会发邮件提醒
  60.  
  61. wget http://www.inetbase.com/scripts/ddos/install.sh
  62. 下载DDoS deflate进行小规模的DDOS保护
  63.  
  64. bash install.sh
  65. 安装DDoS deflate
  66.  
  67. vi /usr/local/ddos/ddos.conf
  68. 更改配置文件
  69.  
  70. FREQ=1 #分钟
  71. NO_OF_CONNECTIONS=150 #连接大于等于150个将被屏蔽
  72. APF_BAN=1 #有装APF就用APF屏蔽,如果为0就直接调用iptables
  73. EMAIL_TO="root" # email给自己如果有状况的话
  74. BAN_PERIOD=600 #屏蔽多少秒

直接运行ddos可得到当前apache连接的数量
DDOS deflate网站

  1. wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
  2. 下载chkrootkit
  3.  
  4. tar zxvf chkrootkit.tar.gz
  5. 解开压缩包
  6.  
  7. cd chkrootkit-<version>/ && make sense
  8. 进入chkrootkit并编译
  9.  
  10. ./chkrootkit |grep INFECTED
  11. 如果有东西,那就不太妙了 :(
  12. ?>

这篇文章DirectAdmin论坛讨论帖都很详细

3 Comments

  1. “DEVEL_MODE=”x”
    x为0 每5分钟会关闭apf以防止误操作导致无法远程控制
    x为1 为正常工作模式”

    # !!! Do not leave set to (1) !!!
    # When set to enabled; 5 minute cronjob is set to stop the firewall. Set
    # this off (0) when firewall is determined to be operating as desired.
    DEVEL_MODE=”0″
    博主写反了,1 是开启5分钟暂停一次防火墙,0 是禁用这个功能进入正常模式。

  2. 我服务器上都没开FTP.SSH端口改过了. 同时连接也进行了限制. HOHO
    @久酷:怎么进行限制连接的,教一下 :)