前言

目前最喜欢的Linux发行版,本文实则也是一篇Debian12安装初始化笔记


安装时

以’debian-12.11.0-amd64-netinst.iso’为例,仅勾选’SSH server’和’standard system utilities’


登入root

更新源&更新软件

1
apt update && apt upgrade -y

配置自动安全更新

1
2
apt install unattended-upgrades apt-listchanges -y
dpkg-reconfigure -plow unattended-upgrades

安装1Panel

1
2
3
4
5
6
# 安装curl
apt install curl -y

# 此命令以1Panel官网为准
# 若安装时乱码,选English,无影响
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

赋予用户sudo权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 检查用户
id <username>

# 若无则创建
adduser <username>

# 再次检查
id <username>

# 安装
apt install sudo -y

# 将用户添加到'sudo'
usermod -aG sudo <username>

# 检查用户是否已在'sudo'组中
groups <username>
# (推荐)直接检查用户的sudo权限
sudo -l -U <username>

为新用户配置SSH密钥认证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 切换到新用户
su - <username>

# 生成 ED25519 密钥对 (推荐,比 RSA 更安全且密钥更短)
# -t 指定类型,-f 指定文件名,-N '' 设置空密码(按需设置密码)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ''

# 确保.ssh目录存在并设置严格权限
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 将公钥追加到 authorized_keys 文件中
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys

# 设置 authorized_keys 文件的严格权限
chmod 600 ~/.ssh/authorized_keys

# (重要!)将私钥 (~/.ssh/id_ed25519) 安全地复制到你的本地电脑上
# 例如使用 scp、sftp 或复制粘贴(确保终端安全)
# 在本地电脑上保护好这个私钥文件!

# 删除服务器上的私钥(可选,增加安全性,但需确保已备份)
# rm ~/.ssh/id_ed25519

# 退出用户,返回之前的 shell
exit

进入1Panel

SSH设置(按需设置)

1
2
3
4
5
6
# 连接端口:设置为高位端口
# 监听地址:设置为仅IPv4
# root用户:设置为禁止SSH登录
# 密码认证:关闭
# 密钥认证:开启
# 反向解析:开启

Fail2ban与防火墙(按需设置)

1
2
# Fail2ban:修改监听SSH端口
# ufw:禁ping、放行端口

登入新用户

检查Swap

1
2
# 若NAME显示≠/swapfile且需修改,建议新增Swap而非修改
sudo swapon --show

删除和创建Swap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 若需修改Swap大小,则需先禁用并删除(若NAME显示≠/swapfile...)
sudo swapoff /swapfile
sudo rm /swapfile

# 创建新的Swap文件
sudo fallocate -l <size> /swapfile

# 设置严格权限
sudo chmod 600 /swapfile

# 将文件格式化为 Swap 空间
sudo mkswap /swapfile

# 启用 Swap 文件
sudo swapon /swapfile

# 验证
sudo swapon --show

# 【关键】设置开机自动挂载
sudo nano /etc/fstab
# 在文件的末尾添加
# (Ctrl+O 保存, Enter 确认, Ctrl+X 退出)
/swapfile none swap sw 0 0

检查和修改Swappiness

1
2
3
4
5
6
7
8
9
10
11
12
13
# 检查当前的 Swappiness 值
cat /proc/sys/vm/swappiness

# 临时修改(重启后失效)
sudo sysctl vm.swappiness=10

# 永久修改(推荐)
sudo nano /etc/sysctl.conf
# 在文件末尾添加或修改
# (Ctrl+O 保存, Enter 确认, Ctrl+X 退出)
vm.swappiness=10
# 执行以使配置立即生效
sudo sysctl -p

修改Swap优先级(可选)


额外的安全实践(可选)

安装 Rootkit 检查器

目的:定期扫描系统,检查是否存在已知的 rootkit 或恶意软件。


安装和配置 AIDE (Advanced Intrusion Detection Environment)

目的:文件完整性监控。AIDE 创建系统文件的数据库快照,定期比较以检测未经授权的更改。


检查并移除不必要的服务/端口

目的:减少潜在的攻击入口。


配置内核参数强化 (Kernel Hardening via sysctl)

目的:调整内核参数以抵御某些类型的网络攻击。


定期审查日志

目的:发现异常活动、登录尝试、错误等。
位置:主要日志位于 /var/log 目录下,如 auth.log (认证日志), syslog, fail2ban.log, ufw.log, unattended-upgrades/ 等。
工具:可以使用 journalctl (systemd 日志), grep, less, tail 等命令查看。安装 logwatch 可以每天生成日志摘要邮件。

1
2
3
sudo apt install logwatch -y
# 配置 /etc/logwatch/conf/logwatch.conf (如设置接收邮箱 MailTo =)
# 手动运行测试: sudo logwatch

定期备份

目的:数据丢失或系统损坏时能够恢复。