拿到一个新服务器(VPS),如何安全的使用它? Linux
服务器的安全是需要从多个方面下手的,包括服务器的基础安全配置,防火墙规则,所用软件本身的安全配置,今天我来分享一下我的关于 Linux
服务器账号安全基本配置的一些知识。
替换root账户
避免直接使用 root
账户,新建其他用户来替代 root
账户管理服务器。拿到服务器后,先使用 root
账户和密码登录。
新建非root用户并授予sudo权限:
# 新建用户和同名组并创建home目录
useradd -m -U myuser
cat /etc/group
cat /etc/passwd
# 设置密码
passwd myuser
# 授予用户sudo权限
chmod -v u+w /etc/sudoers
vim /etc/sudoers
# 已有行
# root ALL=(ALL) ALL
# 添加行
# myuser ALL=(ALL) ALL
chmod -v u-w /etc/sudoers
为新用户配置SSH登录
mkdir /home/myuser/.ssh
touch /home/myuser/.ssh/authorized_keys
chown -R myuser:myuser /home/myuser/.ssh
# 添加登录主机公钥到authorized_keys
vim /home/myuser/.ssh/authorized_keys
这样就为系统准备好了一个可以替换root用户拥有 sudo
权限管理账户了。
更换SSH默认的22端口
# 更改SSH端口
vim /etc/ssh/sshd_config
# Port 22 注释打开,下面增加 Port 19822
service sshd restart
# 防火墙开启19822端口
# centos7 firewall
firewall-cmd --zone=public --add-port=19822/tcp --permanent
firewall-cmd --reload
# centos6 iptables
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 19822 -j ACCEPT
service iptables restart
这里要注意,修改22端口时候,不要直接换了,添加新端口后先留着22端口,防止你重启服务后,新端口防火墙配置没生效,就无法登录服务器了,等你确认新端口可以登录了再删除 Port 22
,重启一下sshd服务就好了。
关闭密码登录
避免简单的 root
密码泄露或者被破解后密码最直接登录 root
用户,这个是很有必要的。
不允许密码登录
# 修改配置
vim /etc/ssh/sshd_config
# PasswordAuthentication no 不允许使用密码登录
service sshd restart
限制root用户
同样是上面的配置文件,将 PermitRootLogin
修改为下面其中一项就行。
# PermitRootLogin no 不允许root登录
# PermitRootLogin without-password 不允许root使用密码登录
service sshd restart
到这里,就可以使用配置好的 SSH
新端口登录,并使新建的非 root
用户 myuser
来管理你的服务器了。