menu Chancel's Blog
rss_feed lightbulb_outline

Linux VPS安全设置(CentOS)

warning 这篇文章距离上次更新于786天前,文中部分信息可能已失效,请自行甄别无效内容。

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,修改PermitRootLoginPasswordAuthentication 的值为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以下端口查看是否有忘了关闭的端口
阅读: 201
分类: 操作系统
创建时间: 2018-11-14 17:59:04
更新时间: 2019-04-28 15:22:45
博文目录

[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageList.data.items.length]])

[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[messageItem.m_environ.browser]] [[messageItem.m_environ.os]] [[messageItem.m_environ.device]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[subMessage.m_environ.browser]] [[subMessage.m_environ.os]] [[subMessage.m_environ.device]]