前言

接触 Linux 也有挺长时间了,上初中那就看别人搭建免流,我也试着买服务器搭了一个,即使当初不懂 Linux 甚至不会编程,但用这各位大佬的一脚脚本,一顿 CV 操作,黑底白字屏幕哐哐滚动着看不懂的内容…..

目前对 Linux 也算不上懂,就用而已,很长一段时间,我拿到服务器的第一个操作是。。。 Root 用户起手,开放所有端口,安装宝塔一把梭(当然现在是 1panel 了)。。。。。

最近突然对手动运维感一点兴趣,规范了一下自己的操作流,也加深了一些知识在脑中的印象

这篇文章是关于拿到 Linux 服务器后在使用前推荐的一些配置。

本文操作以 Debain 为例。

Linux服务器初始配置全流程详解

一、创建普通用户与权限分配

1.1 创建普通用户

adduser your_username

执行后会交互式提示设置密码和用户信息(可回车跳过非必填项)。推荐使用全小写字母+数字组合用户名(如devops),避免使用特殊字符。

1.2 授予sudo权限

usermod -aG sudo your_username

Debian系统默认需要手动启用sudo组权限:

apt install sudo -y && visudo

在打开的文件末尾添加:

your_username ALL=(ALL:ALL) NOPASSWD: ALL

NOPASSWD参数可免除每次sudo输入密码,生产环境建议删除该参数增强安全性。

二、APT源加速配置

2.1 备份原始源

cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.2 替换清华源

sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

2.3 更新软件列表

apt update && apt upgrade -y

国内服务器建议同步执行apt install -y apt-transport-https ca-certificates安装https支持

三、SSH安全加固

3.1 修改默认端口

sudo nano /etc/ssh/sshd_config

找到#Port 22改为:

Port 58222  # 建议使用10000-65535之间的端口

3.2 禁用root登录

PermitRootLogin no

3.3 启用密钥认证

PubkeyAuthentication yes
PasswordAuthentication no # 禁用密码登录

3.4 重启SSH服务

systemctl restart sshd

注意:需先配置密钥登录再禁用密码登录,否则可能被锁!

四、防火墙配置

4.1 安装UFW

apt install ufw -y

4.2 放行必要端口

ufw allow 58222/tcp  # SSH端口
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS

4.3 启用防火墙

ufw enable

4.4 查看状态

ufw status numbered

五、SSH密钥配置

5.1 本地生成密钥对

ssh-keygen -t ed25519 -C "[email protected]"

生成的文件保存在~/.ssh/目录:

  • id_ed25519(私钥)
  • id_ed25519.pub(公钥)

5.2 上传公钥到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 58222 your_username@server_ip

5.3 验证登录

ssh -p 58222 your_username@server_ip

六、系统时间同步

6.1 安装chrony

sudo apt install chrony -y

6.2 配置时区

sudo timedatectl set-timezone Asia/Shanghai

6.3 查看状态

timedatectl
chronyc tracking

七、安全增强措施

7.1 安装fail2ban

sudo apt install fail2ban -y

7.2 配置SSH防护

创建自定义配置文件:

sudo nano /etc/fail2ban/jail.d/sshd.local

添加内容:

[sshd]
enabled = true
port = 58222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

7.3 启动服务

systemctl restart fail2ban

八、系统资源监控

8.1 安装基础工具

sudo apt install -y htop ncdu tmux tree

8.2 配置监控面板

# 内存监控
sudo apt install -y glances
# 磁盘监控
sudo apt install -y smartmontools

8.3 日志查看技巧

# 实时查看SSH登录日志
tail -f /var/log/auth.log | grep sshd

九、进阶安全配置

9.1 内核参数调优

sudo nano /etc/sysctl.conf

添加:

# 防御SYN洪水攻击
net.ipv4.tcp_syncookies = 1
# 禁用ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
# 启用恶意ICMP错误消息保护
net.ipv4.icmp_ignore_bogus_error_responses = 1

生效配置:

sysctl -p

9.2 文件系统加固

# 关键目录权限设置
sudo chmod 700 /home/your_username
sudo chmod 600 ~/.ssh/*

十、灾难恢复准备

10.1 创建系统快照

# 查看可用磁盘
lsblk
# 创建LVM快照(需LVM支持)
lvcreate -L 10G -s -n snap_root /dev/vg01/lv_root

10.2 配置自动备份

安装borgbackup:

sudo apt install borgbackup -y

创建备份仓库:

borg init --encryption=repokey /backup

十一、常用维护命令

11.1 系统状态检查

# 查看启动项
systemctl list-unit-files --type=service
# 检查磁盘空间
df -Th
# 查看内存使用
free -h

11.2 进程管理

# 查找占用CPU的进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
# 杀死僵尸进程
ps -A -ostat,ppid | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

十二、推荐开发环境

12.1 安装Docker

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker your_username

12.2 配置Portainer

docker run -d -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce:latest

结语

通过以上配置,我们完成了从基础用户权限管理到系统安全加固的全流程设置。建议在完成所有配置后执行以下检查:

  1. 测试所有网络端口的连通性
  2. 验证备份恢复流程
  3. 进行压力测试观察系统表现
  4. 设置定期安全审计(可使用Lynis等工具)
# 安装系统审计工具
sudo apt install lynis -y
# 执行安全检查
sudo lynis audit system

记得定期查看/var/log/security日志文件,保持系统更新。通过apt list --upgradable可查看待更新软件包。良好的初始化配置能让服务器在后期的运维中事半功倍,希望这篇指南能帮助您打下坚实的基础。