服务器 > 服务器 > Linux

Linux服务器初始化与安全加固指南

2人参与 2026-09-18 Linux

拿到一台全新的 linux 服务器后,直接部署应用是不安全的。本文整理了一套标准化的初始化流程,覆盖用户管理、ssh 加固、防火墙、fail2ban、自动更新等关键环节。

一、初始登录

# 使用 root 登录
ssh root@your-server-ip

# 立即更新系统
apt update && apt upgrade -y
# 或
yum update -y

# 查看系统信息
uname -a
cat /etc/os-release
free -h
df -h

二、创建普通用户

# 创建部署用户
adduser deploy
# 按提示设置密码和其他信息

# 授予 sudo 权限
usermod -ag sudo deploy
# centos: usermod -ag wheel deploy

# 验证
su - deploy
sudo whoami
# 输出: root

三、ssh 安全加固

# 编辑 ssh 配置
sudo vim /etc/ssh/sshd_config
# 修改以下配置
port 2222                           # 修改默认端口(22 → 自定义)
permitrootlogin no                  # 禁止 root 登录
passwordauthentication no           # 禁止密码登录(使用密钥)
pubkeyauthentication yes            # 启用密钥认证
allowusers deploy                   # 只允许指定用户登录
maxauthtries 3                      # 最大认证尝试次数
clientaliveinterval 300             # 客户端超时(秒)
clientalivecountmax 2               # 超时重试次数
# 复制本地公钥到服务器
ssh-copy-id -p 2222 deploy@your-server-ip

# 重启 ssh
sudo systemctl restart sshd

# ⚠️ 重启前务必在另一个终端验证能登录!
ssh -p 2222 deploy@your-server-ip

四、配置防火墙

# 安装 ufw(ubuntu)
sudo apt install -y ufw

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 开放 ssh(使用修改后的端口)
sudo ufw allow 2222/tcp comment 'ssh'

# 开放 web 服务
sudo ufw allow 80/tcp comment 'http'
sudo ufw allow 443/tcp comment 'https'

# 其他服务按需开放
sudo ufw allow 8080/tcp comment 'api'

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose
# centos 使用 firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

五、安装 fail2ban

# 安装
sudo apt install -y fail2ban

# 复制配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# /etc/fail2ban/jail.local
[default]
bantime = 3600                # 封禁时间(秒)
findtime = 600                # 检测窗口(秒)
maxretry = 5                  # 最大重试次数

[sshd]
enabled = true
port = 2222                   # 改为你的 ssh 端口
logpath = %(sshd_log)s
maxretry = 3
bantime = 86400               # ssh 暴力破解封禁 1 天

[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
# 启动
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

# 查看状态
sudo fail2ban-client status
sudo fail2ban-client status sshd

六、自动安全更新

# ubuntu
sudo apt install -y unattended-upgrades

# 配置自动更新
sudo dpkg-reconfigure --priority=low unattended-upgrades
# 选择 yes

# 查看配置
sudo cat /etc/apt/apt.conf.d/20auto-upgrades
# centos
sudo yum install -y yum-cron
sudo systemctl start yum-cron
sudo systemctl enable yum-cron

七、安装常用工具

# 监控
sudo apt install -y htop iotop net-tools sysstat

# 网络
sudo apt install -y curl wget netcat

# 编辑器
sudo apt install -y vim git

# docker(如需要)
curl -fssl https://get.docker.com | sh
sudo usermod -ag docker deploy

八、swap 配置

# 检查是否有 swap
swapon --show

# 创建 2gb swap
sudo fallocate -l 2g /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 配置 swap 使用策略
# /etc/sysctl.conf
vm.swappiness=10

九、日志与审计

# 查看登录日志
sudo last
sudo lastb          # 失败的登录尝试

# 查看系统日志
sudo journalctl -xe
sudo journalctl -u sshd -n 50

# 查看认证日志
sudo tail -f /var/log/auth.log

十、一键初始化脚本

#!/bin/bash
# server-init.sh — 一键初始化脚本
set -e

ssh_port=${1:-2222}
deploy_user=${2:-deploy}

echo "🚀 开始服务器初始化..."

# 1. 更新系统
apt update && apt upgrade -y

# 2. 创建用户
adduser --gecos "" $deploy_user
usermod -ag sudo $deploy_user

# 3. ssh 加固
sed -i "s/#port 22/port $ssh_port/" /etc/ssh/sshd_config
sed -i "s/permitrootlogin yes/permitrootlogin no/" /etc/ssh/sshd_config
sed -i "s/#passwordauthentication yes/passwordauthentication no/" /etc/ssh/sshd_config
systemctl restart sshd

# 4. 防火墙
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow $ssh_port/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enable

# 5. fail2ban
apt install -y fail2ban
systemctl enable --now fail2ban

# 6. 常用工具
apt install -y htop curl wget git vim unattended-upgrades

# 7. swap
fallocate -l 2g /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

echo "✅ 初始化完成!"
echo "请使用新端口登录:ssh -p $ssh_port $deploy_user@<服务器ip>"

十一、总结

## 安全加固清单

□ 创建普通用户,禁止 root 登录
□ 修改 ssh 端口(22 → 自定义)
□ 仅允许密钥登录
□ 配置防火墙(ufw / firewalld)
□ 安装 fail2ban 防暴力破解
□ 启用自动安全更新
□ 配置 swap
□ 安装监控工具
□ 定期查看日志

到此这篇关于linux服务器初始化与安全加固指南的文章就介绍到这了,更多相关linux初始化与安全加固内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

Linux服务器性能排查常用命令大全:CPU内存磁盘网络一次看懂

09-18

把服务器当成DNS服务器使用的操作指南

09-18

服务器IP是否被占用或存在IP冲突的检查方法

09-17

从入门到精通详解Linux中printf命令用法的完全指南

09-17

Linux和Win11大PK谁更快? 吵了几十年的系统速度之争

09-16

nginx配置location和proxy_pass时斜杠怎么加?实例详解常见坑

09-15

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论