服务器初始化配置
自从入坑服务器之后, 陆陆续续买了不少小鸡. 由于暴露在公网上, 因此一些关于创建用户和安全设置的也是需要的. 这里记录一下我刚开一台🐤的时候是怎么配置的. 一般我用Debian/Ubuntu, 这里用Ubuntu示例, 其他系统个别设置可能会不同, 但是大差不差. 里面很多内容是参考阮一峰老师的Linux服务器的初步配置流程.
新建用户
由于root用户权限下一些误操作容易导致严重后果, 不建议日常用root操作VPS. 最好是创建个用户然后平时通过这个用户使用VPS.
首先用ssh登陆root用户, 如果root密码是官方默认给你的, 建议先修改root的密码. 密码最好复杂点, 毕竟暴露在公网上.
# 生成一个复杂的密码
openssl rand -base64 16
# 修改密码
passwd然后在里面创建自己的用户和目录并赋予权限.
# 新建用户组
addgroup admin
# 创建用户和用户的目录, 这里以usrname为例, 改成自己想要的用户名就好
useradd -d /home/usrname -s /bin/bash -m usrname
# 设置该用户的密码
passwd usrname
# 将新用户添加到用户组
usermod -a -G admin usrname接下来为用户设定权限. 修改权限需要修改/etc/sudoers文件, 这个文件的权限一般是440. 需要先修改文件权限才能编辑.
# 修改文件权限
chmod 777 /etc/sudoers
# 编辑sudoers文件
vim /etc/sudoers然后编辑文件, 在文件里找到root ALL=(ALL:ALL) ALL, 在下面加上自己的用户名并设置权限. 这样设置是sudo的时候需要密码, 防止有时候手滑误操作造成不可避免的损失.
root ALL=(ALL:ALL) ALL
usrname ALL=(ALL:ALL) ALL如果想无密码使用sudo, 也可以在%admin和%sudo下面设置NOPASSWD, 如下.
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
# 在这下面设置
usrname ALL=(ALL) NOPASSWD:ALL编辑结束后文件权限改回原来样子.
chmod 440 /etc/sudoers最后退出root, 再用新用户的身份登录.
配置SSH服务
先弄个免密登陆.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]特别的, 如果之前这个IP已经登陆过然后机子重装了怎么的 (比如系统玩崩了然后重装), 要先删除本机对IP的记录才能用ssh登陆.
ssh-keygen -R 123.456.789配置免密登陆后登陆小鸡就不用输密码了. 接下来配置ssh.
# ssh登陆
ssh [email protected]
# 备份配置文件
sudo cp /etc/ssh/sshd_config ~
# 编辑配置文件
sudo vim /etc/ssh/sshd_config在里面, 建议修改以下条目. 名字前有#号的话删除, 否则条目不会生效.
| Name | Value |
|---|---|
| Port 12345 | 修改默认登陆端口名到12345 |
| PermitRootLogin no | 不允许root用户登陆 |
| PermitEmptyPasswords no | 不允许空密码登陆 |
| PasswordAuthentication no | 不使用密码授权登录, 只允许免密登陆 |
| RSAAuthentication yes | 使用RSA算法进行安全验证 |
| PubkeyAuthentication yes | 允许公钥认证 |
| UseDNS no | 禁用DNS反向解析, 用以提速 |
| SyslogFacility AUTHPRIV | 记录用户登陆信息 |
| MaxAuthTries 6 | 最多认证尝试次数, 防止暴力破解密码 |
| Protocol 2 | ssh协议使用新版的 |
上面加粗的两条需要注意一下. 第一个是Port, 改成自己想要的端口不一定要12345. 然后PasswordAuthentication设置成no后不能用密码登录只能免密登陆. 因此如果设置为no则企图用密码登录的请求都会返回Permission denided (publickey).的错误. 如果想用密码登录就设置成yes.
Update: 最好添加上PubkeyAcceptedKeyTypes=+ssh-rsa, 以支持RSA公私钥免密登陆. 可能是因为OpenSSH library新版本的原因, 在一些比较新的系统上如Ubuntu 22.04上我免密登陆失败. 添加这条命令后问题解决.
然后改变文件权限.
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/重启ssh
sudo service ssh restart配置locale
推荐都设置成en_US.UTF-8. 在~/.profile中添加
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8然后
sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
sudo dpkg-reconfigure locales更新软件并重启
配置完后更新一下软件然后重启.
# 更新
sudo apt update
sudo apt upgrade -y
# 重启
sudo reboot配置防火墙
Ubuntu系统的防火墙命令是ufw, 建议开启. 只开启需要的端口, 不需要的端口拒绝访问, 这样更安全.
一般都是默认安装了的, 如果没有安装用apt安装.
# 安装ufw
sudo apt install ufw然后开启防火墙.
# 开启ufw
sudo ufw enable开启允许的端口, 一般会开启80, 443用以访问搭建的服务, 然后开启登陆的端口比如上面设置的的12345用以ssh登陆, 其他端口用得到的时候再开.
# 开启80, 443, 12345端口
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 12345设置防火墙默认拒绝
sudo ufw default deny如果想关闭端口, 只需要detele就好.
# 关闭80端口
sudo ufw delete allow 12345查看开放了哪些端口.
sudo ufw status一些日常应用安装 (自用)
sudo apt install build-essential vim neofetch lolcat curl git vnstat nload
配图与文字相辅相成,直观易懂。
做了几十年的项目 我总结了最好的一个盘(纯干货)
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com