I.作業(練習)內容:
一、iptables類作業
前提:INPUT和OUTPUT默認策略爲DROP;
1、限制本地主機的web服務器在週一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機;
INPUT鏈 iptables -I INPUT 1 -p tcp --dport 80 -m connlimit ! --connlimit-above 100 -m time ! --weekdays Mon -j ACCEPT OUTPUT鏈 iptables -I OUTPUT 1 -p tcp --sport 80 -m string --string "admin" --algo kmp -j REJECT #iptables -I OUTPUT 2 -m state --state ESTABLISHED,RELATED -j ACCEPT
2、在工作時間,即週一到週五的8:30-18:00,開放本機的ftp服務給172.16.0.0網絡中的主機訪問;數據下載請求的次數每分鐘不得超過5個;
INPUT鏈 iptables -I INPUT 1 -s 172.16.0.0/16 -p tcp --dport 21 -m connlimit ! --connlimit-above 5 -j ACCEPT OUTPUT鏈 iptables -I OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
3、開放本機的ssh服務給172.16.x.1-172.16.x.100中的主機,x爲你的座位號,新請求建立的速率一分鐘不得超過2個;僅允許響應報文通過其服務端口離開本機;
INPUT鏈 iptables -I INPUT 1 -p tcp --dport 22 -m iprange --src-range 172.16.53.1-172.16.53.100 -mlimit --limit 2/minute -j ACCEPT OUTPUT鏈 iptables -I OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
4、拒絕TCP標誌位全部爲1及全部爲0的報文訪問本機;
INPUT鏈 iptables -I INPUT 1 -p tcp --tcp-flags ALL ALL -j DROP iptables -I INPUT 2 -p tcp --tcp-flags ALL -j DROP
5、允許本機ping別的主機;但不開放別的主機ping本機;
INPUT鏈 iptables -I INPUT 1 -p icmp --icmp-type 0 -j ACCEPT OUTPUT鏈 iptables -I OUTPUT 1 -p icmp --icmp--type 8 -j ACCEPT
二、tcp_wrapper類作業 基本應用
控制vsftpd僅允許172.16.0.0/255.255.0.0網絡中的主機訪問,但172.16.100.3除外;對所被被拒絕的訪問嘗試都記錄在/var/log/tcp_wrapper.log日誌文件中;
vim /etc/hosts.allow 添加 vsftpd: 172.16. EXCEPT 172.16.100.3 vim /etc/hosts.deny: vsftpd: ALL : spawn /bin/echo `date` %a try to access %d is refused ! >> /var/log/tcp_wrapper.log
三、腳本編程類(數組練習)
1、寫一個腳本:定義一個數組,數組元素爲/var/log目錄下所有以.log結尾的文件的名字;顯示每個文件的行數;
2、寫一個腳本,生成10個隨機數,並按從小到大進行排序;
3、寫一個腳本,能從所有同學中隨機挑選一個同學回答問題;進一步地:可接受一個參數,做爲要挑選的同學的個數;
四、sudo練習
1、授權centos用戶可以運行fdisk命令完成磁盤管理,以及使用mkfs或mke2fs實現文件系統管理;
2、授權gentoo用戶可以運行邏輯卷管理的相關命令
五、vsftpd及pam類
1、實現基於虛擬用戶認證的vsftpd功能;
2、虛擬用戶的賬號及密碼信息存儲在mysql當中。
六、高級應用類(中級班選做,高級班必做)
1、一共3臺服務器,請合理安排資源分配;
2、通過Nginx的反向代理實現LNMP架構的負載均衡,後端服務內容爲wordpress論壇,要求訪問任何一臺後端web服務器,都能獲取一致的最新數據;
3、後端nginx和php分離。
待更新