最近云主机被远程登录,变成别人的肉鸡了。做了些改变,希望能安全一点。
-
判断是否被攻击
登录后使用lastb命令,如果有很多尝试,则可能被攻击了。
- 修改SSHD
修改/etc/ssh/sshd_config文件,默认port 22,将port前面的“#”注释去掉,修改成希望使用的端口号。esc,保存退出。 - 开启端口并重启sshd服务
我使用的是CentOS7.6系统并使用firewalld,添加端口命令:
firewall-cmd --zone=public --add-port= 端口号 /tcp --permanent
重启防火墙:
systemctl stop firewalld
systemctl start firewalld
重启sshd服务:
systemctl restart sshd - 添加安全组规则,开启新增的端口号
自定义tcp ,添加端口与源ip。保存。
添加入站、出站规则 - 重启云主机
更安全的使用密钥对登录
- ssh-keygen -t dsa -f ~/.ssh/JD/ JD为密钥名称可以自定义
- Enter passphrase (empty for no passphrase):/ 输入口令,用于给私钥添加密码,使用私钥登录时输入,也可以不加
Enter same passphrase again: - cd ~/.ssh
ls –l
cat JD.pub >>authorized_keys/ 将公钥内容输出到authorized_keys文件中(这个文件名称在sshd_config中指定,保存一致即可)
chmod 400 authorized_keys/ 将文件属性设置为只读 - 保存好密钥对。将原有的删除
sz JD/ 下载私钥到默认下载目录
sz JD.pub/ 下载公钥到默认下载目录
rm –f ~/.ssh/JD.pub/ 删除原来的公钥文件
rm –f ~/.ssh/JD/ 删除原来的私钥文件 - 修改sshd_config 文件
cd /etc/ssh
cp sshd_config sshd_configback /备份ssh配置文件
vi sshd_config /编辑ssh配置文件
PubkeyAuthentication yes /开启密钥认证
AuthorizedKeysfile .ssh/authorized_keys (PublicKey文件路径,默认为root登录)
PasswordAuthentication no/ 关闭密码认证(可选)
保存,退出 - 重启服务
service sshd restart(centos 会重定向为 systemctl restart sshd.service) -
putty登录
使用puttygen转换为ppk密码:选择保存的私钥,并保存。
-
登录时选择私钥文件
- 保存设置,并登录。