处理IP恶意的访问

原文链接
技术咸鱼

下文的操作均在ubuntu上进行.

背景

最近刚把腾讯云服务器搭建好,就发现访问时间异常的长,觉得不应该呀,意识到可能是服务器遭受到攻击.

于是登录服务器打开/var/log/auth.log下的访问日志,果然有大量的非法ip访问

  • May 25 13:57:49 localhost sshd[27673]: Invalid user test9 from 128.199.30.172 port 51386
  • May 25 13:57:49 localhost sshd[27673]: pam_unix(sshd:auth): check pass; user unknown
  • May 25 13:57:49 localhost sshd[27673]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=128.199.30.172
  • May 25 13:57:51 localhost sshd[27673]: Failed password for invalid user test9 from 128.199.30.172 port 51386 ssh2
  • May 25 13:57:51 localhost sshd[27673]: Received disconnect from 128.199.30.172 port 51386:11: Bye Bye [preauth]
  • May 25 13:57:51 localhost sshd[27673]: Disconnected from invalid user test9 128.199.30.172 port 51386 [preauth]
  • May 25 13:58:01 localhost CRON[27700]: pam_unix(cron:session): session opened for user root by (uid=0)
  • May 25 13:58:01 localhost CRON[27700]: pam_unix(cron:session): session closed for user root
  • May 25 13:58:06 localhost sshd[27651]: Connection closed by 20.194.166.160 port 54602 [preauth]
  • May 25 13:58:24 localhost sshd[27787]: Invalid user ec2-user from 117.79.132.166 port 38400

这是才想到服务器自从搭建后,系统的配置都是默认的包括SSH(安全外壳协议),也难怪遭受到了攻击.

于是想到了对SSH配置

1.修改SSH配置

(1).禁止root账号远程登录

root账号是系统默认的账号,且拥有最高的权限,攻击者在攻击的时候,也会首先选择root进行攻击,
才看日志也发现user root的最多

首先我们进入到/etc/ssh目录面,打开sshd_config文件,将PermitRootLogin设置为no
关于ubuntu账户的创建可以查看

(2).修改端口

服务器默认的的端口Port是22,建议不定时修改一下.

:端口最大只能修改到65536,注意不要超过

修改SSH配置后,重启SSHsudo service sshd restart

2.配置IP访问黑白名单

进入/etc文件下有hosts.allowhosts.deny两个文件,分别是填写允许和禁止IP的

(1).允许某一个IP

允许shh远程协议的:hosts.allow中填写sshd:192.168.0.1

允许telnet远程协议的:hosts.allow中填写in.telnetd:192.168.0.1

允许所有远程协议的:hosts.allow中填写ALL:192.168.0.1

(2).允许某一个IP段

允许shh远程协议的:hosts.allow中填写sshd:192.168.0

允许telnet远程协议的:hosts.allow中填写in.telnetd:192.168.0

允许所有远程协议的:hosts.allow中填写ALL:192.168.0

(3).禁止所有IP

允许shh远程协议的:hosts.deny中填写sshd:ALL

允许telnet远程协议的:hosts.deny中填写in.telnetd:ALL

允许所有远程协议的:hosts.deny中填写ALL:ALL

(4).禁止某一个ip

允许shh远程协议的:hosts.deny中填写sshd:192.168.0.1

允许telnet远程协议的:hosts.deny中填写in.telnetd:192.168.0.1

允许所有远程协议的:hosts.deny中填写ALL:192.168.0.1

(4).禁止某一个ip段

允许shh远程协议的:hosts.deny中填写sshd:192.168.0

允许telnet远程协议的:hosts.deny中填写in.telnetd:192.168.0

允许所有远程协议的:hosts.deny中填写ALL:192.168.0

另外还可以使用

sshd : ALL EXCEPT 111.111.111.0/255.255.255.0 222.222.222.222 333.333.333.0/255.255.255.0

就是允许222.222.222.222固定IP和111.111.111.0和333.333.333.0 IP段访问

重启 service sshd restartservice xinetd restart

:hosts.allow和hosts.deny冲突时候,以hosts.allow为准

3.netfilter/iptables封禁IP

`sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP `封禁多次恶意访问的IP

netfilter/iptables具体操作参考:
博客
博客

原文链接
技术咸鱼

上一篇:Consul使用【ACL使用】


下一篇:ACL配置内部IP隔离