方法一:
在/etc/hosts.allow中添加允许ssh登陆的ip或者网段
sshd:192.168.1.2:allow 或者
sshd:192.168.1.0/24:allow
在/etc/hosts.deny添加不允许ssh登陆的IP
sshd:ALL #ALL表示除了上面允许的,其他的ip 都拒绝登陆ssh
方法二:
使用iptables。
iptables -A INPUT -p tcp -s 192.168.1.2 --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
方法三:
修改ssh配置文件
vi /etc/ssh/sshd_config
添加一行:
allowusers [email protected]
注:xxx为你用来登入服务器的用户名。
*********************************************************
隐藏和伪装端口banner http://kangyang.blog.51cto.com/471772/580853
**********************************************************
net session /delete /y
************************************************
Linux服务器被攻击的几个表象:
1.从外部ping延迟高
2.从内部ping网关延迟高
3.内存和CPU占用居高不下
4.通过netstat查看到的状态为SYN_RECV的请求多,且刷新慢
抵挡攻击的方法:
1.设置防火墙规则
1.
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
2.
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
3.
iptables -A FORWARD -p icmp --icmp-
type
echo
-request -m limit --limit 1/s -j ACCEPT
2.封ip和ip段
1.
iptables -I INPUT -s 49.116.15.23 -j DROP
#封单个ip
2.
iptables -I INPUT -s 49.116.15.23/32 -j DROP
#和上一个效果一样,封单个IP
3.
iptables -I INPUT -s 49.116.15.0/24 -j DROP
#封ip段,指定前三段
4.
iptables -I INPUT -s 49.116.0.0/16 -j DROP
#封ip段,只指定前两段
5.
iptables -I INPUT -s 49.0.0.0/8 -j DROP
#封ip段,只指定第一段
在这里有个问题:如何知道该封哪些个ip呢?
答案是 netstat 命令。
通过 netstat查看当前请求,频繁出现且状态为SYN_RECV的ip多是恶意攻击的。
两个方法要结合起来用才能起来显著的效果,这是本人在维护高并发和高流量的投票网站中实践得出的经验。
*****************************************