戏里戏外

Rocky Linux 服务器初始化

2024-11-13#CentOS

1. 登录服务器

首先需要使用 root 账号和密码(或密钥)登录服务器:

ssh root@SERVER_IP_ADDRESS

2. 基础配置

基础配置包括设置主机名、配置终端颜色、更新 dnf 源、安装必要工具、设置时区和时间同步。

2.1 设置主机名

设置主机名,例如 curder

sudo hostnamectl set-hostname curder
TIP

注销并重新登入系统后在命令行提示来观察新的主机名。

2.2 配置终端颜色

echo "# 终端配色
export PS1='\n\[\e[37;1m[\]\[\e[31;1m\]\u\[\e[39;1m\]@\[\e[33;1m\]\H \[\e[34;1m\]\w\[\e[37;1m\]]\n\[\e[32;1m\]\\$ \[\e[0m\]'" >> /etc/bashrc

source /etc/bashrc
点击查看配置终端颜色预览

2.3 更新 dnf 源(国内服务器)

TIP

镜像源使用阿里云镜像源,如果服务器在国外,可以跳过此步骤。

# 备份原始文件
sudo mv /etc/yum.repos.d/Rocky-BaseOS.repo /etc/yum.repos.d/Rocky-BaseOS.repo.backup
sudo mv /etc/yum.repos.d/Rocky-AppStream.repo /etc/yum.repos.d/Rocky-AppStream.repo.backup
sudo mv /etc/yum.repos.d/Rocky-Extras.repo /etc/yum.repos.d/Rocky-Extras.repo.backup

# 下载阿里云镜像源文件
sudo curl -o /etc/yum.repos.d/Rocky-BaseOS.repo http://mirrors.aliyun.com/repo/rocky-9.repo

# 清除并重建缓存
sudo dnf clean all
sudo dnf makecache

2.4 安装必要工具

使用 dnf 安装必要的工具包。

sudo dnf install -y \
    dnf-utils \
    net-tools \
    net-snmp \
    tree \
    wget \
    curl \
    iftop \
    htop \
    telnet \
    git \
    vim \
    zip \
    unzip \
    chrony \
    mlocate

2.5 设置时区和时间同步

设置时区为上海,并使用 chronyd 进行时间同步。

# 设置时区
sudo timedatectl set-timezone Asia/Shanghai

# 启用并配置 chronyd 服务
sudo systemctl enable --now chronyd
sudo chronyc sources

# 添加国内时间服务器
echo "server cn.pool.ntp.org iburst" | sudo tee -a /etc/chrony.conf
sudo systemctl restart chronyd
TIP

Rocky Linux 默认使用 chronyd 服务进行时间同步,比 ntpdate 更现代和可靠。

3. 系统优化

系统优化包括内核参数优化、调整文件描述符限制、关闭 SELinux。

3.1 内核参数优化

cat > /etc/sysctl.conf << EOF
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_no_metrics_save = 1
net.core.somaxconn = 65535
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
EOF

sysctl -p
TIP
  • sysctl -p 表示立即生效内核参数。
  • 内核参数优化可以提高系统性能和网络性能。

3.2 调整文件描述符限制

echo "ulimit -HSn 65536" >> /etc/rc.local
echo "ulimit -HSn 65536" >> /root/.bash_profile
ulimit -HSn 65535
TIP
  • ulimit -HSn 65536 表示设置文件描述符限制。
  • echo "ulimit -HSn 65536" >> /etc/rc.local 表示开机自动设置文件描述符限制。
  • echo "ulimit -HSn 65536" >> /root/.bash_profile 表示设置当前用户文件描述符限制。

3.3 关闭 SELinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
TIP
  • setenforce 0 表示临时关闭 SELinux。
  • sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux 表示永久关闭 SELinux。

4. 用户管理

用户管理包括创建新用户、配置 sudo 权限。

4.1 创建新用户

sudo adduser demo
sudo echo "newPassword" | passwd --stdin "demo"
TIP
  • adduser 命令用于创建新用户。
  • passwd 命令用于设置用户密码。

4.2 配置 sudo 权限

sudo gpasswd -a demo wheel
TIP
  • gpasswd 命令用于将用户 demo 添加到指定组。
  • wheel 组拥有超级权限,可以执行任何命令。

5. SSH 安全配置

SSH 安全配置包括配置密钥登录、加固 SSH 配置。

5.1 配置密钥登录

在本地生成密钥对:

ssh-keygen

复制公钥到服务器:

ssh-copy-id demo@SERVER_IP_ADDRESS

5.2 手动安装密钥

ssh-copy-id 命令不可用时,可以通过手动安装密钥。

在本地通过下面的命令获取公钥:

cat ~/.ssh/id_rsa.pub

将公钥内容复制到服务器的 /home/demo/.ssh/authorized_keys 文件中。

su - demo # 切换到 demo 用户
mkdir -p ~/.ssh # 创建 .ssh 目录
chmod 700 .ssh # 设置 .ssh 目录权限
touch ~/.ssh/authorized_keys # 创建 authorized_keys 文件
chmod 600 ~/.ssh/authorized_keys # 设置 authorized_keys 文件权限

# 接下来将公钥内容复制到 authorized_keys 文件中,保存退出

然后在本地即可以通过 ssh demo@SERVER_IP_ADDRESS 登录服务器。

TIP
  • ssh-copy-id 命令是更方便的安装密钥的方式,推荐使用。
  • 手动安装密钥虽然麻烦,但是可以加深对 Linux 文件权限的理解。

5.3 加固 SSH 配置

sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
systemctl reload sshd
DANGER

注意:保证上面配置的用户能通过密钥登录后,再禁用 root 用户登录。

  • PermitRootLogin no:表示禁止 root 用户登录。
  • PasswordAuthentication no:表示禁止密码登录。

6. 总结

完成以上配置后,服务器已具备:

  • 基础工具包
  • 时间同步
  • 系统优化
  • 安全加固
  • 用户管理

建议定期:

  • 检查系统日志
  • 更新系统补丁
  • 检查安全配置
  • 备份重要数据