Linux 初始化配置
Linux 初始化配置
*** 环境:Debian13(trixie) ***
*** 默认准备: ssh 命令登录,已进行软件依赖更新。 ***
Linux 安全防护
一台服务器装机后应先进行基本的安全配置。
基本分析
登录服务器的四要素: 【IP 地址】+【端口】+【用户名】+【密码】
其中公网 IP 地址全网公开,对于随机访问没有操作空间。如果怕被别有用心的人针对,也只能尽可能不要外泄你和网站的联系,只要你公开域名就一定会得到IP。
基于上述分析,我们能做的只有对【端口】、【用户名】及【密码】这三要素进行加强,来降低被攻破的风险:
- 【端口】:将 SSH 远程登录端口修改为【非 22 端口】
- 【用户名】:建立【非 root】的新用户、并禁用 root 用户 SSH 远程登录
- 【密码】:SSH 启用 RSA 密钥验证登录、同时禁用密码验证登录
实际操作
❗记得按顺序来,别把自己锁在门外了。
修改登录端口
1 | nano /etc/ssh/sshd_config |
重启sshd时已经打开的ssh不会被关闭🥳, 所以不妨再开一个链接试试看。
❗部分系统需要添加防火墙规则(如 debian13, ubuntu) 。
1 sudo ufw allow <port>/tcp
禁用 root
1 | adduser <user_name> |
把用户加入 sudo 名单。
1 | visudo |
在 User Privilege Specification 下加入用户。
- 需要密码: ALL=(ALL:ALL) ALL
- 不输入密码: ALL=(ALL) NOPASSWD: ALL
修改文件 [/etc/ssh/sshd_config] 中的项 PermitRootLogin 为 no 。(建议切换为上一步创建的用户完成操作)
sudo su切换为 root 用户。
更改为密钥登录并禁用密码登录
笔者在高中摸鱼时就接触到了非对称加密算法,故在此不赘述。
-
生成密钥对
1
2cd ~/.ssh
ssh-keygen -t Ed25519笔者使用自己的一般密钥对文件(general_ed25519 general_ed25519.pub).
-
使用密钥
详情参见[[_posts/日拱一卒/开发随笔/SSH|SSH]]
-
禁用密码登录
再次修改 ssh 配置
/etc/ssh/sshd_config。PubkeyAuthentication改为yesPasswordAuthentication改为no
参考文献
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Reglucis 的博客!
