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. 总结
完成以上配置后,服务器已具备:
- 基础工具包
- 时间同步
- 系统优化
- 安全加固
- 用户管理
建议定期:
- 检查系统日志
- 更新系统补丁
- 检查安全配置
- 备份重要数据