you are better than you think

vps安全配置(一)

· by thur · Read in about 1 min · (170 Words)
vps 安全配置 初始化

背景故事

本周一(2016.05.23)上午刘同学的服务器上的数据被清空,对方勒索3个比特比,目前比特比价格在2900+,3个比特币近9000大洋。 网络上没有绝对安全,能做的就是尽量提高黑客暴力猜解的成本。这里总结下关于ssh安全方面的设置。

一 配置说明

  •  修改ssh默认端口

修改端口后,对方依旧可以靠扫描端口来尝试,不过服务器一般还会有http之类的端口,这里只是增加了扫描的成本。

  • 禁止root远程登录

root用户是每个系统都存在的用户,如果不禁止root远程登录,土贼在暴力猜解时,只需要猜解密码而不需要猜解登录的用户名。

  •  禁止使用密码登录

我们应该选择使用密钥认证方式来登录。密钥生成选择RSA或 ecdsa算法,我自己选择的是2048bit RSA算法。

  •  禁止普通用户执行 su 命令

这条设置是如果普通用户权限被拿到 也无法执行更高权限的命令,而且便于与其他人合作时授予别人普通帐号权限。

  • 设置一个sudo用户

禁止了root,禁止了su ,那么需要一个root权限的管理账户。

二 配置执行

说完配置原则,我们来看下具体执行。

首先使用root 用户的登录服务器,整个设置过程中都要保持root用户登录状态,验证完成后才能退出。

首先使用root 用户的登录服务器,整个设置过程中都要保持root用户登录状态,验证完成后才能退出。

首先使用root 用户的登录服务器,整个设置过程中都要保持root用户登录状态,验证完成后才能退出。

1 账户设置

1.1 添加用户

vps对于我而言主要是跑web程序,设置一个名为www的用户,设置一个管理员账户wbook。

useradd www
useradd wbook

#授权是基于wbook账户,也就是登录时我们使用wbook账户,然后切换到www账户运行程序。

passwd wbook

1.2 设置wbook为管理账户

vi /etc/sudoers

找到这两句,再之后添加一句wbook ALL=(ALL) ALL,最终效果如下。

##Allow root to run any commands anywhere
root ALL=(ALL) ALL
wbook ALL=(ALL) ALL

验证一下 sudo -iH -u root

输入wbook密码切换到 root了没?

2 SSH设置

2.1 修改ssh的配置文件

vi /etc/ssh/sshd_config. 貌似AWS EC2 只能使用22作为ssh端口,这个就不要改了,改了之后 sshd启动不了。

#修改端口为2002
Port 2002
#关闭root远程登录
PermitRootLogin no
#禁用密码登录
PasswordAuthentication no
#使用RSA 认证方式登录
RSAAuthentication yes
PubkeyAuthentication yes

保存配置,重启ssh :

centos 7 systemctl restart sshd.service

centos 7以下版本 service sshd restart

2.2 配置完成ssh,接下来再生成ssh key

在我本地电脑(本地电脑是centos6.7)上执行

ssh-keygen -t rsa -b 2048 -f ~/.ssh/do.pem -C "do.pem"

这时在.ssh目录下生成两个文件,一个是do.pem 一个是do.pem.pub。

将do.pem.pub内容复制到wbook账户 的.ssh/authorized_keys

可以scp ~/.ssh/do.pem.pu www@x.x.x.x:/home/wbook/.ssh/authorized_keys 也可以直接vim 复制粘贴。

改变本地do.pem的执行权限为400,否则会提示 文件权限too open

chmod 400 ~/.ssh/do.pem

2.3 禁止普通用户 执行su 命令

vi /etc/pam.d/su, 将第六行前面的#去掉

auth required pam_wheel.so use_uid

执行:

echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

删除wheel组成员,禁止所有用户 执行su

groupmems -g wheel -l #查看是否有用户可以执行su,如果有使用下面的命令删除该用户
groupmems -g wheel -d $USER #删除用户

至此,我们的设置就完成了。

说明:如果有其他需要合作的用户需要使用www程序,那么临时新增加一个用户,并将用户加入wheel组,按照2.2 配置登录权限。这样这位临时用户就可以通过su – www了。合作完成后 删除这个用户就可以了。

Comments