每次申请新的 VPS 都需要设置的东西, 记录以下, 方便粘贴复制, 配置方法直接 echo 到文件, 比较针对第一次配置, 二次配置还是老老实实去打开配置文件修改吧

创建新用户

root用户权限过于恐怖, 就算自己用都有可能出事, 所以还是新建一个普通用户吧, 需要root权限的时候使用sudo提权就好了

useradd jason -m
# 设置密码
passwd jason
useradd(选项)(参数)
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s:指定用户登入后所使用的shell;
-u:指定用户id。

添加sudo权限

# 给 sudoers 文件添加写权限
chmod u+w /etc/sudoers
## 以下二选一
# sudo 需要输入密码
echo "xxx ALL=(ALL) ALL" >> /etc/sudoers
# sudo 不需要输入密码
echo "xxx ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# 除去 sudoers 文件的写权限
chmod u-w /etc/sudoers

SSH 设置

# SSH 默认22端口改成一个不易想到的
echo "Port 2213" >> /etc/ssh/sshd_config
# 禁止使用 root 用户登录
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
# 不允许使用密码登录
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
# 使用密钥登录
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config

设置完使用service sshd restart重启服务

配置密钥的方法:

生成密钥:

ssh-keygen -t rsa -b 2048 -C username@email.com

将会生成两个文件id_rsa为私钥, 保存在本地机器上, id_rsa.pub为公钥, 上传至远程服务器任意目录, 执行

cat id_rsa.pub >> authorized_keys

如果提示文件或路径不存在就没有自己新建, 然后载执行上面的命令

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

禁止root本地登录

修改/etc/pam.d/login文件增加下面一行

auth required pam_succeed_if.so user != root quiet

防 Ping

临时禁止/允许服务器被 ping

# 禁止
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# 允许
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

永久禁止/允许服务器被 ping

# 禁止
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
# 允许
echo "net.ipv4.icmp_echo_ignore_all=0" >> /etc/sysctl.conf

执行sysctl -p使配置生效

防火墙

小兮有过一次为了方便访问数据库进行测试, 就打开了 MySQL 的远程访问, 结果测试完成后忘记关掉了, 悲剧就发生了, 我被黑客勒索了, 数据库里只有黑客留下的几句勒索的话和一个比特币账户, 可以说非常心痛了, 所以防火墙要关闭所有不使用的端口, 如果要使用, 一些容易被猜测端口也要改掉, 比我小兮的 MySQL 依然是默认的3306, 密码root, 可以说蠢到家了

最后修改:2021 年 01 月 29 日
如果觉得我的文章对你有用,请随意赞赏