Linux VPS安全设置(CentOS)
warning 这篇文章距离上次更新于678天前,文中部分信息可能已失效,请自行甄别无效内容。
VPS是暴露在公网中的主机,如果按照默认设置,很容易被一些软件扫描以及攻击,此时需要做一点简单的防御措施(可以杜绝大部分自动扫描登录的攻击):更改SSH端口、禁止密码登录、使用证书登录等
安全设置步骤
1.更改SSH端口
先开放防火墙相关端口,防止等会无法进入就比较麻烦了,开放之后记得保存防火墙设置
firewall-cmd --zone=public --add-port=6666/tcp --permanen firewall-cmd --reload
修改配置文件:/etc/sshd_config
- 主要是修改中的port字段,去掉#注释,再更改为你需要的端口
# 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会话尝试连接刚刚更改的端口,如果失败记得检查防火墙设置
2.创建一个普通用户并授权
添加用户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
3.使用证书登录
使用本地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
4.不允许root登录/密码登录
远程允许root用户登录存在许多风险,最好是使用普通账户进行操作
禁止root用户登录/密码登录
- 打开文件/etc/sshd_config,修改PermitRootLogin和*PasswordAuthentication *的值为NO
# 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
设置效果
以上步骤均完成后,你的服务器应该有如下特征
- 只能通过特定端口访问你的服务器
- 只能使用特定用户进行登录,Root用户无法登录
- 特定用户可短时使用sudo获取提权
- 只能使用证书进行登录,密码登录会被拒绝
如果想进一步加固还有如下可优化
- 更改Mariadb默认端口3306,不允许外界访问Mariadb,只允许SSH通道远程访问Mariadb
- 关闭22端口,避免被尝试登录
- 将常用端口全部更改至10000以上端口并使用nmap扫描10000以下端口查看是否有忘了关闭的端口
阅读
- 125
分类
- 操作系统
创建于
2018-11-14 17:59:04
阅读 - 125
分类 - 操作系统
创建于 2018-11-14 17:59:04
博文目录
[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]
account_circle
email
web_asset
textsms