作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
本小章内容就是Linux进阶部分的日常运维部分,掌握这些日常运维技巧或者方法在我们的日常运维过程中会带来很多方便。主要从以下几个部分来讲解:
Linux日常运维-主机名&hosts
Linux日常运维-history
Linux日常运维-SSHD(一)
Linux日常运维-SSHD(二)(本章节)
Linux日常运维-ENV(一)
Linux日常运维-ENV(二)
Linux日常运维-任务计划
上一节,我们讲了如何配置SSH免密登录服务器,这个在实际运维中,已经可以提升一定的安全性,但是22作为所有人都知道的ssh端口,它只要暴露在互联网,就会不停的面临暴力破解。我们最常用的做法就是修改端口,以及禁止root用户登录,使用一个普通账号登录,然后再使用sudo 或者su 方式来满足自己的运维需求。
修改SSH端口
vi /etc/ssh/sshd_config
#默认这个参数是注释的,需要取消注释,并更换其中的端口
#这里其实是可以配置多个端口,可以根据实际修改
Port 22
Port 9508
#保存以后,重启服务,这个地方也需要小心,避免配置错误,把自己关在外面
systemctl restart sshd
#检查端口监听,默认是监听在所有ip,和ipv6同时开放,可以根据需要进行调整。
[root@localhost ~]# netstat -lnp |grep sshd
tcp 0 0 0.0.0.0:9508 0.0.0.0:* LISTEN 1086/sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1086/sshd
tcp6 0 0 :::9508 :::* LISTEN 1086/sshd
tcp6 0 0 :::22 :::* LISTEN 1086/sshd
禁止root登录
vi /etc/ssh/sshd_config
#默认这个参数也是注释的,需要改成下面这样
PermitRootLogin no
#保存以后,重启服务,这个地方也需要小心,避免配置错误,把自己关在外面
#生产环境先配置一个可登录的普通账号
systemctl restart sshd
#普通用户登录成功
[root@localhost ~]# ssh user01@192.168.179.111
user01@192.168.179.111's password:
[user01@localhost ~]$
禁止密码登录,只允许密钥登录
vi /etc/ssh/sshd_config
PermitEmptyPasswords no
PasswordAuthentication no
#配置成下面这样
#保存以后,重启服务,这个地方也需要小心,避免配置错误,把自己关在外面
#生产环境需要先确认可以密钥登录
systemctl restart sshd
#没有输入密码的机会
[root@localhost ~]# ssh user01@192.168.179.111
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[root@localhost ~]# ssh root@192.168.179.111
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
总结
1.修改端口,禁止root登录,只允许使用密钥,在实际运维中,可以根据自己需要进行选择一种或者多种组合。
2.当然实际情况下sshd的能够支持的配置还有很多,比如限制ip,或者只允许特定的用户或者组登录。
3.还有一个经常修改的参数是 UseDNS ,把它修改成no 可以加速ssh登录行为(这个里面涉及到一个dns概念,反向解析)。
4.ssh在Linux服务器里面一般涉及到2个操作:一个是作为sshd的服务端,也可以是ssh作为连接其他人的客户端命令。
关注微信公众号《运维小路》获取更多内容。