鳥哥私房菜 習題答案(服務篇)2
如果僅想單純瞭解正在監聽中的端口,可以使用netstat -tul,如果還想知道已經建立了多少聯機,可以使用netstat -an。
利用ps -aux或top查看均可。
正在監聽中的端口均是由某些服務(daemons)所啓動,所以要啓動端口就得啓用某個服務,要了解某個端口是由哪個daemon啓動的,利用netstat -tulp來查閱。
三次握手爲較可靠的包傳輸的一種確認方式,因此只有TCP包才能具有三次握手。它利用(1)Client對Server主動聯機時帶有的SYN標誌;(2)Server迴應時的SYN/ACK;(3)最終Client確認的ACK標誌來確認包的可靠性。更詳細的說明請參考第2章。
Linux系統的服務有獨立啓動(stand alone)及超級服務(super daemon)兩種方式。掛在super daemon下的服務可以經由super daemon控管,以加強安全功能,不過由於還要經過super daemon的管理,所以服務的連接速度上會比stand alone慢一點。詳細的說明請參考《鳥哥的Linux私房菜——基礎學習篇》一書第21章。
各個daemons的啓動與關閉的腳本放置在/etc/rc.d/init.d裏,至於super daemon的控管參數文件則在/etc/xinetd.d裏!
請參考本章的做法,利用ntsysv或chkconfig等功能加reboot,或netstat配合kill的方式!
本題請參考本章內容,選擇APT或其他Linux版本網站提供的在線升級方式進行你的套件升級。
因爲192.168.100.0/25的netmask爲255.255.255.128,所以可以這樣做:ifconfig eth0 192.168.100.2 netmask 255.255.255.128 up。如果尚需其他參數,則需要以文件形式來輸入,如vi /etc/sysconfig/network-scripts/ifcfg-eth0,並修改爲:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.2
NETMASK=255.255.255.128
NETWORK=192.168.100.0
BROADCAST=192.168.100.127
ifconfig eth0:1 192.168.200.2 up
使用route -n即可查閱。要注意0.0.0.0那個目標(默認網關)。
直接以echo "1" > /proc/sys/net/ipv4/ip_forward即可。
我的佈線如下圖所示:
每個路由器都有兩個接口,且4個路由器的右接口都在同一個網段內!那麼Router 1怎麼跟Router 2的內部網域進行溝通?利用route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.5.2即可。
使用第5章中提到的traceroute指令來查詢。
可以使用top、sar、free、ps -aux、uptime、last等指令查詢系統相關信息。
因爲SUID是4000這個權限,所以可以這樣做:
find / -perm +4000
利用最簡易的MD5 編碼來測試,例如md5sum套件名稱,再比對與原始套件發佈的MD5 數據是否相同。
密碼的設定規則在/etc/login.defs裏!密碼文件在/etc/shadow內!
找出問題、重新安裝、漏洞修補、數據還原!請參考本章最後的修補工作內容。
防火牆不是萬靈丹,它還是可能被病毒或***程序所***!此外,如果你的主機本身已經提供了多個網絡服務,則當該網絡服務的套件有漏洞時,防火牆仍然無法克服該服務的漏洞。因此仍然需要持續進行主機的監視工作!
因爲防火牆僅抵擋某些不受歡迎的包,如果你開放WWW服務,則要求主機端口80的包可直接進入你的主機,萬一WWW套件有漏洞,那麼就可能被***了!所以套件的更新很重要。
利用uname -r 可以查到!
filter爲默認的Table,裏面默認的鏈有:
• INPUT:來自外部,想要進入主機的包;
• OUTPUT:來自主機,想要離開主機的包;
• FORWARD:主機內部網域與外部網域的包(不論進出),但該包不會進入主機。
還有nat這個table:
• PREROUTING:進行路由之前的包傳送過程;
• OUTPUT:離開主機的包傳送過程;
• POSTROUTING:經過路由之後才進行的過濾規則。
當包的所有屬性都不在防火牆規則中時,這個包能否順利通過防火牆,則以Policy 作爲這個包的最終動作!
既然沒有對Internet提供任何服務,那麼(1)請將所有的對外端口先關閉(2)防火牆規則中,最重要的是INPUT的Policy 一定要DROP,然後將iptables -A INPUT -m state --state RELATED -j ACCEPT即可。
iptables -A INPUT -p tcp -s 192.168.1.50 --dport 21:23 -j DROP
因爲ping能否響應用的是icmp的type 8(請參考第2章內的ICMP相關內容),所以我可以這樣做:
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
只有TCP包纔會具有SYN標誌,UDP並沒有SYN標誌,所以上面的指令是錯誤的!
因爲DNS的來源是端口53,因此要接受來自端口53的包:
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
先要清除規則,才能將iptables 移除!不過,我們主要將規則清除即可。
iptables -F; iptables -X; iptables -Z
iptables -t nat -F; iptables -t nat -X; iptables -t nat -Z
請利用iptables-save及iptables-restore這兩個指令,配合命令重導向即可。
這個文件早期用於進行主機名稱與IP的解析,目前常用在內部網域的名稱解析上,可以加快內部網域的反查!
如果想要合法授權,就需要向上層DNS主機註冊,而且還要上層DNS主機管理員願意將域名的解析權限授權給你。
因爲我們的Client撥號時,得到的IP不是固定的,所以無法以DNS系統進行固定IP對應主機名稱的工作,此時就需要動態DNS系統。以DNS主機提供的動態更新主機名稱對應IP的機制,可以讓我們的不同IP對應到同一個主機名稱!
因爲我是以ADSL撥號上網,所以IP是不固定的,此時需要申請動態DNS主機的主機名稱,例如adsldns.org以及no-ip.org等!
因爲Telnet除了使用明碼傳送數據外,本身telnet 就是很容易被***的一個服務器,所以當然比較危險。至於SSH,其實也不是很安全!由中國臺灣計算機危機處理小組的文件可以明顯發現,openssl + openSSH也是常有漏洞發佈!不過,比起telnet來說,確實會安全一些!
利用key pair實現加密機制:Server提供Public Key給Client端計算Private key,以提供包傳送時的加密、解密!
SSH配置文件名爲sshd_config,通常放置在/etc/ssh/sshd_config內;如果不想讓root 登入,可以修改sshd_config內的參數成爲PermitRootLogin no,並重新啓動SSH來設定!如果要讓badbird用戶無法登入,同樣在sshd_config裏面設定爲:「DenyUsers badbird」即可!
telnet與SSH的埠口分別是:23與22!請參考/etc/services喔!
無法登入的原因可能有很多,最好先查詢 /var/log/messages裏的錯誤信息來判斷,當然,還有其他可能原因爲:
1. 被防火牆擋住了,請以iptables -L -n來查看,當然也要查看/etc/hosts.deny;
2. 可能由於主機重新開機過,public key改變了,請修改你的~/ssh/known_ hosts裏面的主機IP;
3. 可能由於/etc/ssh/sshd_config裏面的設定問題,導致你這個用戶無法使用;
4. 在/etc/passwd裏,你的user不具有可以登入的shell;
5. 其他因素(如賬號密碼過期等等)
最好不要對Internet開放你的SSH服務,因爲SSH的加密函數庫使用的是openssl,一般Linux版本使用的SSH是openssh,這兩個套件事實上仍被髮布過不少漏洞,因此,最好不要對Internet開放,畢竟SSH對於主機的使用權限是很高的!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.