Ubuntu新服务器安装流程整理

Ubuntu新服务器安装流程整理

  • 1、修改计算机名
  • 2、设置时区与时间
  • 3、修改DNS
  • 4、更新软件包列表,升级软件包
  • 5、清理不再需要的软件包
  • 6、清理缓存
  • 7、更换内核
  • 8、设置SSH空闲超时时间
  • 9、设置SSH密码最小间隔天数
  • 10、配置GRUB引导加载程序文件权限
  • 11、处理具有SUID和SGID权限的文件以防止潜在的权限提升风险
  • 12、限制核心转储(core dumps)、禁Ping、开启TCP-SYNcookie保护
  • 13、会话会话超时设置
  • 14、rm命令配置别名
  • 15、禁用wheel组外的用户
  • 16、安装和配置安全工具
  • 17、 Ubuntu 上设置自动更新系统
  • 18、修改 security 和 shadow权限
  • 19、增加虚拟交换空间(swap)
    • 1、检查现有的交换空间
    • 2、创建交换文件
    • 3、设置交换文件权限
    • 4、将文件设置为交换空间
    • 5、启用交换空间
    • 6、验证交换空间
    • 7、使交换文件在系统重启后自动启用
    • 8、调整交换空间的使用优先级(可选)
    • 9、重新启动并验证

  • Ubuntu新服务器安装流程整理小白参考文,从拿到服务器安全设置到安装面板一个比较简单的流程,后面会持续更新。

1、修改计算机名

# 将文件中的旧主机名替换为新主机名(这里可以跳过)
sudo vi /etc/hostname
# 保持和hostname名称一致
sudo vi /etc/hosts
# 重启服务器应用更改
sudo reboot

2、设置时区与时间

#检查当前时区
timedatectl
#设置时区为北京时间
sudo timedatectl set-timezone Asia/Shanghai
#同步时间
sudo timedatectl set-ntp true

3、修改DNS

sudo vi /etc/resolv.conf
# 选择以下其中一个DNS即可,主要针对的是海外服务器。
# Cloudflare DNS
nameserver 1.1.1.1
nameserver 1.0.0.1
# Google DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

4、更新软件包列表,升级软件包

sudo apt-get update && sudo apt-get upgrade -y
  • 升级已安装的软件包,安装新版本,允许安装新依赖包,但不删除任何现有包。
sudo apt-get upgrade --with-new-pkgs

5、清理不再需要的软件包

sudo apt-get autoremove -y

6、清理缓存

sudo apt-get clean

7、更换内核

# 检查当前内核版本
uname -r
# 重新安装内核,在Ubuntu的LTS版本(如Ubuntu 20.04 LTS或Ubuntu 22.04 LTS)中使用。
sudo apt-get install linux-image-5.15.0-72-generic -y
# 更新GRUB配置
sudo update-grub
# 重启服务器
sudo reboot

8、设置SSH空闲超时时间

# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 设置空闲超时时间,按照以下进行修改
ClientAliveInterval 600
ClientAliveCountMax 0
# 设置登录超时时间
LoginGraceTime 60
# 确保SSH远程管理使用加密协议(SSH协议版本2)
# 大概在# Authentication:下方即可
Protocol 2
# 重启SSH服务
sudo systemctl restart sshd
# 验证配置ClientAlive相关设置。
sudo sshd -T | grep clientalive
# 确认SSH服务正在使用协议版本2
ssh -Q protocol-version

9、设置SSH密码最小间隔天数

# 编辑/etc/login.defs文件
sudo vi /etc/login.defs
# 设置 PASS_MIN_DAYS,在文件中找到或添加以下一行
PASS_MIN_DAYS 7

10、配置GRUB引导加载程序文件权限

# 将`grub.cfg`文件的权限设置为`600`
sudo chmod 600 /boot/grub/grub.cfg
# 确保`grub.cfg`文件的所有者是`root`
sudo chown root:root /boot/grub/grub.cfg
# 验证配置
ls -l /boot/grub/grub.cfg
# 输出结果应类似于
# -rw------- 1 root root 12345 Jul  5 14:52 /boot/grub/grub.cfg

11、处理具有SUID和SGID权限的文件以防止潜在的权限提升风险

# 移除`SUID`和`SGID`权限
# 使用`chmod`命令来移除这些文件的SUID和SGID位:
sudo chmod u-s /usr/bin/chage && sudo chmod u-s /usr/bin/gpasswd && sudo chmod u-s /usr/bin/chfn && sudo chmod u-s /usr/bin/chsh && sudo chmod u-s /usr/bin/newgrp && sudo chmod u-s /bin/mount && sudo chmod u-s /bin/umount
# 如果这些文件也具有SGID位,可以使用以下命令移除:
sudo chmod g-s /usr/bin/chage && sudo chmod g-s /usr/bin/gpasswd && sudo chmod g-s /usr/bin/chfn && sudo chmod g-s /usr/bin/chsh && sudo chmod g-s /usr/bin/newgrp && sudo chmod g-s /bin/mount && sudo chmod g-s /bin/umount
# 检查这些文件的权限,以确保SUID和SGID位已被移除:
ls -l /usr/bin/chage /usr/bin/gpasswd /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /bin/mount /bin/umount

12、限制核心转储(core dumps)、禁Ping、开启TCP-SYNcookie保护

# 编辑 /etc/sysctl.conf
sudo vi /etc/sysctl.conf
# 在末尾添加以下行
fs.suid_dumpable = 0
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.tcp_syncookies = 1
# 运行以下命令以立即应用 /etc/sysctl.conf 文件中的设置
sudo sysctl -p

13、会话会话超时设置

# 编辑/etc/profile文件,设置命令行超时。
sudo vi /etc/profile
# 在文件末尾添加以下行,以设置超时时间为600秒(10分钟)
TMOUT=600
export TMOUT
# 执行以下命令,立即使配置生效。
source /etc/profile

14、rm命令配置别名

  • ls命令列出更详细的文件信息以及降低rm命令误删文件的风险
    编辑 ~/.bashrc 文件
vi ~/.bashrc
# 在文件末尾添加或修改以下行
alias ls='ls -alh'
alias rm='rm -i'
# 保存并退出编辑器
source ~/.bashrc

15、禁用wheel组外的用户

  • 编辑/etc/pam.d/su文件
sudo vi /etc/pam.d/su
# 删除以下的注释
auth required pam_wheel.so

16、安装和配置安全工具

sudo apt install chkrootkit rkhunter -y
sudo chkrootkit
sudo rkhunter --check
# 中断后重新运行检查,非中断或重新检查这步直接跳过。
sudo rkhunter --checkall
  • 遇到 Press to continue 按下回车即可,可能需要按多次。

17、 Ubuntu 上设置自动更新系统

  • 安装unattended-upgrades如果已经安装了跳过
# 检查是否安装了unattended-upgrades
dpkg -l | grep unattended-upgrades
# 如果没有输出,则表示未安装。您可以通过以下命令进行安装
sudo apt install unattended-upgrades
  • 配置自动更新
# 编辑50unattended-upgrades
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
# 确保以下行没有被注释(去掉前面的 //)
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    // 其他选项...
};
  • 设置自动更新频率
# 编辑20auto-upgrades文件
sudo vi /etc/apt/apt.conf.d/20auto-upgrades
# 确保文件内容如下
APT::Periodic::Update-Package-Lists "1";  // 每天更新包列表
APT::Periodic::Unattended-Upgrade "1";     // 每天自动升级
  • 完后重启系统以应用更改,或等待所有的操作完成后在重启
sudo reboot

18、修改 security 和 shadow权限

# 检查/etc/security 和 /etc/shadow 默认权限
ls -l /etc/security
ls -l /etc/shadow
# 将 /etc/security 修改为 rw------
sudo chmod 600 /etc/security
# 将 /etc/shadow 修改为 rw------
sudo chmod 600 /etc/shadow

19、增加虚拟交换空间(swap)

1、检查现有的交换空间

# 检查当前的交换空间使用情况
sudo swapon --show
free -h

2、创建交换文件

# 使用 fallocate 命令创建2GB交换文件:
sudo fallocate -l 2G /swapfile
# 如果 fallocate 不可用,可以使用 dd 命令
sudo dd if=/dev/zero of=/swapfile bs=1G count=2

3、设置交换文件权限

# 安全起见,设置交换文件的权限
sudo chmod 600 /swapfile

4、将文件设置为交换空间

# 使用 mkswap 命令将文件格式化为交换空间
sudo mkswap /swapfile

5、启用交换空间

# 启用刚创建的交换文件
sudo swapon /swapfile

6、验证交换空间

# 再次检查交换空间是否已成功添加
sudo swapon --show
free -h

7、使交换文件在系统重启后自动启用

# 编辑 /etc/fstab 文件
sudo vi /etc/fstab
# 添加以下行
/swapfile none swap sw 0 0

8、调整交换空间的使用优先级(可选)

# 调整交换空间的优先级,使用 swappiness 参数(范围 0-100),控制系统使用交换空间的倾向。默认值通常是 60。可以通过以下命令临时调整。
# 要永久更改
sudo vi /etc/sysctl.conf
# 添加或修改以下行
vm.swappiness=10

9、重新启动并验证

# 重新启动系统后,确保交换文件仍然有效
sudo swapon --show
free -h

你可能感兴趣的:(Linux,服务器,ubuntu,linux,1024程序员节)