方法一:

在/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 xxx@192.168.1.2 
注: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多是恶意***的。

两个方法要结合起来用才能起来显著的效果,这是本人在维护高并发和高流量的投票网站中实践得出的经验。

*****************************************