今天清早登录服务器发现很多暴力狗(使用ssh端口破解登录密码),真不知道这些人有啥意思,破解了无非是把我的服务器当作肉鸡再去攻击其他服务器,目的无非就是证明你有能力去破解,要么就是搞到比较有实力的公司勒索点棺材本罢了~,我就不信邪,搞不定你!给大家分享两个可以搞定的大招:
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。
使用:
修改/etc/hosts.allow文件
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd:221.224.0.*:allow
sshd:192.168.159.*:allow
以上写法表示允许221和192两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的。
当然如果管理员集中在一个IP那么这样写是比较省事的
all:218.24.129.110//他表示接受110这个ip的所有请求!
/etc/hosts.deny文件,此文件是拒绝服务列表,文件内容如下:
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd:all:deny
注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。
所以:当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准。
注意修改完后:
service xinetd restart centOS 7: # systemctl restart xinetd.service
才能让刚才的更改生效。如果不可以重新启动则需要安装如下两个服务
# yum -y install openssh
# yum -y install openssh-server
总结:通过这种方法可以控制部分非授权访问,但不是一劳永逸的方法!我们在看服务日志的时候或许会看到很多扫描记录,不是还是直接针对root用户的,这时控制你的访问列表就非常有作用了!
Putty 密钥认证
首先打开PuTTYgen
点击Generate(此处应该在操作界面不停的晃动鼠标这样才能让创建速度更快)
然后创建密码,并保存私钥到本地硬盘
然后再次回到linux系统,登录后一次输入如下:
#mkdir /root/.ssh 创建一个.ssh的隐藏文件夹
#chmod 700 /root/.ssh 给.ssh的文件夹授权
#vi /root/.ssh/authorized_keys 复制公钥到此文件
把如下框内的公钥复制
粘贴到此文件内,注意此处一定要先按字母 i 键 然后右击即可!
然后关闭当前窗口(Ctrl+d)即可
再次登录先load一下账号,然后进入SSH
继续点击Auth 浏览刚刚咱们保存的公钥
然后再次返回到Session 点击保存即可!
输入用户名下面咱们就输入刚刚咱们输入的密码即可,成功进入!
Xshell密钥认证
1.打开Xshell界面,工具→新建用户密钥生成向导
2、密钥类型选择RSA,密钥长度选择2048位,单击下一步继续
3、很快生成公钥对,单击下一步继续
4、密钥名称可以自定义,起一个自己理解的名称,或者保持默认,输入密钥加密的密码,用于远程登录
5、将生成的公钥复制一份,或保存为文件,完成密钥生成。
6、然后再次使用 #vi /root/.ssh/authorized_keys 并把Xshell的公钥复制到另起一行,以#号开头的在linux当中是标注的意思!
7、再次打开一个新的Xshell窗口,点击属性!
8、如下图操作
9、输入密码,点击左下角的记住密码,然后每次进入即可不需要输入任何密码!(注意:这样带来的风险就是日后如果真需要密码了,长期不输入密码容易忘记就不好弄了,所以建议大家下载一个keepass去帮助你保存所有的密码)
10、然后最后一步,我们配置的防火墙只是暂时的关闭,重启电脑后就会失效,所以我需要永久的关闭它
#vi /etc/selinux/config #修改selinux的配置文件
更改“SELINUX=enforcing”为 SELINUX=disabled 保存退出。
#iptables -F 清除规则
基于密钥认证的配置 # vi /etc/ssh/sshd_config PasswordAuthentication no //禁止使用基于口令认证的方式登陆 PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆 # /etc/init.d/sshd reload
最后一招:更改ssh端口!
今晚再次登录服务器查看一下(# lastb) 用来查看非授权强制登录IP!