作者:Chancel, 更新:2019 Apr 28, 字数:2255, 已阅:708
VPS是暴露在公网中的主机,如果按照默认设置,很容易被一些软件扫描以及攻击,此时需要做一点简单的防御措施(可以杜绝大部分自动扫描登录的攻击):更改SSH端口、禁止密码登录、使用证书登录等
先开放防火墙相关端口,防止等会无法进入就比较麻烦了,开放之后记得保存防火墙设置
firewall-cmd --zone=public --add-port=6666/tcp --permanen
firewall-cmd --reload
修改配置文件:/etc/sshd_config
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
Port 6666
#ListenAddress 0.0.0.0
#ListenAddress ::
修改完成以后尝试重启sshd服务
systemctl restart sshd
此时保险起见另外起一个ssh会话尝试连接刚刚更改的端口,如果失败记得检查防火墙设置
添加用户chancel,并设置密码
adduser chancel
passwd chancel
授权用户Chancel允许使用sudo来暂时提权,sudo时根据需求选择是否需要输入密码
chmod u+w /etc/sudoers
vim /etc/sudoers
# 授权给用户/用户组sudo权限,但需要输入密码
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
# 授权给用户/用户组sudo权限,无需输入密码
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
chmod u-w /etc/sudoers
使用本地linux系统生成密钥,或使用其他第三方工具生成密钥
ssh-keygen -t rsa -p 'passwd'
查看生成完成的公钥
cat id_rsa.pub
将公钥拷贝到目标服务器的用户目录下的.ssh目录
scp .ssh/id_rsa.pub user@ip:/home/chancel/chancel.pub
登录到用户目录并将公钥追加到authorized_keys中
cat chancel.pub >> .ssh/authorized_keys
远程允许root用户登录存在许多风险,最好是使用普通账户进行操作
禁止root用户登录/密码登录
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
UseDNS no
AddressFamily inet
PermitRootLogin no
SyslogFacility AUTHPRIV
PasswordAuthentication no
以上步骤均完成后,你的服务器应该有如下特征
如果想进一步加固还有如下可优化