前段时间环宇跟我说他的服务器被攻击了,往外发大量的垃圾邮件,由此我总结一下服务器安全措施
一、改SSH端口
vi /etc/ssh/sshd_config
找到 #Port 22 按i进入编辑模式
删除#号,把22改成你想要的端口比如Port 12345
按esc退出编辑模式,输入:wq!保存并推出,然后执行
service sshd restart
重启ssh服务来生效。这样以后本次会话还能继续,不过接下来连接就得用12345端口了。
二、禁止root登陆
添加一个用户,用户名是wangchenyu密码是mima
useradd wangchenyu -p mima
禁用root登陆
vi /etc/ssh/sshd_config
找到PermitRootLogin yes
改成PermitRootLogin no
如果找不到,就在最后添加一行PermitRootLogin no
保存并退出
然后重启一下ssh服务来生效:
service sshd restart
三、禁止密码登陆
首先创建一个密钥,在服务器上执行
ssh-keygen -t rsa
它会询问你保存位置和是否要加密(passphrase),默认密码是空,私钥保存在~/.ssh/id_rsa
公钥保存在~/.ssh/id_rsa.pub
,如图:所以我们进入保存的目录
cd ~/.ssh
用下面的命令把公钥的内容写到一个叫做authorized_keys
的新文件里
cat id_rsa.pub >> authorized_keys
然后把id_rsa
的内容保存到本地,可以用vi id_rsa
来显示id_rsa
的内容也可以用cat id_rsa
命令显示id_rsa
的内容:
cat id_rsa
打开puttygen(文章底部下载),选择import,导入id_rsa,然后save private key file(ppk):
之后用putty连接,在SSH->Auth中选择这个ppk文件作为密钥就能连接服务器了。
有关公钥私钥验证
1.id_rsa
是私钥,保存在客户端(Linux和Mac中存到~/.ssh
)
2.id_rsa.ppk
是“putty格式”的私钥,putty和winscp用它验证
3.id_rsa.pub
是公钥,重命名为authorized_keys
存在服务器端的~/.ssh
4.我们重命名为authorized_keys
是因为/etc/ssh/sshd_config
中默认设置的是验证这个文件
PS(2017-2-26更新):在CentOS 6下有一个BUG,导致有可能会因为权限的问题sshd无法读取到authorized_keys这个文件。这时候执行下面两条命令可以修复:
chmod 644 ~/.ssh
restorecon -R -v ~/.ssh
Comments | 1 条评论
益趣 博主
路过,支持[/强]