什么是Daemon(守護進程)
Service
常駐再內(nèi)存中的進程惶楼,可以提供一些系統(tǒng)或者網(wǎng)絡(luò)的功能屁魏,那就是服務(wù)Service滔以。
Daemon 與 Service 的聯(lián)系與區(qū)別
系統(tǒng)為了某些功能必須要提供一些服務(wù)service,但是service的提供總是需要進程的運行氓拼,所以實現(xiàn)這個service的程序就稱為daemon你画。
- service 與 daemon 不用特別區(qū)分。
Daemon 的主要分類
stand_alone
這種daemon可以自行單獨啟動服務(wù)桃漾。 常見的如www服務(wù)的daemon(httpd), FTP的daemon(vsftpd)坏匪。。撬统。
被super daemon管理
Super daemon是一個特殊的daemon适滓, 負(fù)責(zé)管理其他daemon的啟動與否。如telnet就受super daemon 管理恋追。
Linux服務(wù)的管理
服務(wù)與端口的對應(yīng)
通過設(shè)置 /etc/services 讓某一個服務(wù)與端口號對應(yīng)凭迹。
daemon name port/protocol notes
ftp 21/tcp
http 80/tcp
http 80/udp
daemon 的啟動
stand alone daemon 的啟動
- /etc/init.d/* 存放了各種服務(wù)的啟動腳本可以通過它們來啟動某一個服務(wù)
sudo /etc/init.d/sshd [start][stop][restart][status]
- 還可以通過service 啟動
service daemonName [start][stop][restart][status]
super daemon 與 它所管理的 daemon的啟動
- super daemon 本身也是一個 stand alone , 所以它的啟動和之前一樣苦囱。 但是他所管理的daemon就不是這樣做了嗅绸, 必須要在配置文件中設(shè)置該daemon。 配置文件就是 /etc/xinetd.d/* 中的文件撕彤。
里面可以設(shè)置很多參數(shù)如:
? 啟動與否鱼鸠, 每秒最大連接數(shù), 反向代理, 以及設(shè)置一些簡單的防火墻功能蚀狰!
- 如果在 /etc/xinetd.d/中沒有該服務(wù)的配置漆弄, 則啟用 /etc/xinetd.conf 為默認(rèn)配置。
服務(wù)的防火墻管理
哪些可以用/etc/hosts.allow/deny 來管理
任何以xinetd 管理的服務(wù)造锅, 或者支持 TCP Wrappers 函數(shù)的功能的服務(wù)撼唾,都可以通過 /etc/hosts.allo /etc/hosts.deny 來設(shè)置防火墻。
- lld
which sshd httpd
: 查看是否支持 libwrap.so.0
結(jié)果 sshd支持哥蔚, httpd 不支持倒谷!
配置文件的語法
服務(wù) : IP : 操作
sshd 223.1.3.0/24 deny
TCP Wrappers 的高級操作
- spawn (action) : 利用后續(xù)的shell 進行額外的操作!
- twist (action) : 立刻以后續(xù)的命令進行糙箍,**且執(zhí)行結(jié)束后終止該次鏈接請求 **
例子:
- 利用safe_finger 去跟蹤出對方的主機的信息
- 將該耿總到的結(jié)果以Email的方式寄給本機的root
- 在對方屏幕上顯示不可登陸且警告他已經(jīng)被記錄的信息渤愁。
由于是阻擋的機制, 因此這個spawn 與 twist 的操作 大多是卸載 /etc/hosts.deny 文件中的深夯。 我們將上述的操作寫成類似如下:
sshd : ALL : spawn ( echo "security notice from host") ; echo ; /usr/sbin/safe_finger @%h) | \
/bin/mail -s "%d-%h security" root & : twist (/bin/echo -e "\n\nWARNING connection not allowed. \n\n")
系統(tǒng)開啟的服務(wù)
查詢
netstat -tunlp ## 配合grep
service --status-all
ps -aux ## 配合grep
設(shè)置開機啟動某個服務(wù)
小插敘: Linux 開機過程:
- 打開電源抖格, 開始讀取BIOS, 進行硬件自我測試咕晋。
- 通過 BIOS 取得第一個可開機的設(shè)備雹拄, 讀取 MBR 取得啟動裝載程序
- 通過啟動裝在程序的設(shè)置, 取得kernel 并加載內(nèi)存且監(jiān)測系統(tǒng)硬件
- 內(nèi)核主動調(diào)用init進程
- init 進行系統(tǒng)初始化 (/etc/rc.d/rc.sysinit)
- 以及init 的設(shè)置進行daemonstart (/etc/rc.d/rc[0-6].d/*) 掌呜。
- 加載本機設(shè)置 (/etc/rc.d/rc.local)
chkconfig
chkconfig --list [服務(wù)名稱]
## 列出服務(wù)在各個運行級別下的開機啟動與否
chkconfig --level N serviceD on/off