文章目錄
- 前言
- 一、配置國內 Yum 源(加速軟件安裝)
- 二、更新系統與安裝必備工具
- 三、網絡連接驗證
- 四、配置主機名
- 五、同步時間
- 六、配置防火墻
- 6.1 使用 iptables
- 6.1.1 整體思路
- 6.1.2 詳細步驟
- 6.1.3 完整配置腳本示例
- 6.1.4 常用管理命令
- 6.2 使用 firewalld
- 總結
前言
服務器初始化是系統管理中的基礎且關鍵的一步。合理的初始化配置不僅能提升服務器的安全性、穩定性和可維護性,還能為后續的服務部署與應用運行打下良好基礎。
本文以 CentOS 7 為例,詳細介紹從系統源配置、基礎工具安裝到網絡、主機名、時間同步及防火墻設置的全流程,幫助您快速完成一臺新服務器的基本環境搭建。
一、配置國內 Yum 源(加速軟件安裝)
將默認的國外 Yum 源替換為國內鏡像源(如阿里云、清華源),可顯著提升軟件包的下載速度。
# 1. 備份原有的源文件,防止意外發生
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 下載阿里云的 CentOS 7 源文件(推薦,速度快且穩定)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 3. 下載并配置阿里云的 EPEL 源(提供大量額外軟件包)
sudo yum install -y epel-release
sudo sed -e 's|^metalink=|#metalink=|g' \-e 's|^#baseurl=|baseurl=|g' \-e 's|^//download.fedoraproject.org/pub|//mirrors.aliyun.com|g' \-e 's|http://download.example|https://mirrors.aliyun.com|g' \-i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
# 4. 清理舊緩存并生成新緩存
yum clean all && yum makecache
可選:如需使用清華源,可將第 2 步命令替換為:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo
二、更新系統與安裝必備工具
系統更新能獲取最新的安全補丁和軟件版本,同時安裝常用工具可為后續維護和開發提供便利。
# 1. 更新整個系統(內核更新需重啟生效)
sudo yum update -y# 2. 安裝一批常用工具
sudo yum install -y \vim-enhanced \ # 加強版的 vi 編輯器wget \ # 命令行下載工具curl \ # 網絡數據傳輸工具telnet \ # 網絡診斷工具net-tools \ # 包含 ifconfig 等網絡工具bash-completion \ # 命令自動補全增強lsof \ # 列出打開的文件sysstat \ # 系統性能監控工具(含 iostat、sar 等)htop \ # 交互式進程查看器(比 top 更好用)tree \ # 以樹狀圖列出目錄內容git \ # 版本控制工具unzip \ # 解壓 zip 文件lrzsz # 提供 sz(下載)、rz(上傳)命令,方便終端傳輸文件# 若需開發環境,可安裝:
# sudo yum groupinstall -y "Development Tools"yum install -y vim-enhanced wget curl telnet net-tools bash-completio lsof sysstat htop tree git unzip lrzsz
三、網絡連接驗證
確保服務器能正常訪問外網,是后續所有操作的基礎。
# 1. 查看當前 IP 地址,確認網絡接口已啟動
ip addr show
# 或使用:
ifconfig
# 2. 測試域名解析(檢查 DNS 是否正常)
ping -c 4 www.baidu.com
# 3. 測試外網連通性
ping -c 4 114.114.114.114# 若無法上網,需檢查網絡配置,例如:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0(網卡名可能為 ens33 等)
四、配置主機名
設置易于識別的主機名,方便服務器管理。
# 1. 查看當前主機名
hostname
# 2. 設置新主機名(例如:centos7-master)
sudo hostnamectl set-hostname centos7-master
# 3. 修改 hosts 文件,將本機主機名解析到本地
# 在文件末尾添加一行:127.0.0.1 <你的主機名>
sudo vim /etc/hosts
# 例如添加:127.0.0.1 centos7-master# 4. 重新登錄 Shell 生效,或執行以下命令立即生效
bash
五、同步時間
保證服務器時間準確,對日志分析、證書驗證等操作至關重要。
# 1. 安裝 chrony 時間同步服務(CentOS 7 首選)
sudo yum install -y chrony# 2. 啟動 chronyd 服務并設置開機自啟
sudo systemctl start chronyd
sudo systemctl enable chronyd
# 3. 強制立即與時間服務器同步,同步時間 1分鐘~5分鐘
sudo chronyc -a makestep
# 4. 查看時間同步狀態
sudo chronyc sources -v
# 或查看當前系統時間:
date
六、配置防火墻
CentOS 7 支持 iptables
和 firewalld
兩種防火墻管理方式,可根據實際需求選擇。
6.1 使用 iptables
盡管系統默認采用 firewalld
,許多管理員仍傾向于使用 iptables
,因其操作更直觀且控制更靈活。iptables
能實現更精細化的規則配置,尤其適合需要精準控制網絡流量的場景。
6.1.1 整體思路
- 停止并禁用
firewalld
; - 安裝
iptables-services
; - 設置默認策略;
- 編寫放行規則;
- 保存規則并設置開機自啟。
6.1.2 詳細步驟
第 1 步:停止并禁用 Firewalld
# 第 1 步:停止并禁用 firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
第 2 步:安裝并啟動 Iptables Services
# 安裝 iptables-services 包,它提供了保存規則和作為服務管理的功能
sudo yum install -y iptables-services# 啟動iptables服務并設置開機自啟
sudo systemctl start iptables
sudo systemctl enable iptables
第 3 步:設置默認策略(安全基礎)
在添加任何允許規則之前,先設置最嚴格的默認策略:拒絕所有傳入連接,允許所有傳出連接,允許轉發。
警告:在執行以下命令前,請確保你已經放行了 SSH 端口(通常是22),否則會立即斷開遠程連接! 最好在本地控制臺操作。
# 1. 設置默認策略(非常重要!先做這一步)
sudo iptables -P INPUT DROP # 默認拒絕所有進來的流量
sudo iptables -P FORWARD DROP # 默認拒絕所有轉發的流量
sudo iptables -P OUTPUT ACCEPT # 默認允許所有出去的流量# 2. 允許所有本地回環(lo)接口的通信,這是系統內部通信所必需的
sudo iptables -A INPUT -i lo -j ACCEPT# 3. 允許已建立的和相關聯的連接通過
# 這條規則至關重要!它允許對外請求的返回數據包進入,否則無法正常上網和使用大多數服務。
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
第 4 步:添加具體的放行規則(按需開放)
現在,在嚴格的基礎上,按需開放端口。
# 1. 允許SSH連接 (端口22) - 這是遠程管理的生命線,必須開放!
# 可以使用 --dport 22 或 -m tcp -p tcp --dport 22,后者更精確
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 2. 允許PING (ICMP協議),便于網絡診斷
sudo iptables -A INPUT -p icmp -j ACCEPT# 3. 允許HTTP (80) 和 HTTPS (443)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 4. 如果需要放行其他端口,例如MySQL (3306)、自定義端口(8080)
# sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
第 5 步:保存規則并重啟服務
iptables
的命令規則默認只在內存中生效,重啟后會丟失。必須使用以下命令保存到配置文件中。
# 保存當前內存中的規則到 /etc/sysconfig/iptables 文件
sudo service iptables save
# 或者使用
sudo /usr/libexec/iptables/iptables.init save# 重啟iptables服務,確保配置加載無誤
sudo systemctl restart iptables
第 6 步:驗證配置
# 查看當前生效的所有iptables規則,檢查配置是否正確
sudo iptables -L -v -n --line-numbers# 檢查iptables服務狀態
sudo systemctl status iptables
6.1.3 完整配置腳本示例
可將以下內容保存為 setup_iptables.sh
并執行(請在安全環境中測試):
#!/bin/bash# 停止firewalld
echo "Stopping firewalld..."
systemctl stop firewalld
systemctl disable firewalld# 安裝iptables-services
echo "Installing iptables-services..."
yum install -y iptables-services# 設置默認策略和基礎規則
echo "Setting up iptables rules..."
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 添加放行規則
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p icmp -j ACCEPT # ICMP (Ping)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
# 在此添加你需要的其他規則...# 保存并啟用
echo "Saving rules and enabling service..."
service iptables save
systemctl start iptables
systemctl enable iptablesecho "Configuration complete! Current rules:"
iptables -L -v -n
授權并執行:
chmod 744 setup_iptables.sh
sudo ./setup_iptables.sh
6.1.4 常用管理命令
命令 | 說明 |
---|---|
sudo iptables -L -v -n | 查看當前規則(詳細模式) |
sudo iptables -L -v -n --line-numbers | 查看規則并顯示行號(用于刪除規則) |
sudo iptables -D INPUT <行號> | 刪除指定行號的規則 |
sudo service iptables save | 保存當前規則(必須執行) |
sudo systemctl restart iptables | 重啟 iptables 服務 |
sudo systemctl status iptables | 查看服務狀態 |
注意:服務部署完成后,需根據實際需求繼續添加相應端口或協議的放行規則。
6.2 使用 firewalld
CentOS 7 默認使用 firewalld
作為防火墻前端管理工具。配置原則是:默認拒絕所有傳入連接,只開放必要的端口。
# 1. 查看防火墻狀態
sudo systemctl status firewalld
# 如果未啟動,則啟動并設置開機自啟
sudo systemctl start firewalld
sudo systemctl enable firewalld# 2. 查看當前開放的端口和服務
sudo firewall-cmd --list-all# 3. 放行常用的服務端口(根據需求選擇)
# 放行 SSH 端口(默認22,極其重要,確保自己能連上)
sudo firewall-cmd --permanent --add-service=ssh
# 放行 HTTP (80) 和 HTTPS (443) 端口,用于Web服務
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 如果需要放行自定義端口,例如 8080
# sudo firewall-cmd --permanent --add-port=8080/tcp# 4. 重新加載防火墻配置使其生效
sudo firewall-cmd --reload# 5. 再次確認規則已生效
sudo firewall-cmd --list-all
重要安全提示:如果修改了 SSH 端口(例如改為 5922),一定要先放行新端口再關閉舊端口,否則可能導致自己無法遠程連接!
sudo firewall-cmd --permanent --add-port=5922/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
總結
服務器初始化分為以下幾個步驟:
- 配置國內Yum源
- 安裝運維的必備工具
- 網絡驗證
- 配置主機名
- 同步時間并且設置主機映射 為了加快主機之間訪問速度
- 配置防火墻
- 設置 ssh 端口 以及用戶的密碼(設置密碼復雜性 數字+大小寫 符號+并且設置18位以上)或者公鑰和私鑰登錄
完成以上所有步驟后,您的 CentOS 7 服務器就已完成了基本的安全與功能初始化。建議最后執行一次重啟(sudo reboot
),以確保所有配置(特別是內核更新和主機名設置)完全生效。此時服務器已處于安全、穩定、高效的狀態,為后續應用部署和服務搭建奠定了堅實基礎。