SlideShare a Scribd company logo
1 of 244
Download to read offline
Linux系統 
安全設定
•安全簡介 
•系統安全稽查 
•PAM 安全設定 
•Super Daemon (xinetd) 
•TCP Wrapper (tcpd) 
•Sudo 配置 
•SSH 安全連線 
•防火牆設定
安全簡介
• 終極系統安全 
• 系統安全等級 
• 安全重點所在
終極系統安全
終極系統安全 
•所謂的安全就是限制資源的分配 
•Linux 系統的資源皆以檔案的形式存在 
•Linux 系統安全就是限制使用者對檔案的存取 
•只要有使用者的系統就會有漏洞(人,往往是 
影響系統安全的最大因素)
終極系統安全 
•絕對安全的系統就是沒有人使用的系統,但這 
樣系統是不存在的,也沒存在的意義 
•因此,系統安全只是相對的對資源存取行為進 
行過濾 
•系統安全之水桶理論
系統安全等級
系統安全等級 
•系統的安全等級主要分兩個層次: 
–實體安全 
–網路安全
系統安全等級 
•實體安全項目 
–系統漏洞修補 
–Boot Loader 參數保護 
–BIOS 密碼保護 
–主機/機櫃保護 
–機房/門禁保護 
–社交工程防範
系統安全等級 
•網路安全項目 
–系統/服務漏洞修補 
–社交工程防範 
–防火牆防護 
–DMZ 緩衝區隔 
–入侵偵測系統(IDS)預警 
–服務過濾機制 
–安全驗證機制
安全重點所在
安全重點所在 
•系統安全威脅常見來自網路 
•可以運用的過濾機制很多
安全重點所在 
– 外部安全設施 
外圍防火牆 
DMZ+IDS 
內部防火牆 
System
安全重點所在 
– 系統安全機制 
外圍防火牆 
DMZ+IDS 
內部防火牆 
本機防火牆 
xinetd 
tcpd 
PAM 
Daemon ACL 
System
安全重點所在 
– 單點過濾 
– 全部通過 
– 逐層把關 
– 縱深防禦 
外圍防火牆 
DMZ+IDS 
內部防火牆 
本機防火牆 
xinetd 
tcpd 
PAM 
Daemon ACL 
System
安全重點所在 
• 問題: 
–公共開放否?
安全重點所在 
• 問題: 
–公共開放否? 
–若然,所有防禦機制都必須解除!
安全重點所在 
•重點: 
真正的戰場在系統!
安全重點所在 
- 是否需要開放連線? 
- 開放給哪些對象? 
- 所開放的服務是否安全? 
- 服務行程的存取範圍有多大? 
- 一旦行程被破解,危害程度如何? 
- 系統是否能及時偵測入侵行為? 
- 系統是否有足夠機制抵禦入侵? 
- 是否有良好的災後復原策略? 
- 如何避免問題的再次發生?
系統安全稽查
•系統負載查詢 
•網路連線稽查 
•重要檔案稽查
系統負載查詢
系統負載查詢 
•查詢指令: 
–uptime 
–top 
–vmstat 
–iostat 
–sar 
–last 
–lastlog
系統負載查詢 
•uptime 命令
系統負載查詢 
•資訊分析: 
–系統時間 
–開機時間 
–登入人數 
–系統負載 
• 過去 1、5、15 分鐘平均負載 
• 提交工作剛好被CPU接收為 1 
• 提交工作超過CPU接收大於 1 
• 提交工作低於CPU接收小於 1
系統負載查詢 
•top 命令
系統負載查詢 
•資訊分析: 
–uptime 命令結果 
–行程統計 
–CPU分配 
–記憶體分配 
–SWAP記憶體分配 
–行程排行榜 
• PID 
• USER 
• NI 
• %CPU 
• %MEM 
• COMMAND
系統負載查詢 
•命令操作: 
–預設 3 秒更新一次,按 Space 可以馬上更新 
–預設以%CPU排列,按F可以選擇其他欄位 
–可用 k 傳送信號 
–可用 r 調整 NI 
–更多操作說明可按 h 
–離開按 q
系統負載查詢 
•vmstat 命令
系統負載查詢 
•資訊分析: 
–行程狀態 
–記憶體分配 
–SWAP讀寫 
–IO讀寫 
–系統操作 
–CPU分配
系統負載查詢 
•iostat 命令
系統負載查詢 
•資訊分析: 
–CPU分配 
–設備讀寫統計(毫秒) 
• await:IO等待時間 
• svctm:IO處理時間
系統負載查詢 
•sar 命令 
–必須先由 root 執行如下命令: 
cp /etc/sysstat/sysstat.cron /etc/cron.d/
系統負載查詢 
•資訊分析: 
–使用者程序負載 
–系統程序負載 
–CPU閒置
系統負載查詢 
•last 命令
系統負載查詢 
•資訊分析: 
–系統最近紀錄的每一個成功登錄時間 
–使用 -x 選項可獲得 runlevel 切換時間 
–系統會定期輪替掉記錄檔(/var/log/wtmp)
系統負載查詢 
•lastlog 命令
系統負載查詢 
•資訊分析: 
–每一個帳號的最後一次登錄時間 
–系統帳號不應該有登錄記錄
網路連線稽查
網路連線稽查 
•查詢指令: 
–netstat 
–nmap
網路連線稽查 
•netstat 命令
網路連線稽查 
•資訊分析: 
–本機 socket 
–遠端 socket 
–連線狀態 
• LISTEN:本機服務 
• ESTABLISHED:已建立連線 
• TIME_WAIT:即將關閉連線 
–行程
網路連線稽查 
•nmap 命令
網路連線稽查 
•資訊分析: 
–Port/類別 
–服務狀態 
–服務名稱 
–版本號碼
重要檔案稽查
重要檔案稽查 
•主要稽查檔案: 
–執行檔與函式庫 
–帶SUID/SGID之執行檔 
• 檔案擁有者為root則任何人運行皆為root 
• 倘若被植入惡意程式碼將危及整個系統
重要檔案稽查 
•查詢指令: 
–find 
–diff
重要檔案稽查 
•find 命令
重要檔案稽查 
•資訊分析: 
–找出所有帶SUID/SGID 的檔案 
–並由 ls -l 列出基本資訊 
–(用md5sum更佳,但較為耗時)
重要檔案稽查 
• diff 命令
重要檔案稽查 
•資訊分析: 
–前後用 find 產生不同的記錄 
–再用 diff 來比較前後記錄即可得知差異的檔案
PAM 安全設定
•PAM 運作方式 
•時間限制 
•名單限制 
•登錄限制
PAM運作方式
PAM運作方式 
•PAM 全稱: 
–Pluggable Authentication Modules 
•除了做身份驗證,還有很多安全控制模組 
•需要身份驗證的程式,可自行開發模組 
•也可以集中交由 PAM 來進行 
•只要支援 PAM 的模組,都可給程式共享
PAM運作方式 
App App App 
PAM 
Module Module Module 
Config 
Files
時間限制
時間限制 
•PAM 模組名稱: 
–pam_time.so 
•模組功能: 
–限制服務僅在指定日期與時間或終端上提供 
–可針對個別使用者進行限制: 
• 名稱 
• 時間 
• 星期
時間限制 
•模組設定檔: 
–/etc/security/time.conf 
•設定語法: 
services;ttys;users;times 
•Example: 
login ; tty* & !ttyp* ; !root ; !Al0000-2400
時間限制 
•實作範例: 
–/etc/pam.d/common-account 
account required pam_time.so 
–/etc/security/time.conf 
login;tty*;geeko;Wk0900-1800 
login;tty*;kenny;Wk0900-1800
名單限制
名單限制 
•PAM 模組名稱: 
–pam_listfile.so 
•模組功能: 
–限制服務僅向檔案所列名單提供(或拒絕)
名單限制 
•設定語法: 
item=[tty|user|rhost|ruser|group|shell] 
sense=[allow|deny] 
file=/path/filename 
onerr=[succeed|fail] 
[apply=[user|@group]] 
[quiet] 
•Example: 
auth required pam_listfile.so item=user 
sense=deny file=/etc/ftpusers onerr=succeed
名單限制 
•實作範例: 
–/etc/pam.d/sshd 
auth required pam_listfile.so item=user 
sense=allow file=/etc/sshusers onerr=fail
登錄限制
登錄限制 
•PAM 模組名稱: 
–pam_tally.so 
•模組功能: 
–紀錄失敗登錄的次數,若成功登錄則歸零 
–可供 faillog 工具來限制登錄
登錄限制 
•設定語法: 
pam_tally.so [options] 
•常見選項: 
onerr=[fail|succeed] 
file=/path/to/counter 
magic_root 
per_user 
•Example: 
auth required pam_tally.so per_user
登錄限制 
•實作範例: 
–/etc/pam.d/common-auth 
auth required pam_tally.so per_user 
–failog命令: 
• faillog 
• faillog [-u user] -m <n> 
• faillong -u user -r
登錄限制 
•PAM 模組名稱: 
–pam_limit.so 
•模組功能: 
–設定使用者可用的資源極限 
–其中 maxlogins 可限制使用者最高登錄次數
登錄限制 
•設定檔案: 
/etc/security/limits.conf 
•設定語法: 
user - maxlogins <n> 
•Example: 
geeko - maxlogins 5
Super Daemon 
(xinetd)
•xinetd 的功能 
•設定檔格式 
•來源限制 
•時間限制 
•連線限制 
•簡易服務配置
xinetd 的功能
xinetd 的功能 
•網路服務程式需要先行載入並且監聽相應的 
port 
•不管是否有服務請求到達,服務程式都駐守 
在系統負載中: 
–損耗更多的系統資源 
–系統效能變差 
–系統穩定度變低 
–系統安全性更糟糕
xinetd 的功能 
•有別於獨立運行的網路服務,xinetd 僅在 
服務請求到達的時候才調用服務程式 
•當服務連線結束時,xinetd 也會同時卸載 
服務程式
xinetd 的功能 
•因此,xinetd 可視為後端服務程式的調度 
員,提供更彈性的資源負載: 
–更佳的系統效能 
–更安全的系統服務 
–更穩定的系統運行 
•然而,長時間頻繁存取的服務則不適用 
xinetd 的方式來啟動
xinetd 的功能 
•此外,xinetd 也能對服務連線提供更多的 
存取限制: 
–限制來源 
–限制時間 
–限制連線
xinetd 的功能
設定檔格式
設定檔格式 
•主設定檔: 
–/etc/xinetd.conf 
•設定語法: 
defaults 
{ 
key = value 
key += value 
key -= value 
}
設定檔格式 
•Example:
設定檔格式 
•服務設定檔: 
–/etc/xinetd.d/* 
•個別服務均可使用各自的服務配置: 
–若服務檔沒有則使用 defaults 
–若跟 defaults 衝突則以服務檔優先 
•服務名稱必須在 /etc/services 經過定義
設定檔格式 
•Example:
來源限制
來源限制 
•限制設定項目: 
–only_from 
• 只允許特定連線 
–no_access 
• 拒絕特定連線 
–兩者可混用,重疊範圍以 no_access 為依
來源限制 
•來源格式: 
–單一 IP :n.n.n.n 
–多個 IP :n.n.n.{n,n,n,…} 
–一個網路:n.n.n.0 或 n.n.n.n/mask 
–單一主機:xxx.xxx.com 
–單一 Domain:.xxx.com
來源限制 
•Example:
時間限制
時間限制 
•限制設定項目: 
access_times
時間限制 
•時間格式: 
–hh:mm-hh:mm 
•取值範圍: 
–hh: 00-23 
–mm: 00-59
時間限制 
•Example :
連線限制
連線限制 
•設定限制項目: 
–instances 
• 同一時間內單一服務所能承載的最多連線數目 
–cps 
• 第一個參數為一秒內只能所能承載的新建連線數目 
• 第二個參數為新連線數目超過第一參數時,暫停多 
少秒停止接受新建連線(不影響現有連線)
連線限制 
•Example:
簡易服務配置
簡易服務配置 
•功能說明: 
–不需要獨立開發 socket 服務程式 
–透過 xinetd 來運行簡單的 script
簡易服務配置 
•步驟一,建立 script: 
vi /usr/local/bin/my_service
簡易服務配置 
•步驟二,定義 service port : 
vi /etc/services
簡易服務配置 
•步驟三,配置 xinetd 服務檔: 
vi /etc/xinetd.d/my_service
簡易服務配置 
•步驟四,重新啟動 xinetd: 
/etc/init.d/xinetd restart
簡易服務配置 
•步驟五,測試:
TCP Wrapper 
(tcpd)
•tcpd 的使用時機 
•設定檔格式 
•服務限制 
•觸發其他指令
tcpd 的使用時機
tcpd 的使用時機 
•網路服務程式在決定是否接收新建連線之前 
,可先交由 tcpd 檢查: 
–接收該連線 
–拒絕該連線 
–運行額外的程式
tcpd 的使用時機 
•藉由 tcpd 的過慮,可為系統提供更完整的 
安全防護: 
–集中配置 
–集中記錄(syslog) 
–服務程序需支援 libwrap.so
tcpd 的使用時機
設定檔格式
設定檔格式 
• tcpd 參考的設定檔有兩個: 
–/etc/hosts.allow 
定義允許通過的連線 
–/etc/hosts.deny 
定義拒絕通過的連線
設定檔格式 
• 設定檔的參考順序: 
–先參考 hosts.allow 再參考 hosts.deny 
–規則參考以 first-match-first 為原則 
• 符合 hosts.allow 規則就接受連線 
• 不符合 hosts.allow 但符合 hosts.deny 則拒絕 
• 若皆不符合預設為接受連線
設定檔格式
設定檔格式 
• hosts.allow 與 hosts.deny 的規則個時是 
相同的: 
–放在 hosts.allow 則是接受連線 
–放在 hosts.deny 則是拒絕連線
設定檔格式 
• 規則格式: 
daemon_list : client_list [: options] 
–daemon_list 格式: 
• 運行服務的程式名稱,如 sshd, in.telnetd 
• wildcard : ALL 
–client_list 格式: 
• 單一 IP : 10.0.0.1 
• 一個 network : 10.0.0.0/24, 10.0.0. 
• 單一主機: www.example.com 
• 一個 domain : .example.com 
• WILDCARD
設定檔格式 
• 常用 client_list 之 wildcards: 
–ALL 
• 所有來源 
–LOCAL 
• 於 /etc/hosts 解釋到的不帶“ .”的主機名稱 
–KNOWN 
• 透過 DNS 或 /etc/hosts 解釋到的帶“ .”的主機 
名稱 
–UNKNOWN 
• 不能解釋到主機名稱的來源 
–PARANOID 
• 可以解釋到主機名稱,但從該主機再查到的 IP 根 
源 IP 不一致
服務限制
服務限制 
•tcpd 可採用的限制方式有兩種: 
–除非指定開放否則全部限制 
–除非指限制放否則全部開放
服務限制 
• 規則範例一: 
–只開放本機及指定網路連線 telnet 服務: 
vi /etc/hosts.allow 
vi /etc/hosts.deny
服務限制 
• 規則範例二: 
–只開放可查詢得到名稱且 IP 一致的主機連線 
ftp 服務: 
vi /etc/hosts.allow
觸發其他指令
觸發其他指令 
• tcpd 常用來觸發命令的選項有兩個: 
–twist 
•該連線完全由指定命令來接管,命令的輸入與輸出 
將連接至客戶端程式。 
•其後不能有其他選項。 
–spawn 
•維持當前連線的情況下以子行程方式運行指定命令 
,命令的輸入與輸出將連接到 /dev/null。 
•其後仍可有其他選項。
觸發其他指令 
•規則範例一: 
–若從 foo.bar.com 連線列印服務則以 email 
通知管理員,其餘的連線一律擋掉
觸發其他指令 
•規則範例二: 
–允許已定義且不帶“ .”的主機連線 telnet 服務 
,其餘的連線一律擋掉,且傳回拒絕信息
觸發其他指令 
•規則範例三: 
–來自特定網路的 rsync 連線專用客製化的程式 
,其餘的連線維持正常
Sudo 配置
•sudo 之應用目的 
•設定語法 
•限制 sudoers 
•限制 su
sudo 之應用目的
sudo 之應用目的 
•過往要把root權限授權出去有兩種方法: 
–直接把 user ID 設為 0 
–把 root 密碼釋放出去 
• 直接用 root 登錄 
• su 切換為 root
sudo 之應用目的 
•然而這兩種方法都有致命的不足: 
–all or nothing 不能折衷 
–無法控制 root 權限之執行 
–難以追蹤 
–容易洩露 root 密碼 
–容易誤觸危險程式
sudo 之應用目的 
•透過sudo可以有限度的下放root的權限: 
–哪些帳號或群組 
–在那些機器上 
–用甚麼身份 
–執行甚麼命令 
–甚至只能使用哪些命令參數
sudo 之應用目的 
•而且,透過 sudo 可以不需要把 root 密碼 
釋放出去: 
–執行者輸入自己的密碼 
• 不超過 5 份鐘閒置則不需要重複輸入密碼 
–或是根本不需要輸入密碼
sudo 之應用目的 
•透過 sudo 運行的每一道命令進行記錄: 
–logfile 
–syslog
sudo 之應用目的 
•sudo 的使用方法: 
–sudo [-u user] command [argument…]
設定語法
設定語法 
•sudo 的設定檔: 
–/etc/sudoers 
• 不建議直接用文字編輯器修改 
• 應該用 visudo 命令來修改
設定語法 
•sudoers 設定檔語法欄位: 
user host = (run_as) command [argument]
設定語法 
–user 欄位格式: 
• user 
• %group 
• USER_ALIAS 
– User_Alias ALIAS_NAME = user1, user2, user3, …
設定語法 
–host 欄位格式: 
• hostname 
• IP 
• network number 
• +netgroup 
• HOST_ALIAS 
– Host_Alias ALIAS_NAME = host1, host2, host3, …
設定語法 
–run_as 欄位格式: 
• user 
• #uid 
• %group 
• RUNAS_ALIAS 
– Runas_Alias ALIAS_NAME = user1, user2, user3, …
設定語法 
–command 欄位格式: 
• command 
• CMND_ALIAS 
– Cmnd_Alias ALIAS_NAME = cmnd1, cmnd2, cmnd3, …
設定語法 
–Command 格式須知: 
• 命令必須使用絕對路徑 
• 使用 NOPASSWD: 前置標籤可不需要密碼 
• 加上 ! 前置符號則禁止執行該命令 
• 若有指定參數則命令與參數之間不得插入任何內容 
• 命令與命令之間使用” , ”分隔
設定語法 
–Example: 
%wheel ALL = (ALL) ALL 
peter localhost = /usr/bin/passwd [A-z]*,  
!/usr/bin/passwd root 
ALL CDROM = NOPASSWD: /sbin/umount /CDROM,  
/sbin/mount -o nosuid,nodev  
/dev/cd0a /CDROM
限制 sudoers
限制 sudoers 
•在 SuSE Linux 系統上設定 sudoers 需要 
注意如下設定: 
Defaults targetpw # ask for the password of 
the target user i.e. root 
ALL ALL=(ALL) ALL # WARNING! Only use 
this together with 'Defaults targetpw'!
限制 sudoers 
•兩行設定效果為: 
–所有使用者皆可籍由 sudo 執行任何命令 
–但需輸入目標帳號的密碼,如此 root 密碼仍 
需釋放出來
限制 sudoers 
•修改建議: 
–同時註解掉這兩行: 
#Defaults targetpw # ask for the password of the 
target user i.e. root 
#ALL ALL=(ALL) ALL # WARNING! Only use this 
together with 'Defaults targetpw'! 
–然後再個別定義使用者及群組
限制 su
限制 su 
•透過 sudo 可以有限度下放 root 權限 
•但 su 命令則不然: 
–root 密碼仍需釋放 
–不能限制運行的命令及參數 
–不能限制哪些帳號可以運行 su 
–不能限制用甚麼帳號的身分運行 su
限制 su 
•解決方案 - PAM: 
–使用 pam_wheel.so 
• 限制哪些人才能執行 su 
–使用 pam_listfile.so 
• 限制 su 可以切換為哪些帳號
限制 su 
•Example1: 
–vi /etc/pam.d/su 
–vi /etc/pam.d/su-l
限制 su 
•Example2: 
–vi /etc/pam.d/su 
–vi /etc/pam.d/su-l
SSH 安全連線
•SSH 簡介 
•設定 user key 
•關閉密碼認證 
•設定 key 密碼保護 
•執行遠端圖型界面 
•封裝非加密連線
SSH 簡介
SSH 簡介 
•SSH 全稱: 
Secured SHell 
• SSH 主要目的: 
–安全的遠端連線操作 
–所有傳送的封包均經過加密處理 
–取代過往不安全的連線 
• r 系列(rsh、rcp、rlogin、etc) 
• telnet 
• ftp
SSH 簡介 
•SSH 主要功能: 
–遠端登錄 
–遠端命令執行 
–遠端檔案複製 
–主機身份驗證 
–帳號身份驗證 
–X 圖形介面轉送 
–封裝其他非加密連線
SSH 簡介 
•SSH 版本: 
–SSH v1 
• 無使用限制 
• 加密使用的 Session Key 為 256bit 亂數 
• Session Key 經過兩把 public key 加密傳送 
• 攻擊者可以對現有連線注入額外資料 
–SSH v2 
• 商業使用受限制 
• 加密 key 透過 Diffier-Hellmen 演算法交換 
• 資訊完整性透過 HMAC 演算法保障
SSH 簡介 
•SSH v1 連線流程: 
1. client 連線 server 端 tcp/22 
2. server 同時把兩把 public key 傳回 
– Server Key 
– Host Key 
3. client以Host Key來比對known_hosts檔: 
– 沒發現則詢問加入(需回答 yes) 
– 若不通過則結束連線 
4. client產生256bit的亂數作為Session Key 
並用兩把public key加密後傳回給 server 
5. 雙方使用Session Key來加密所有連線
SSH 簡介
SSH 簡介 
•SSH v2 連線流程: 
1. client 連線 server 端 tcp/22 
2. server 同時把 Host Public Key 傳回 
3. client以Host Key來比對known_hosts檔: 
– 沒發現則詢問加入(需回答 yes) 
– 若不通過則結束連線 
4. 雙方用Diffie-Hellman演算法協商加密key 
5. 及後所有連線用加密key來加密
SSH 簡介
SSH 簡介 
•Linux 的 OpenSSH 版本: 
–調用 OpenSSL 函式庫來實作加密 
–不受商業使用的限制 
–兼容官方 SSH 功能: 
• v1.5 : SSH1 only 
• v1.99 : SSH1 & SSH2 
• v2.0 : SSH2 only
SSH 簡介 
•偵查 OpenSSH 版本:
設定 user key
設定 user key 
•SSH 帳號驗證可以用 RSA Key 進行: 
–免除密碼輸入 
• 不怕密碼被竊取 
• 可用於非互動操作 
–更精確的身份辨識
設定 user key 
•SSH2 支援兩種演算法: 
–RSA 
–DSA
設定 user key 
•User Key 建置步驟: 
1. 用 ssh-keygen 產生 key pair 
– private key : id_rsa 
– public key : id_rsa.pub 
2. 把 public key 複製至 server 端 
3. 並增加至 server 帳號的 
~/.ssh/authorized_keys
設定 user key 
•用 ssh-keygen 產生 key pair
設定 user key 
•把 public key 複製至 server 端:
設定 user key 
•並增加至 server 帳號的 
~/.ssh/authorized_keys
設定 user key 
•測試(不需要密碼)
關閉密碼認證
關閉密碼認證 
•SSH 的身份驗證方法: 
–User Key 
• 若 User Key 通過則馬上通過驗證 
• 若 User Key 不通過則問密碼 
–Password 
• 若使用 PAM 則用 PAM 驗證身份 
• 若 PAM 不通過或不使用,則使用系統密碼驗證 
• 假如皆不通過,則拒絕連線
關閉密碼認證
關閉密碼認證 
•身份驗證修改: 
–禁用密碼,只接受 user key 
• 避免密碼遭到攔截 
• 避免機器人程式猜密碼 
• 限定被授權主機連線(key 必須事前抄入) 
• 使用於非互動連線(shell script)
關閉密碼認證 
•關閉密碼驗證: 
–vi /etc/ssh/sshd_config 
–/etc/init.d/sshd restart
關閉密碼認證 
•測試:
設定 key 密碼保護
設定 key 密碼保護 
•在使用 ssh-keygen 產生 RSA/DSA key 的 
同時,我們可以為 key 設定一個密碼(pass 
phrase) 
•也可以在 key 產生之後重新執行 ssh-keygen 
-p 重設密碼:
設定 key 密碼保護 
•User Key 驗證認 key 不認人的風險: 
–終端遭到竊用 
–客戶主機遭破解 
–Private Key 遭到竊取 
•RSA/DSA key 密碼可以降低 private key 被 
盜用的風險: 
–在Private Key 調用的時候必須額外輸入密碼 
–若密碼不對,無法使用 private key
設定 key 密碼保護 
•一旦 RSA/DSA key 被設定,SSH 連線所需 
要輸入的密碼不再是遠端帳號的密碼,而是 
key 保護密碼:
設定 key 密碼保護 
•RSA/DSA key 密碼也同時帶來不便: 
–不適用在非互動的連線操作 
–每次連線均需要輸入密碼 
•其不便性可以透過如下命令來改善: 
–ssh-agent 
–ssh-add
設定 key 密碼保護 
•ssh-agent 的使用: 
–先用 ssh-agent 載入一個 shell 程式 
–再用 ssh-add 載入 private key 
• private key 可載入多個 
• 只有載入 private key 的時候需要輸入密碼 
• 可以設定 X 系統在登入時同時輸入 key 密碼 
–及後所有的連線都不再需要輸入密碼,只到結 
束 shell 程式
設定 key 密碼保護 
•ssh-agent 使用測試:
執行遠端圖型界面
執行遠端圖型界面 
•過往傳統的軟端連線軟體一般都只能運行文 
字介面的程式 
•X系統本身有支援X Protocol可以運行遠端 
圖形介面,也可應用XDMCP登入遠端桌面 
–網路資訊以明碼傳輸 
–安全性不足 
–身份驗證困難 
–容易遭受中間人攻擊
執行遠端圖型界面 
•SSH server 可以提供XForwarding 功能: 
–所有網路資訊均以加密 
–更安全可靠的傳輸 
–可以進行身份驗證 
–可以抵禦中間人攻擊
執行遠端圖型界面 
•SSH server 設定: 
–vi /etc/ssh/sshd_config
執行遠端圖型界面 
•SSH client 端命令參數:-X
封裝非加密連線
封裝非加密連線 
•目前很多原本沒有加密服務均已開發出支援 
加密的版本 
–需版本支援 
–需要額外的設定
封裝非加密連線 
•倘若版本不支援加密協定,或是臨時需要加 
密連線,SSH 可以提供封裝服務,把原本沒 
加密的連線封裝到已經加密的 ssh tunnel 中 
•原有服務無須做任何修改, 只需要在 ssh 
客戶端執行時增加參數就行
封裝非加密連線 
•方法一, 在本地端開一個 port 然後透過 
tunnel 連線遠端服務: 
– ssh -L 10110:4.3.2.1:110 4.3.2.1
封裝非加密連線 
•方法二, 在遠端開一個 port 然後透過 
tunnel 連線回本地端服務: 
– ssh -R 10110:1.2.3.4:110 4.3.2.1 
– GatewayPorts yes
封裝非加密連線 
•方法三, 在本地端開一個 port 然後透過 
tunnel 連線第三方主機的服務(離開tunnel 
的連線沒有加密): 
– ssh -L 10110:10.0.0.1:110 4.3.2.1
防火牆設定
•防火牆原理 
•防火牆設計 
•iptables 規則設計 
•iptables 命令語法 
•iptables 命令範例 
•設計自己的 iptables script
防火牆原理
防火牆原理 
•網路連線兩端透過封包(packet)傳遞資料:
防火牆原理 
•封包基本由 header 與 payload 組成 
•Packet 則是層層封裝傳遞
防火牆原理 
•TCP 封包之 header 內容
防火牆原理 
•IP 封包之 header 內容
防火牆原理 
•Socket 是連線兩端的封包起止站 
–Source Socket 
–Destination Socket 
•Socket 由 Address 與 Port 組成
防火牆原理 
•NAT 的工作原理 
–透過 socket 替換達成 routing
防火牆原理 
•防火牆原理 
–透過檢查封包 header(or payload) 的內容來決 
定封包是否能夠通過
防火牆設計
防火牆設計 
•防火牆常被部署在對內(信任)與對外(不信 
任)網路之間的必經通道之上
防火牆設計 
•DMZ 是防火牆部署中常見的設計 
–主要用來區隔堡壘主機,以降低入侵風險
防火牆設計 
•DMZ 之設計是多樣的 
–安全與成本及難度成正比、與便利成反比
防火牆設計 
•Internet 的連線常經過多重的防火牆過濾
防火牆設計 
•Internet 的連線常經過多重的防火牆過濾 
–連線時雙向的 
–必須全部通過
iptables 規則設計
iptables 規則設計 
•防火牆程式根據規則(rule)來處理封包 
–rule by rule 
–first match 
–policy
iptables 規則設計 
•防火牆規則收集於不同的鏈(chain)中 
–chain by chain 
–all through
iptables 規則設計 
•鏈存在於不同的表(table)中 
–different table for different job 
–table by table
iptables 規則設計 
•Iptables 內建三個 tables (及常用鏈): 
–filter 
• INPUT 
• FORWARD 
• OUTPUT 
–nat 
• PREROUTING 
• POSTROUTING 
• OUTPUT 
–mangle 
• PREROUTING 
• OUTPUT 
• …
iptables 規則設計 
•Linux 系統對封包的 routing 處理 
–To local 
–To outside
iptables 規則設計 
•封包於 iptables 之穿行 
–時間 
–檢查點
iptables 規則設計 
•iptables 所介入的處理: 
–which table 
–which chain
iptables 規則設計 
•一個非本機封包於 iptables 之處理:
iptables 命令語法
iptables 命令語法 
•iptables 命令格式: 
iptables [-t table] -CMD CHAIN rule -j TARGET
iptables 命令語法 
•常見 command: 
–列視規則:-L [CHAIN] [-n] 
–增加規則:-A CHAIN rule 
–插入規則:-I CHAIN [ln] rule 
–替換規則:-R CHAIN ln rule 
–刪除規則:-D CHAIN <ln | rule> 
–清空整鏈:-F [CHAIN] 
–設定原則:-P CHAIN <DROP | ACCEPT> 
--------------------- 
–建立自定鏈:-N C_CHAIN 
–刪除自定鏈:-X C_CHAIN
iptables 命令語法 
•常用 iptables 規則內容: 
-i interface (only in PREROUTING, INPUT, 
FORWARD) 
-o interface (only in POSTROUING, OUTPUT, 
FORWARD) 
-s src.addr (can be ip, net/mask, hostname) 
-d dest.addr (can be ip, net/mask, hostname) 
-p proto (can be TCP, UDP, ICMP, ALL)
iptables 命令語法 
•常用 iptables 規則內容(continued): 
--sport src:port (only with -p TCP & -p UDP, can 
be port, port:range) 
--dport dest:port (only with -p TCP & -p UDP, 
can be port, port:range) 
--icmp-type (only with -p ICMP, can be type, 
type/error_code) 
* tips: 規則內容越多,符合之封包越少。反 
之,則越多
iptables 命令語法 
•常用 iptables 規則內容(continued): 
-j TARGET 
(depends on table & CHAIN) 
ACCEPT 
DROP 
SNAT , MASQUERADE 
DNAT 
REDIRECT 
RETURN 
… etc.
iptables 命令語法 
•關於 -m (match) 之應用: 
-m state --state <STATE> 
• NEW (新建連線) 
• ESTABLISHED (已成功建立之連線) 
• RELATED (新建連線,但由已建立連線所引發) 
• INVALID (非法連線)
iptables 命令語法 
•關於 -m (match) 之應用(continued): 
-m mac --mac-source <MAC> 
(比對封包的來源 MAC 位址,僅限 local subnet。) 
-m limit --limit <nu/unit> [--limit-burst <burst>] 
(比對每一時間單位最大封包數,及觸發限制的數量。) 
-m owner --uid-owner <uid> 
(比對本機使用者 id。) 
…
iptables 命令語法 
•常用 iptables 之 TARGET: 
filter TARGET 
• ACCEPT: 允許封包通過當前的鏈 
• DROP: 拒絕封包通過當前的鏈 
• REJECT: 同 DROP ,但會送回 icmp 通知
iptables 命令語法 
•常用 iptables 之 TARGET(continued): 
nat TARGET 
• SNAT: 修改 source socket 
• DNAT: 修改 destination socket 
• MASQUERADE:動態修改 source socket
iptables 命令語法 
•常用 iptables 之 TARGET(continued): 
others 
• REDIRECT: 將連線導至本機行程 
• RETURN: 結束自定鏈返回原鏈之下一規則
iptables 命令範例
iptables 命令範例 
•iptables 命令行範例: 
–拒絕新建連線進入本機: 
iptables -t filter -A INPUT -m state --state 
NEW -j DROP
iptables 命令範例 
•iptables 命令行範例(continued): 
–允許從外部界面(eth0) 連至本機之 
web 連線: 
iptables -A INPUT -i eth0 -p tcp --dport 80 -j 
ACCEPT
iptables 命令範例 
•iptables 命令行範例(continued): 
–允許穿過本機之確認連線( 為內部發起 
之連線) : 
iptables -A FORWARD -m state --state 
ESTABLISHED -j ACCEPT
iptables 命令範例 
•iptables 命令行範例(continued): 
–將內部(192.168.1.x) 送至 Internet 
的封包作偽裝: 
iptables -t nat -A POSTROUTING -o eth0 -s 
192.168.1.0/24 --sport 1024:65535 -j 
MASQUERADE
設計自己的 iptables script
設計自己的 iptables script 
•目前的主流 Linux 版本都會提供工具以幫 
忙設定 iptables 防火牆 
•也會提供預設的防火牆規則 
•基本上使用預設規則就足夠應付常規性的使 
用 
•但如果管理員需要客製化自己的防火規則, 
則可撰寫自己的 shell script
設計自己的 iptables script 
•Example 1: 
–單純作 Desktop 用途 
iptables -F 
iptables -A INPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT 
iptables -A INPUT -j DROP 
iptables -P OUTPUT ACCEPT
設計自己的 iptables script 
•Example 2: 
–單純作 Web Server 用途 
iptables -F 
iptables -A INPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -j DROP 
iptables -P OUTPUT ACCEPT
設計自己的 iptables script 
•Example 3: 
–單純作 router 用途 
iptables -F 
iptables -A INPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT 
iptables -A INPUT -j DROP 
iptables -P OUTPUT ACCEPT
設計自己的 iptables script 
•Example 3: 
–單純作 router 用途 (continued) 
iptables -A FORWARD -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
iptables -A FORWARD -s 11.22.33.112/29 -j 
ACCEPT 
iptables -A FORWARD -d 11.22.33.113 -p tcp 
--dport 80 -j ACCEPT 
iptables -A FORWARD -j DROP 
echo 1 > /proc/sys/net/ipv4/ip_forward
設計自己的 iptables script 
•Example 4: 
–單純作 nat 用途 
iptables -F 
iptables -A INPUT -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT 
iptables -A INPUT -j DROP 
iptables -P OUTPUT ACCEPT
設計自己的 iptables script 
•Example 4: 
–單純作 nat 用途 (continued) 
iptables -P FORWARD ACCEPT 
iptables -t nat -A POSTROUTING -s 
192.168.0.0/24 -j MASQUERADE 
iptables -t nat -A PREROUTING -p tcp --dport 80 -j 
DNAT --to 192.168.0.1 
echo 1 > /proc/sys/net/ipv4/ip_forward

More Related Content

What's hot

Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmm
Yiwei Ma
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
cachowu
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
pigso
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
Cary Yang
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
guest2d0fe3
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
OpenCity Community
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
Yiwei Ma
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
Yiwei Ma
 

What's hot (20)

Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmm
 
Linux基础
Linux基础Linux基础
Linux基础
 
美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践美团点评技术沙龙010-美团Atlas实践
美团点评技术沙龙010-美团Atlas实践
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
High performance browser network wired network
High performance browser network   wired network High performance browser network   wired network
High performance browser network wired network
 
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版使用Nginx轻松实现开源负载均衡——对外版
使用Nginx轻松实现开源负载均衡——对外版
 
Linux firewall
Linux firewallLinux firewall
Linux firewall
 
Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案Heartbeat+my sql+drbd构建高可用mysql方案
Heartbeat+my sql+drbd构建高可用mysql方案
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
SDN ryu 專題安裝
SDN ryu 專題安裝SDN ryu 專題安裝
SDN ryu 專題安裝
 
OpenStack Neutron Introduction
OpenStack Neutron IntroductionOpenStack Neutron Introduction
OpenStack Neutron Introduction
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
 
Gdb principle
Gdb principleGdb principle
Gdb principle
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 
线上问题排查交流
线上问题排查交流线上问题排查交流
线上问题排查交流
 
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 newX64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
 

Viewers also liked

GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例
Wen Liao
 

Viewers also liked (20)

Importance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation readingImportance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation reading
 
GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例GNU gettext簡介 - 以C語言為範例
GNU gettext簡介 - 以C語言為範例
 
GNU ld的linker script簡介
GNU ld的linker script簡介GNU ld的linker script簡介
GNU ld的linker script簡介
 
Trace kernel code tips
Trace kernel code tipsTrace kernel code tips
Trace kernel code tips
 
A Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard LibraryA Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
A Brief Introduction to Regular Expression with Python 2.7.3 Standard Library
 
Trace 程式碼之皮
Trace 程式碼之皮Trace 程式碼之皮
Trace 程式碼之皮
 
GNU Make, Autotools, CMake 簡介
GNU Make, Autotools, CMake 簡介GNU Make, Autotools, CMake 簡介
GNU Make, Autotools, CMake 簡介
 
Introduce to Linux command line
Introduce to Linux command lineIntroduce to Linux command line
Introduce to Linux command line
 
A successful git branching model 導讀
A successful git branching model 導讀A successful git branching model 導讀
A successful git branching model 導讀
 
GNU AS簡介
GNU AS簡介GNU AS簡介
GNU AS簡介
 
開放街圖 自助旅行的好幫手
開放街圖   自助旅行的好幫手開放街圖   自助旅行的好幫手
開放街圖 自助旅行的好幫手
 
行政院會簡報資料:報1 科技辦 數位國家創新經濟(m)
行政院會簡報資料:報1 科技辦 數位國家創新經濟(m)行政院會簡報資料:報1 科技辦 數位國家創新經濟(m)
行政院會簡報資料:報1 科技辦 數位國家創新經濟(m)
 
Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing Tools
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame Graphs
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 

Similar to Linux system security

MySQL自动切换设计与实现
MySQL自动切换设计与实现MySQL自动切换设计与实现
MySQL自动切换设计与实现
orczhou
 
Dog svr
Dog svrDog svr
Dog svr
yxcwf
 
吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨
drewz lin
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
丁 宇
 
Module 08 防火牆
Module 08 防火牆Module 08 防火牆
Module 08 防火牆
rbk19871124
 

Similar to Linux system security (20)

MySQL自动切换设计与实现
MySQL自动切换设计与实现MySQL自动切换设计与实现
MySQL自动切换设计与实现
 
Dog svr
Dog svrDog svr
Dog svr
 
5, system admin
5, system admin5, system admin
5, system admin
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
Some tips
Some tipsSome tips
Some tips
 
吴岷 视频Cdn分发、调度与服务的探讨
吴岷  视频Cdn分发、调度与服务的探讨吴岷  视频Cdn分发、调度与服务的探讨
吴岷 视频Cdn分发、调度与服务的探讨
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The Hood
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档
 
基于linux-HA 的PG高可用性
基于linux-HA 的PG高可用性基于linux-HA 的PG高可用性
基于linux-HA 的PG高可用性
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1
 
Module 08 防火牆
Module 08 防火牆Module 08 防火牆
Module 08 防火牆
 

More from Kenny (netman)

More from Kenny (netman) (20)

rpi_audio configuration steps
rpi_audio configuration stepsrpi_audio configuration steps
rpi_audio configuration steps
 
Rpi audio
Rpi audioRpi audio
Rpi audio
 
Ha opensuse
Ha opensuseHa opensuse
Ha opensuse
 
Chap 19 web
Chap 19 webChap 19 web
Chap 19 web
 
Chap 18 net
Chap 18 netChap 18 net
Chap 18 net
 
Chap 17 advfs
Chap 17 advfsChap 17 advfs
Chap 17 advfs
 
About the Course
About the CourseAbout the Course
About the Course
 
Linux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueLinux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System Rescue
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job Scheduling
 
Linux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell scriptLinux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell script
 
Linux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account managementLinux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account management
 
Linux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware ManagementLinux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware Management
 
Linux fundamental - Chap 11 boot
Linux fundamental - Chap 11 bootLinux fundamental - Chap 11 boot
Linux fundamental - Chap 11 boot
 
Linux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fsLinux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fs
 
Linux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkgLinux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkg
 
Linux fundamental - Chap 08 proc
Linux fundamental - Chap 08 procLinux fundamental - Chap 08 proc
Linux fundamental - Chap 08 proc
 
Linux fundamental - Chap 07 vi
Linux fundamental - Chap 07 viLinux fundamental - Chap 07 vi
Linux fundamental - Chap 07 vi
 
Linux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regxLinux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regx
 
Linux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filterLinux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filter
 
Linux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archiveLinux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archive
 

Linux system security