ubantuserver初始化

捣鼓

ubantuserver安装后防火墙及其安全配置

ubantuserver安装及防火墙安全配置及相关

安装-

  • 默认到网络选择DHCP自动(Windows电脑组网测试)>选择安装磁盘>除efi外手动设置/根目录系统分区Lvm,swap交换空间大小,/mnt/data挂载磁盘>创建账户密码与服务器名称>勾选安装ssh服务>...>--END SSH HOST KEY KEYS-->账户登录
分区参考
MOUNT POINT    推荐大小    文件系统    说明
/boot/efi      512 MB     fat32      EFI 系统分区
/boot          1-2 GB     ext4       内核和启动文件
/              20-50 GB   ext4       系统文件
/var           10-20 GB   ext4       日志和可变数据
/home          剩余空间   ext4       用户数据
swap           2-8 GB     swap       交换空间(根据内存大小调整)
复制代码
  • sudo -i 切换root

如需单独设置root密码↓

  • sudo passwd root(设置root密码)
  • su(切换root)
  • su 用户名(切换用户)
  • sudo apt update(更新软件包索引)
  • sudo apt upgrade(更新软件包及升级软件源)
  • ip -a (显示IP地址)
  • 服务器连接windows DHCP自动分配的ip在Windows查看方法(cmd:arp -a)192.168.137.x
  • windows ssh 远程登录 cmd:ssh 用户名@ip地址
  • sudo poweroff 关机
  • sudo reboot 重启

防火墙设置

1.启用ssh

sudo ufw allow ssh
# 默认 22
# sudo ufw allow 22/tcp
复制代码

2.启用防火墙

sudo ufw enable
复制代码

y确认

3.查看防火墙状态

sudo ufw status
复制代码

增强SSH安全性 1

1.禁用root用户登录

#编辑ssh配置文件
sudo nano /etc/ssh/sshd_config
#将下行配置改为no
PermitRootLogin no
#写入保存退出
复制代码

2.更改SSH默认端口

#继续编辑ssh配置文件
sudo nano /etc/ssh/sshd_config
#将端口配置改为其他大于1024的值 如2222,先保留旧端口 新端口生效后删除
port 22
port 2222
#写入保存退出
#更改新端口后先跟新防火墙规则
sudo ufw allow 2222/tcp
#重启服务 生效修改
sudo systemctl restart sshd
复制代码

保持旧端口的ssh连接端口开启,确认新端口ssh成功连接后再关闭 成功连接后sudo ufw delete allow 22删除防火墙旧规则及ssh配置文件旧端口port 22

3.保持系统和软件包的最新状态

sudo apt update
sudo apt upgrade -y
复制代码

安全性 2 Fail2ban安装与配置

  • Fail2ban 是一款入侵防御软件框架,它通过扫描日志文件(如 SSH、Web 服务器日志等)并识别出重复的、失败的登录尝试,来自动封禁那些恶意 IP 地址。这能有效地抵御暴力破解(Brute-force)攻击。

1.安装

sudo apt update
sudo apt install fail2ban -y
复制代码

2.配置

Fail2ban 的默认配置文件是 /etc/fail2ban/jail.conf,不直接修改它软件更新时可能会覆盖更改>创建一个本地配置文件 /etc/fail2ban/jail.local 来覆盖默认设置

#创建本地配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
#编辑jail.local文件
sudo nano /etc/fail2ban/jail.local
复制代码

[DEFAULT]部分修改核心参数

参数参考值描述
bantime1hIP 地址被禁止的时长
findtime10mFail2ban 在此时间窗口内检查是否有恶意登录尝试
maxretry5在findtime期间内允许的最大失败尝试次数 超过此次数即会被封禁
ignoreip127.0.0.1/8忽略的ip地址列表 使用DHCP且ip不固定此项可以暂时保留默认

启用SSH保护 在[sshd]部分确保其设置为enabled = true,# 如果修改了SSH端口 (例如改成了2222),必须在这里指定新端口port = 2222 最后写入保存退出

3.启动并检查服务

重启Fail2ban服务以应用新配置 sudo systemctl restart fail2ban 检查 Fail2ban 的运行状态和 SSH 保护的状态

sudo systemctl status fail2ban
# 应该显示 Active: active (running)

# 检查 sshd 保护(jail)的状态
sudo fail2ban-client status sshd
#会显示当前被封禁的 IP 列表 (Ban list)
复制代码
  • ssh服务状态查看sudo systemctl status ssh
  • 防火墙服务状态sudo ufw status verbose
  • 启动ssh服务sudo systemctl start ssh
  • 设置ssh服务开机自启sudo systemctl enable ssh

安全性 3 SSH密钥对登录

1.在客户端电脑上生成ssh密钥对

Windows的Git Bash/PowerShell/WSL端口输入 ssh-keygen -t rsa -b 4096 系统会提示您输入以下信息:

  • Enter file in which to save the key: (/Users/youruser/.ssh/id_rsa): 直接按 回车 使用默认路径
  • Enter passphrase (empty for no passphrase): 输入一个强密码 这个密码会加密私钥 即使私钥被盗,没有这个密码,攻击者也无法使用它。
  • Enter same passphrase again: 重复输入密码

完成后默认目录下(通常是 ~/.ssh/)会生成两个文件:

  • 私钥: id_rsa
  • 公钥: id_rsa.pub (这是可以分享并上传到服务器的)

2.将公钥复制到ubantuserver服务器

继续在端口输入 ssh-copy-id 您的用户名@服务器分配到的ip地址 如果修改了端口2222则输入 ssh-copy-id -p 2222 您的用户名@服务器分配到的ip地址 yes确认 ...

安全性 4 禁用密码登录

1.编辑ssh配置文件

  • sudo nano /etc/ssh/sshd_config
  • 禁用密码登录只允许密钥登录 PasswordAuthentication no
  • 禁用root用户直接通过密码登录 PermitRootLogin no
  • 写入保存退出

2.重启ssh服务使配置生效

sudo systemctl restart ssh

3.相关问题-如22端口仍然可登录

  • 检查是否有配置文件被覆盖 在某些Ubuntu安装中ssh配置可能会在/etc/ssh/sshd_config.d/目录下被其他文件覆盖输入 ls /etc/ssh/sshd_config.d/
  • 如果此目录下有其他配置文件(例如 50-cloud-init.conf),请检查这些文件的内容 如果有文件明确设置了 PasswordAuthentication yes该文件的优先级可能会高于主配置文件
  • 解决方法是编辑覆盖文件,或将PasswordAuthentication no写入所有相关文件 编辑修改冲突配置sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf 然后重启ssh服务sudo systemctl restart ssh

时区设置与维护

1.时区

系统时钟、时区和 NTP(网络时间协议)同步管理命令查看 timedatectl 将时区设置在国内上海 sudo timedatectl set-timezone Asia/Shanghai 再次运行timedatectl查看是否生效

2.配置自动安全更新

为了确保系统能自动安装最新的安全补丁以防御已知漏洞需要安装和配置unattended-upgrades 安装自动更新包 sudo apt install unattended-upgrades -y 启用并配置自动更新使用以下命令开启自动更新的配置界面 sudo dpkg-reconfigure unattended-upgrades 系统会询问"Automatically download and install stable updates?"选择 Yes 这个服务通常会自动启动确保它处于开启状态 sudo systemctl enable unattended-upgrades.service sudo systemctl start unattended-upgrades.service

Fail2ban日志

日志文件在/var/log/fail2ban.log

1.实时查看

sudo tail -f /var/log/fail2ban.log 显示类似这样的记录:

  • 封禁记录 (Ban): ... fail2ban.actions: WARNING [sshd] Ban 1.2.3.4
  • 解封记录 (Unban): ... fail2ban.actions: WARNING [sshd] Unban 1.2.3.4

2.查看已封禁的 IP 列表

sudo fail2ban-client status sshd 输出示例:

Status for jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     50
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 2
   |- Total banned:     10
   `- Ban list:         1.2.3.4, 5.6.7.8
复制代码
#ubantu#liunx
头像

HaG_Cat

1分类数6文章数

该笔记已存活437 天 20 时 51 分 58 秒

QQQQ个人作品站个人作品站ArtStationArtStationBilibiliBilibili

哔哔

-

© 2025-2026 HaG_Cat‘Blog