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 配置 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
# 安装 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 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初始化与安全加固内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论