限制Linux對外聯機的連接埠簡析 概述:當我們啟用了一個daemon時,就可能會造成主機的Port在進行Listen的動作,此刻該daemon就是已經對網路上面提供服務了。 www.2cto.com 什麼是port: 網路聯機是[雙向]的,要達成一條server/client的聯機,需要一組Socket pair來建立聯機。 主機端的監聽(Listen):主機所啟用的 port 其實是由某些網路服務 (program)所啟動的。而為了串連上的方便,因此很多服務所開啟的 port 是固定的。 www<->80 mail<->25 用戶端的port:是隨機產生的,主要是開啟>1024以上的連接埠,這個port也是由某些軟體所產生的。 所謂的【監聽】是某個服務程式會一直常駐在記憶體當中,所以該程式啟動的port就會一直存在。至於port在傳輸過程中的判斷,那就由TCP/UDP等通訊協議的表頭資料來記錄的。 www.2cto.com 瞭解:共65536個port,分成2部分,以1024區分。小於等於1023的連接埠,需要root身份才能啟動,這些port主要用於一些常見的通訊服務。記錄在/etc/services裡面。對安全真正有危害的是【某些不安全的服務】而不是【開了哪些port】 觀察port:netstat 和 nmap netstat:在本機上面以自己的程式監測自己的 port nmap:透過網路的偵測軟體輔助,可偵測非本機上的其他網路主機,但有違法之虞。系統管理員用來管理系統安全性查核的工具! 列出在監聽的網路服務:netstat -tunl 列出已聯機的網路聯機狀態:netstat -tun 刪除已建立或在監聽當中的聯機:netstat -tunp
nmap [掃描類型] [掃描參數] [hosts 地址與範圍] 使用預設參數掃描本機所啟用的port:nmap localhost 同時分析TCP/UDP這2個常見的通訊協議:nmap -sTU localhost 瞭解有幾部主機活在你的網路當中:nmap -sP 192.168.10.0/24 在以上基礎上偵測各個主機的啟動port:nmap 192.168.10.0/24 Port的啟用與關閉 stand alone 與 super daemon stand alone:就是直接執行該服務的執行檔,讓該執行檔案直接載入到記憶體當中運作,用這種方式來啟動可以讓該服務具有較快速響應的優點。通常放置在/etc/init.d/下 super daemon:用一個超級服務作為總管,以管理一些網路服務。/etc/xinetd.d。響應速度比較慢,可以透過super daemon 額外提供一些管控,例如控制何時啟動,何時可以進行聯機。 www.2cto.com 關閉系統上面的 port 25 步驟: 1、netstat -tnlp 2、locate master | grep '/master$' 3、rpm -qf /usr/libexec/postfix/master 4、rpm -qc postfix | grep init流程: 找出該服務套件--->rpm查詢功能得知服務的作用--->關閉 啟動系統的Telnet 1、[rpm -qa | grep telnet-server] 以rpm查詢看看是否有安裝 telnet-server 2、沒有安裝,則yum install telnet-server 3、由於是 super daemon 管控,所以編輯/etc/xinetd.d/telnet這個檔案,置[disable = no]重啟super daemon。/etc/init.d/xinetd restart 4、利用 netstat -tulp 察看是否有啟動 port 23設定開機時啟動服務: 1、如何查閱 portmap 這個程式一開機就執行 答: chkconfig --list | grep portmap 與runlevel確認一下你的環境與portmap是否啟動 www.2cto.com 2、如果開機就執行,如何將他改為開機時不要啟動 答:如果有啟動,可透過【chkconfig --level 35 portmap off】來設定開機時不要啟動 3、如何立即關閉這個portmap服務 答:可以透過【/etc/init.d/portmap stop】來立即關閉它 常見的必須要存在的系統服務 acpid:新版的電源管理模組,通常建議開啟。 atd:在管理單一預約命令執行的服務,應該要啟動的。 crond:在管理工作排程的重要服務,請務必啟動啊 iptables:Linux內建的防火牆軟體,這個也可以啟動啊 keytables:如果你的鍵盤非正規的格式時,這個服務的啟動擷取可以協助你喔
network:是網路就要有他 sshd:這個系統預設會啟動的,可以讓你在遠程以文字形態的終端機登入喔 syslog:系統的登陸檔案記錄,很重要,務必啟動啊 xinetd:就是那個 super daemon 嘛!所以也要啟動啦! xfs:用來管理x window字形資料的服務,如果你會需要x window時,這個服務要啟動。 www.2cto.com 查看主機上面有多少 port 被開啟了 netstat -tunlp 觀察已經在監聽的port與服務的對應 netstat -tunp 已建立的聯機 nmap IP 不在Linux本機上 如何觀察程式 利用[ps -aux] 或 [top] 都可以,另外,[pstree -p]則可以瞭解所有程式相依性,而[lsof]則可以察看所有程式所開的檔案喔!LISTEN的 port 與 daemon 的關係:正在 LISTEN 當中的連接埠均是由某些(daemon)所啟動的,所以要啟動連接埠就得啟用某個服務,要瞭解某個連接埠是由哪個 daemon 所啟動的,就利用 netstat -tulp 來查閱。 stand alone & super daemon :Linux系統的服務有獨立啟動(stand alone)及超級服務員(super daemon)兩種啟動的方式。掛在super daemon底下的服務可以經由super daemon的管控,以加強一些安全功能,不過由於還要經過 super daemon 的管理,所以服務的連線速度上會比stand alone慢一點。 www.2cto.com daemon啟動與關閉的scripts與檔案放置的目錄 /etc/init.d/ 各個daemons的啟動與關閉的scripts /etc/rc.d/init.d Red Hat 系統 /etc/xinetd.d super daemon的控管參數阻斷式服務:利用三向交握程式的漏洞,多個client端持續發送tcp封包的聯機要求,但卻不理會server端的SYN/ACK的封包,導致server端會持續啟動很多的port在等待client端的回應,那我們知道一般port有65536個,萬一用完了,那系統網路就癱瘓了!所以DDoS會造成系統網路癱瘓問題。另外,由於多個client同時要求,所以網路頻寬也會被用光。