您已有Linux基礎,想要進一步學習服務器架設?還想了解如何維護與管理您的服務器?《鳥哥的Linux私房菜:服務器架設篇(第3版)》是您最佳的選擇。
目前有關Linux架站的書籍大多只教導讀者如何架設服務器,很少針對服務器的維護與管理,以及發生問題時的應對策略加以說明,以至于一旦服務器遭受攻擊,眼見的就是一場手忙腳亂。因此,作者先從系統基礎以及網絡基礎講起,再談到網絡攻擊與防火墻防護主機后,才進入服務器的架設。本書共分為四篇:第一篇,服務器搭建前的進修專區,主要介紹架設服務器之前必須具備的基本知識,看完這一篇,不論您的Linux是以何種方式進行Internet連接,都將不成問題;第二篇,主機的簡易安全防護措施,這一篇鳥哥將告訴您如何保護您的主機,以及如何養成良好的操作習慣,使您的主機能夠百毒不侵,安然渡過一次次的考驗;第三篇,局域網內常見服務器的搭建,介紹內部網絡經常使用的遠程連接服務(SSH、VNC、XRDP),網絡參數設置服務(DHCP、NTP),網絡磁盤服務(Samba、NFS、iSCSI),以及代理服務器等服務。其中SSH密鑰系統,對于異地備份更是相當有幫助,您絕對不能錯過;第四篇,常見因特網服務器的搭建,介紹DNS、WWW、FTP及Mail Server等常見的服務。
暢銷書《鳥哥的Linux私房菜:服務器架設篇(第3版)》第三次改版升級;適用于各種主流Linux版本,可作為已具有Linux操作系統相關知識的網絡系統管理人員的參考手冊。 鳥哥其他作品推薦: 鳥哥的Linux私房菜:基礎學習篇(第3版)http://book.360buy.com/10064429.html
作者序
第一篇 服務器搭建前的進修專區
第1章 搭建服務器前的準備工作
1.1 Linux 的功能
1.1.1 用 Linux 搭建服務器需要的能力
1.1.2 搭建服務器難不難呢
1.2 搭建服務器的基本流程
1.2.1 網絡服務器成功連接的分析
1.2.2 一個常見的服務器設置案例分析
1.2.3 系統安全與備份處理
1.3 自我評估是否已經具備服務器搭建的能力
第2章 網絡的基本概念
2.1 網絡
2.1.1 什么是網絡
2.1.2 計算機網絡組成組件
2.1.3 計算機網絡的范圍
2.1.4 計算機網絡協議:OSI 七層協議
2.1.5 計算機網絡協議:TCP/IP
2.2 TCP/IP 的網絡接口層的相關協議
2.2.1 廣域網使用的設備
2.2.2 局域網使用的設備——以太網
2.2.3 以太網絡的傳輸協議:CSMA/CD
2.2.4 MAC 的封裝格式
2.2.5 MTU(最大傳輸單位)
2.2.6 集線器、交換器與相關機制
2.3 TCP/IP 的網絡層相關數據包與數據
2.3.1 IP 數據包的封裝
2.3.2 IP 地址的組成與分級
2.3.3 IP 的種類與取得方式
2.3.4 Netmask、子網與 CIDR(Classless Interdomain Routing)
2.3.5 路由概念
2.3.6 觀察主機路由:Route
2.3.7 IP 與 MAC:網絡接口層的 ARP 與 RARP 協議
2.3.8 ICMP 協議
2.4 TCP/IP 的傳輸層相關數據包與數據
2.4.1 面向連接的可靠的 TCP 協議
2.4.2 TCP 的三次握手
2.4.3 無連接的 UDP 協議
2.4.4 網絡防火墻與 OSI 七層協議
2.5 連上 Internet 前的準備事項
2.5.1 IP地址、主機名與DNS系統
2.5.2 連上 Internet 的必要網絡參數
2.6 重點回顧
2.7 參考數據與延伸閱讀
第3章 局域網架構簡介
3.1 局域網的連接
3.1.1 局域網的布線規劃
3.1.2 網絡設備選購建議
3.2 本書使用的內部連接網絡參數與通信協議
3.2.1 網絡聯機參數與通信協議
3.2.2 Windows 個人計算機網絡配置范例
第4章 連接 Internet
4.1 Linux 連接 Internet 前的注意事項
4.1.1 Linux 的網卡
4.1.2 編譯網卡驅動程序(Option)
4.1.3 Linux 網絡相關配置文件
4.2 連接 Internet 的設置方法
4.2.1 手動配置固定 IP 參數
4.2.2 自動取得 IP 參數(DHCP 方法,適用 Cable Modem、IP 路由器的環境)
4.2.3 ADSL 撥號上網(適用 ADSL 撥號以及光纖接入)
4.3 無線網絡——以筆記本電腦為例
4.3.1 無線網絡所需要的硬件:AP、無線網卡
4.3.2 關于 AP 的設置:網絡安全方面
4.3.3 利用無線網卡開始連接
4.4 常見問題說明
4.4.1 內部網絡使用某些服務(如 FTP、POP3)所遇到的連接延遲問題
4.4.2 域名無法解析的問題
4.4.3 默認網關的問題
4.5 重點回顧
4.6 參考數據與延伸閱讀
第5章 Linux 中常用的網絡命令
5.1 設置網絡參數的命令
5.1.1 手動/自動配置IP 參數與啟動/關閉網絡接口:ifconfig、ifup、ifdown
5.1.2 修改路由:route
5.1.3 網絡參數綜合命令:ip
5.1.4 無線網絡:iwlist, iwconfig
5.1.5 DHCP客戶端命令:dhclient
5.2 網絡排錯與查看命令
5.2.1 兩臺主機的兩點溝通:ping
5.2.2 兩主機間各節點分析:traceroute
5.2.3 查看本機的網絡連接與后門:netstat
5.2.4 檢測主機名與 IP 的對應:host、nslookup
5.3 遠程連接命令與即時通信軟件
5.3.1 終端機與 BBS 連接:telnet
5.3.2 FTP 連接軟件:ftp、lftp
5.3.3 圖形接口的即時通信軟件:Pidgin(gaim 的延伸)
5.4 文字接口網頁瀏覽
5.4.1 文字瀏覽器:links
5.4.2 文字接口下載器:wget
5.5 數據包捕獲功能
5.5.1 文字接口數據包捕獲器:tcpdump
5.5.2 圖形接口數據包捕獲器:wireshark
5.5.3 任意啟動 TCP/UDP 數據包的端口連接:nc、netcat
5.6 重點回顧
5.7 參考數據與延伸閱讀
第6章 Linux 網絡排錯
6.1 無法連接網絡的原因分析
6.1.1 硬件問題:網線、網絡設備、網絡布線等
6.1.2 軟件問題:IP 參數設置、路由設置、服務器與防火墻設置等
6.1.3 問題的處理
6.2 處理流程
6.2.1 步驟1:網卡工作確認
6.2.2 步驟2:局域網內各項連接設備檢測
6.2.3 步驟3:取得正確的 IP 參數
6.2.4 步驟4:確認路由表的規則
6.2.5 步驟5:主機名與 IP 查詢的 DNS 錯誤
6.2.6 步驟6:Linux 的 NAT 服務器或 IP 路由器出問題
6.2.7 步驟7:Internet 的問題
6.2.8 步驟8:服務器的問題
6.3 參考數據與延伸閱讀
第二篇 主機的簡易安全防護措施
第7章 網絡安全與主機基本防護:限制端口、網絡升級與SELinux
7.1 網絡數據包連接進入主機的流程
7.1.1 數據包進入主機的流程
7.1.2 常見的攻擊手法與相關保護
7.1.3 主機能執行的保護操作:軟件更新、減少網絡服務、 啟動 SELinux
7.2 網絡自動升級軟件
7.2.1 如何進行軟件升級
7.2.2 CentOS 的 yum 軟件更新、鏡像站點使用的原理
7.2.3 yum 的功能:安裝軟件組、全系統更新
7.2.4 挑選特定的鏡像站點:修改 yum 配置文件與清除 yum 緩存
7.3 限制連接端口(Port)
7.3.1 什么是Port
7.3.2 端口的查看:netstat、nmap
7.3.3 端口與服務的啟動/關閉及開機時狀態設定
7.3.4 安全性考慮——關閉網絡服務端口
7.4 SELinux 管理原則
7.4.1 SELinux 的工作模式
7.4.2 SELinux 的啟動、關閉與查看
7.4.3 SELinux Type 的修改
7.4.4 SELinux 策略內的規則布爾值修訂
7.4.5 SELinux 日志文件記錄所需的服務
7.5 被攻擊后的主機修復工作
7.5.1 網管人員應具備的技能
7.5.2 主機受攻擊后恢復的工作流程
7.6 重點回顧
7.7 參考數據與延伸閱讀
第8章 路由的概念與路由器設置
8.1 路由
8.1.1 路由表產生的類型
8.1.2 一個網卡綁多個 IP:IP Alias 的測試用途
8.1.3 重復路由的問題
8.2 路由器配置
8.2.1 什么是路由器與 IP 路由器
8.2.2 何時需要路由器
8.2.3 靜態路由的路由器
8.3 動態路由器架設
8.4 特殊狀況——路由器兩邊界面是同一個IP網段:ARP Proxy
8.5 重點回顧
8.6 參考數據與延伸閱讀
第9章 防火墻與 NAT 服務器
9.1 認識防火墻
9.1.1 關于本章的一些提醒事項
9.1.2 為何需要防火墻
9.1.3 Linux 系統上防火墻的主要類別
9.1.4 防火墻的一般網絡布線示意
9.1.5 防火墻的使用限制
9.2 TCP Wrappers
9.2.1 哪些服務有支持
9.2.2 /etc/hosts.{allow|deny} 的設置方式
9.3 Linux 的數據包過濾軟件:iptables
9.3.1 不同 Linux 內核版本的防火墻軟件
9.3.2 數據包進入流程:規則順序的重要性
9.3.3 iptables 的表格(table)與鏈(chain)
9.3.4 本機的 iptables 語法
9.3.5 IPv4 的內核管理功能:/proc/sys/net/ipv4/*
9.4 設置單機防火墻的一個實例
9.4.1 規則草擬
9.4.2 實際設置
9.5 NAT 服務器的設置
9.5.1 什么是 NAT? SNAT? DNAT?
9.5.2 最簡單的 NAT 服務器:IP 分享功能
9.5.3 iptables 的額外內核模塊功能
9.5.4 在防火墻后端的網絡服務器上做DNAT 設置
9.6 重點回顧
9.7 參考數據與延伸閱讀
第10章 申請合法的主機名
10.1 為何需要主機名
10.1.1 主機名的由來
10.1.2 重點在合法授權
10.1.3 申請靜態還是動態 DNS 主機名
10.2 注冊一個合法的主機名
10.2.1 靜態 DNS 主機名注冊(以 Hinet 為例)
10.2.2 動態 DNS 主機名注冊(以 no-ip 為例)
10.3 重點回顧
10.4 參考數據與延伸閱讀
第三篇 局域網內常見服務器的搭建
第11章 遠程連接服務器 SSH / XDMCP / VNC /XRDP
11.1 遠程連接服務器
11.1.1 什么是遠程連接服務器
11.1.2 有哪些可供登錄的類型
11.2 文字接口連接服務器: SSH 服務器
11.2.1 連接加密技術簡介
11.2.2 啟動 SSH 服務
11.2.3 SSH 客戶端連接程序——Linux 用戶
11.2.4 SSH 客戶端連接程序——Windows 用戶
11.2.5 SSHD 服務器詳細配置
11.2.6 制作不用密碼可立即登錄的SSH用戶
11.2.7 簡易安全設置
11.3 最原始圖形接口:XDMCP服務的啟用
11.3.1 X Window 的 Server/Client 架構與各組件
11.3.2 設定 GDM 的 XDMCP 服務
11.3.3 用戶系統為 Linux 的登錄方式
11.3.4 用戶系統為 Windows 的登錄方式: Xming
11.4 華麗的圖形接口:VNC 服務器
11.4.1 默認的 VNC 服務器
11.4.2 VNC 的客戶端連接軟件
11.4.3 VNC 搭配本機的 XDMCP 畫面
11.4.4 開機就啟動 VNC Server 的方法
11.4.5 同步的 VNC :可以通過圖示同步教學
11.5 仿真的遠程桌面系統:XRDP 服務器
11.6 SSH 服務器的高級應用 357
11.6.1 在非標準端口啟動 SSH(非 Port 22)
11.6.2 以 rsync 進行同步鏡像備份
11.6.3 通過SSH通道加密原本無加密的服務
11.6.4 以SSH通道配合 X Server 傳遞圖形界面
11.7 重點回顧
11.8 參考數據與延伸閱讀
第12章 網絡參數管理者:DHCP服務器
12.1 DHCP 的工作原理
12.1.1 DHCP 服務器的用途
12.1.2 DHCP 協議的工作方式
12.1.3 何時需要架設 DHCP 服務器
12.2 DHCP 服務器端的配置
12.2.1 所需軟件與文件結構
12.2.2 主要配置文件 /etc/dhcp/dhcpd.conf 的語法
12.2.3 一個局域網的 DHCP 服務器設置案例
12.2.4 DHCP 服務器的啟動與觀察
12.2.5 內部主機的 IP 對應
12.3 DHCP 客戶端的設置
12.3.1 客戶端是 Linux
12.3.2 客戶端是 Windows
12.4 DHCP 服務器端的高級查看與使用
12.4.1 檢查租約文件
12.4.2 讓大量 PC 都具有固定 IP 的腳本
12.4.3 使用 ether-wake 實現遠程自動開機(remote boot)
12.4.4 DHCP 與 DNS 的關系
12.5 重點回顧
12.6 參考數據與延伸閱讀
第13章 文件服務器之一:NFS 服務器
13.1 NFS的由來與功能
13.1.1 什么是 NFS(Network File System)
13.1.2 什么是 RPC(Remote Procedure Call)
13.1.3 NFS 啟動的 RPC daemons
13.1.4 NFS 的文件訪問權限
13.2 NFS Server 端的配置
13.2.1 所需要的軟件
13.2.2 NFS 的軟件結構
13.2.3 /etc/exports 配置文件的語法與參數
13.2.4 啟動 NFS
13.2.5 NFS 的連接查看
13.2.6 NFS 的安全性
13.3 NFS 客戶端的設置
13.3.1 手動掛載 NFS 服務器共享的資源
13.3.2 客戶端可處理的掛載參數與開機掛載
13.3.3 無法掛載的原因分析
13.3.4 自動掛載 autofs 的使用
13.4 案例演練
13.5 重點回顧
13.6 參考數據與延伸閱讀
……
第22章 郵件服務器:Postfix
22.1 郵件服務器的功能與工作原理
22.1.1 電子郵件的功能與問題
22.1.2 Mail server 與 DNS 之間的關系
22.1.3 郵件傳輸所需要的組件(MTA、MUA、MDA)以及相關協議
22.1.4 用戶收信時服務器端所提供的相關協議: MRA
22.1.5 Relay 與認證機制的重要性
22.1.6 電子郵件的數據內容
22.2 MTA 服務器:Postfix基礎設定
22.2.1 Postfix 的開發
22.2.2 所需要的軟件與軟件結構
22.2.3 一個郵件服務器的設定案例
22.2.4 讓 Postfix 可監聽 Internet 來收發郵件
22.2.5 郵件發送流程與收信、Relay 等重要概念
22.2.6 設定郵件主機權限與過濾機制:/etc/postfix/access
22.2.7 設定郵件別名: /etc/aliases、~/.forward
22.2.8 查看郵件隊列信息:postqueue、mailq
22.2.9 防火墻設置
22.3 MRA 服務器:dovecot 設定
22.3.1 基礎的 POP3/IMAP 設定
22.3.2 加密的 POP3s/IMAPs 設定
22.3.3 防火墻設置
22.4 MUA 軟件:客戶端的收發郵件軟件
22.4.1 Linux mail
22.4.2 Linux mutt
22.4.3 好用的跨平臺(Windows/Linux X)軟件:Thunderbird
22.5 郵件服務器的高級設定
22.5.1 郵件過濾一:用 postgrey 進行非正規Mail server 的垃圾郵件過濾
22.5.2 郵件過濾二:關于黑名單的過濾機制
22.5.3 郵件過濾三:基礎的郵件過濾機制
22.5.4 非信任來源的 Relay:開放 SMTP 身份認證
22.5.5 非固定 IP 郵件服務器的福音:relayhost
22.5.6 其他設置小技巧
22.6 重點回顧
22.7 參考數據與延伸閱讀
第一篇
服務器搭建前的進修專區
搭建服務器需要很強的Linux基礎概念以及基礎網絡知識,否則的話,當網絡斷斷續續的時候,您永遠也不會知道是哪里出了問題!而當某個服務器軟件出問題的時候,您永遠也不曉得是發生了什么事情!老人常說“對癥下藥才有效”,隨便吃藥是不可能“無病強身”的!因此,對于網絡服務器來說最重要的基礎文件權限、程序的啟動關閉與管理、Bash shell的操作與script、用戶賬號的管理等,您都必須要具備最基礎的認知才行,否則,服務器真的不好碰。
在這一篇當中,鳥哥會介紹一下搭建服務器之前你必須要具備的基本概念,以及重要的網絡基礎,當然,一大堆的網絡命令是需要熟悉的。這些網絡命令不是要你背下來,而是希望在你需要的時候可以很快速地查閱到,并了解如何使用。無論如何,請您務必在搭建服務器前要讀過“Linux 基礎篇”及“網絡基礎篇”的文章,否則很難與他人溝通討論!這部分內容鳥哥放在最前面,希望大家務必學習!
第1章 搭建服務器前的準備工作
很多朋友因為自身或所服務單位的需求,總會遇到搭建各種網絡服務器的問題,這個時候大多數的前輩都會推薦他們使用Linux作為搭建服務器的操作系統。但因為這些朋友很多都沒有受過 Linux 操作系統使用方面的訓練,因此總覺得反正都是操作系統,所以Linux應該也跟Windows差不多,那么就硬著頭皮使用圖形界面去配置眾多的服務器,也有可能參考網絡上的一些文章,通過文字界面進行配置,也能夠很輕松地做好服務器的搭建。問題是,這樣的一臺服務器其實是很容易被綁架的。而且,如果網絡不通,你如何自行將問題克服(trouble shooting)?難道出問題只能無語問蒼天?所以,除非你只是暫時需要搭建網絡服務器,可以請朋友或其他信息公司幫忙,如果你本身就是信息方面的服務提供商,那鳥哥建議你在進行服務器正式部署之前,看一看這篇,試試看,你到底是否具備了配置網絡服務器的基本技能。
……