Welcome to my Blog.欢迎来到我的blog

开机后 [置顶]

评论(0)
 

DirectAdmin是一套不错的虚拟主机管理工具,但它也常受到密码穷举机的关注。安装DA并放入网站不久后,总是在DA后台系统消息那看到FTP或帐号被暴力穷举(破解)。且DA本身没带相关的屏蔽或封锁的功能,只有记录错误次数的程序。除了使用DirectAdmin的商业插件外,我们还可以通过免费的fail2ban作为防火墙使用。


一、先按《反帐号密码穷举工具:Fail2Ban》安装成功Fail2Ban。


二、开始定制规则


(1)将jail.conf规则文件备份一次


cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak

(2)编辑jail.conf


vi /etc/fail2ban/jail.conf

1)SSH规则


[ssh-iptables]   enabled  = true #开启 filter   = sshd  action   = iptables[name=SSH, port=ssh, protocol=tcp]  #port为您SSH的端口号 logpath  = /var/log/secure #日志(一般情况无需修改) maxretry = 3 #尝试次数

以上操作,SSH在全局时间(参考:《反帐号密码穷举工具:Fail2Ban》)内被穷举3次密码则激活封锁。


2) ProFTPD 的配置


DirectAdmin(DA)的正则匹配规则和默认不同,以下是文件自带的默认规则(若没有请直接添加以下代码),先按黄色部分开启。


[ProFTPD-iptables]   enabled  = true filter   = proftpd action   = iptables[name=ProFTPD, port=ftp, protocol=tcp] logpath = /var/log/proftpd/auth.log maxretry = 3

da-fail2ban.jpg

操作完毕后请先保存。


3)修改正则匹配规则


vi /etc/fail2ban/filter.d/proftpd.conf

SSH执行以上命令,修改正则匹配规则。


4)替换规则


先选定failregex后的四行代码,然后替换。

da-fail2ban2.jpg

替换为:


failregex = (.*) (.*) <HOST> (.*) (.*) 530

da-fail2ban3.jpg


三、保存并重启Fail2ban


service fail2ban restart

Centos Linux服务器,安装DA控制面板,感觉还不错,Iptable脚本

vim iptables.sh

chmod 777 iptables.sh

#!/bin/sh
#海外服务器代购网(
www.hwhost.net

# 设置默认防火墙策略
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t mangle
iptables -Z
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

# 允许端口进出
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

# 允许端口进出
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 21 -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 25 -j ACCEPT
iptables -A INPUT -p tcp –dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 53 -j ACCEPT
iptables -A INPUT -p udp –dport 53 -j ACCEPT
iptables -A OUTPUT -p udp –sport 53 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 110 -j ACCEPT
iptables -A INPUT -p tcp –dport 2222 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 2222 -j ACCEPT
iptables -A INPUT -p tcp –dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 3306 -j ACCEPT
iptables -A INPUT -p tcp –dport 35000:35999 -j ACCEPT      /*proftpd被动连接需要的端口*/
iptables -A OUTPUT -p tcp –sport 35000:35999 -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT            /*允许本机访问本机*/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# 打开 syncookie (轻量级预防 DOS 攻击)
sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null

# 设置默认 TCP 连接痴呆时长为 3800 秒(此选项可以大大降低连接数)
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null

# 设置支持最大连接树为 30W(这个根据内存和 iptables 版本来,每个 connection 需要 300 多个字节)
sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null

# 防止SYN攻击 轻量
iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -A syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT

# 对于不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片
iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT

# icmp包通过的控制,防止icmp黑客攻击
iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT

# 丢弃坏的TCP包
iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j LOG –log-prefix “New not syn:”
iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP

iptables-save > /etc/sysconfig/iptables

service iptables restart

./iptables.sh

              执行脚本后,系统自动重启IPtable,设置即可生效。

就在这几天网络浏览中看到一些Linux Directadmin 服务器安全设置以及对apachemysql优化设置。

在此我们转发下,供大家参考设置。

服务器安全优化

vim /etc/fstab
修改/tmp为值为rw,nosuid,noexec
添加/home的值nosuid
修改tmpfs的值为rw,noexec,nosuid
mv /var/tmp /var/tmp_bak   #移动/var/tmp目录
ln -s /tmp /var/tmp

php.ini的disable_function设置执行:

cd /usr/local/directadmin/custombuild
./build update
./build secure_php
./build update
./build all d

mysql安全设置

vim /etc/my.conf
修改为bind-address = 127.0.0.1   #指定mysql监听在127.0.0.1
添加set-variable = max_connections=32000     #MySQL服务器允许的最大连接数16384

apache优化设置

禁止apache调用perl
chgrp apache /usr/bin/perl
chmod 705 /usr/bin/perl

优化apache

#!/bin/bash
echo -e “KeepAlive On\nMaxKeepAliveRequests 120\nKeepAliveTimeout 15\n” >> /etc/httpd/conf/httpd.conf
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 8069 > /proc/sys/net/core/netdev_max_backlog
/sbin/sysctl -p > /dev/null 2>&1 && /sbin/service httpd restart

就此完毕,已经测试,效果不错!~值得尝试!~~

注:红色执行命令,蓝色填写内容

详细
分页: 1/45 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]