/etc/pam.d/login
auth required pam_succeed_if.so user != root quiet
# 禁止本地登陆
修改默认端口 (关键) cat /etc/ssh/sshd_config
Port 2222
ssh限制登录用户ip地址 /etc/ssh/sshd_config
Allowusers root@192.168.18.18
Allowusers newuers@192.168.1.0/24
#只允许192.168.18.18ip地址并且以root身份登录
#只允许192.168.1.0网段以newusers用户身份登录
#!/bin/bash
####---- 清空iptables策略 ----####
iptables -t nat -F #清空nat表
iptables -X
iptables -t nat -X
####---- INPUT链设置 ----####
iptables -P INPUT DROP #INPUT默认拒绝
iptables -A INPUT -i lo -j ACCEPT #允许本地数据包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80,443,1194,1723,10051,6022 -j ACCEPT
#开放http、https、zabbix-agent、V**(ssh通过V**或修改默认端口)
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
iptables -I INPUT -p icmp -j DROP
# ICMP ping协议
iptables -A INPUT -p tcp -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp -s 172.16.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/16 -j ACCEPT
# 信任内网网段
####---- 白名单ip ----####
iptables -A INPUT -p tcp -s 223.5.5.5 -j ACCEPT
# 信任白名单ip
iptables-save
service iptables save
最好在白名单/etc/hosts.allow
添加信任地址以防万一 ;例子:
sshd:192.168.10.1:allow
sshd:10.,172.16.,192.168.:allow
默认拒绝所有: /etc/hosts.deny
sshd:ALL
/etc/hosts.deny
# sshd:ALL
# 注释默认不限制 (无固定ip或V**拨入时)
/etc/hosts.deny *脚本 /root/SSH_Deny_Rule.sh
#!/bin/bash
grep Failed /var/log/secure |egrep -o '[0-9]{1,3}(\.[0-9]{1,3}){3}' |sort |uniq -c|sort -nr | awk '{if($1 > 8) print $2}' > /root/deny_ip
#ip尝试失败超过8次,记录到deny_ip文件里
for i in `cat /root/deny_ip`
do
echo "sshd:$i:deny" >> /etc/hosts.deny
rm /root/deny_ip -f
#清理临时文件
echo > /var/log/secure
#清空secure记录
echo 禁止ip数: $(grep sshd /etc/hosts.deny |wc -l) 更新点:$(date +%Y-%m-%d.%H:%M) >> /root/SSH_Deny.log
#输出日志
done
添加计划任务
grep 'SSH' /var/spool/cron/root &>/dev/null ||echo '*/5 * * * * sh /root/SSH_Deny_Rule.sh' > /var/spool/cron/root
日志记录 cat /root/SSH_Deny.log
(外网vps主机没有修改默认端口每天都有爆破)
禁止ip数: 92 更新点:2017-04-03.19:00 禁止ip数: 93 更新点:2017-04-03.20:57
信任登录主机 如在家访问服务器,当服务器只开放远程ssh端口时想进一步获得其他端口如3306(mysql)的访问权限,必须登录成功才行。 vi /root/.bashrc
iptables -D INPUT -p tcp -s $(last |head -1|awk '{print $3}') -j ACCEPT
iptables -A INPUT -p tcp -s $(last |head -1|awk '{print $3}') -j ACCEPT
#针对家用动态ip地址,每次登录自动将其ip加入iptables白名单