今天查看了一下服务器的ssh日志(/var/log/secure),发现....
有人在枚举我的root密码!于是....博主必须要防止这种情况的发生!
创建新用户
打开终端,用root连接到服务器,依次输入如下的命令
- group add test
- useradd abc
- passwd abc
- usermod -a -G test abc
在上面的命令中,我们创建了一个test的用户组和一个叫abc的用户,并设置了密码,将abc用户添加到test组里面
接着输入:
- visudo
visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。
- root ALL=(ALL:ALL) ALL
在这一行的下面,再添加一行。
- abc ALL=(ALL:ALL) ALL
打开新的终端,用刚才的账户登录看看是否成功
禁止root登录
在配置文件(/etc/ssh/sshd_config )中,将SSH的默认端口22改掉(可以改成从1025到65536之间的任意一个整数)
- vim /etc/ssh/sshd_config
- Port 1234
禁止root登录
- PermitRootLogin no
禁止空密码
- PermitEmptyPasswords no
添加允许登录的用户名(在最后加上)
- AllowUsers abc
重启ssh服务
- sudo service sshd restart
来试试吧开一个新的终端,root现在是登录不了的了
公私钥认证
如果没有公钥和私钥的话,就生成一个(路径默认,不设置密码,当然也可以设置)
- ssh-keygen -t rsa -b 4096
上面的语句生成两个文件,一个id_rsa.pub一个id_rsa,前者是公钥后者是私钥
用刚才的abc登录服务器,上传公钥(id_rsa.pub)到服务器到当前用户根目录下(/home/abc/),
然后
- cd /home/abc/ (或者cd ~)
新建文件夹
- mkdir .ssh
添加公钥到.ssh/authorized_keys中
- cat id_rsa.pub >> .ssh/authorized_keys
设置权限
- sudo chmod 0700 ~/.ssh/
- sudo chmod 0600 ~/.ssh/authorized_keys
保险起见,删除公钥
- rm ~/id_rsa.pub
接着修改ssh配置文件,开启如下内容
- RSAAuthentication yes
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
然后禁止password方式登录
- PasswordAuthentication no
重起ssh服务,试试效果吧可以免密码直接登录啦(原来的终端先别关掉,不然失败了就完蛋啦)
- ssh address -p 1234
小结
前面的步骤中,我们更改了ssh端口,并且禁止了root登录。
接着提出了禁止密码登录,采用更安全的RSA验证方式
使用RSA来验证,如果对方有 实力暴力破解也不会来破解你的- -还不如去找银行呢
还有木有刁民→_→ 哈哈哈