馬哥教育21期網絡班—第14周課程+練習——>iptables 練習

系統的INPUT和OUTPUT默認策略為DROP;

iptables -P INPUT DROP
iptables -P OUTPUT DROP
[root@localhost ~]# iptables -L -n 
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination

1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機;

iptables -A INPUT -d 10.0.0.2 -p tcp --dport 80 -m time --weekdays Mon -m limit --limit 100/second -m string --algo bm --string "admin" -j DROP 
iptables -I OUTPUT -s 10.0.0.2 -p tcp --sport 80 -m string --algo bm --string "admin" -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT 
[root@localhost html]# iptables -L -n 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            10.0.0.2            tcp dpt:80 TIME on Mon limit: avg 100/sec burst 5 STRING match "admin" ALGO name bm TO 65535 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  10.0.0.2             0.0.0.0/0           tcp spt:80 STRING match "admin" ALGO name bm TO 65535 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state ESTABLISHED

2、在工作時間,即周一到周五的8:30-18:00,開放本機的ftp服務給172.16.0.0網絡中的主機訪問;數據下載請求的次數每分鐘不得超過5個;

iptables -I INPUT -p tcp -d 172.16.0.0 -m time --weekdays 1,2,3,4,5 --timestart 8:30 --timestop 18:00 -m limit --limit-burst 5  -m multiport  --dports 20,21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -L -n Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            172.16.0.0          TIME from 08:30:00 to 18:00:00 on Mon,Tue,Wed,Thu,Fri limit: avg 3/hour burst 5 multiport dports 20,21 state NEW,ESTABLISHED 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state ESTABLISHED

3、開放本機的ssh服務給172.16.x.1-172.16.x.100中的主機,x為你的座位號,新請求建立的速率一分鐘不得超過2個;僅允許響應報文通過其服務端口離開本機;

iptables -I INPUT -p tcp --dport 22 -m iprange --src-range 172.16.100.1-172.16.100.100 -m limit --limit 2/minute -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -L -n 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 source IP range 172.16.100.1-172.16.100.100 limit: avg 2/min burst 5 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state ESTABLISHED

4、拒絕TCP標志位全部為1及全部為0的報文訪問本機;

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
[root@localhost ~]# iptables -L -n 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:0x3F/0x3F 
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:0x3F/0x00 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

5、允許本機ping別的主機;但不開放別的主機ping本機;

iptables -I INPUT  -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT  -p icmp --icmp-type 8 -j ACCEPT
[root@localhost ~]# iptables -L -n 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 0 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8

6、判斷下述規則的意義:

 # iptables -N clean_in
  自定義鏈---->clean_in
  # iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
  增加新規則---->丟棄廣播域的包
  # iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP
  增加新規則---->丟棄ping 172.16.255.255的包
  # iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP
  增加新規則---->丟棄syn標志不為1,鏈接狀態為新建鏈接的包
  # iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP
  丟棄tcp標志全部為1的報文
  # iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP
  丟棄tcp標志全部為0的報文
  # iptables -A clean_in -d 172.16.100.7 -j RETURN 
   在clean_in鏈中找不到匹配報文時回到主鏈
  # iptables -A INPUT -d 172.16.100.7 -j clean_in
  目標為172.16.100.7的報文交給clean_in處理
  # iptables -A INPUT  -i lo -j ACCEPT
  指定流入報文接口為lo
  # iptables -A OUTPUT -o lo -j ACCEPT
  指定流出報文接口為lo
  # iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 53,113,135,137,139,445 -j DROP
  指定流入報文接口為eth0,協議為tcp,目標端口為53,113,135,137,139,445的報文丟棄
  # iptables -A INPUT  -i eth0 -m multiport -p udp --dports 53,113,135,137,139,445 -j DROP
  指定流入報文接口為eth0,協議為udp,目標端口為53,113,135,137,139,445的報文丟棄
  # iptables -A INPUT  -i eth0 -p udp --dport 1026 -j DROP
  指定流入報文接口為eth0,協議為udp,目標端口為1026的報文丟棄
  # iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 1433,4899 -j DROP
  指定流入報文接口為eth0,協議為tcp,指定多個端口1433,4899,報文丟棄
  # iptables -A INPUT  -p icmp -m limit --limit 10/second -j ACCEPT
   限定ping速率為每秒10次

7、通過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.0.0/255.255.0.0 EXCEPT 172.16.100.3
vim /etc/hosts.deny
vsftpd:ALL :spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/tcp_wrapper.log

原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/52675

(0)
N21_ DominicN21_ Dominic
上一篇 2016-10-24
下一篇 2016-10-24

相關推薦

  • Linux中實現java和c語言打印Hello world小程序

    1、C語言實現 先確認linux系統中是否gcc編譯器,可以通過rpm -q gcc查詢系統已經安裝gcc軟件包,如果沒有安裝可以到系統自帶光盤里面安裝相應的安裝包軟件。 使用rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm安裝編譯器,安裝后再查詢確認已經成功 環境準備好了,我們就可以編寫C語言的代碼了,我們可以使用vim編輯器編寫第一…

    Linux干貨 2016-08-26
  • 銘記今天

        2016年10月19日,我做了一個很艱難的決定,選擇了馬哥24期網絡全程班,就算是沖動也好,無論對錯都要堅持下去。 從出來工作之后,一直做銷售這塊,雖然跟電腦有關,但是其中的艱苦只有自己明白。慢慢的年級上來了,手中沒有什么技術,做人生活,總覺得少了什么,總覺得自己以后會被社會淘汰,心一天一天著急。在后選擇了一個從來都沒有涉及的運維…

    Linux干貨 2016-10-19
  • 軟件包管理rpm和yum基本使用

    RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易于安裝,升級,間接提升了Linux的適用度。 rpm 執行安裝包 二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,…

    Linux干貨 2016-08-29
  • 第五周練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一小組括號的行,刑如:hello() 3、使用echo命令輸出一個絕對路徑,使用grep取出基名 4、找出ifconfig命令結果中的1-255之間的數字 5、查找/var目錄下屬主為root,且屬組為mai…

    2017-10-29
  • 磁盤管理

    設備類型分為字符設備和塊設備 主設備號用來標識設備類型,次設備號標識同一類型下的不同設備 硬盤設備命名: scsi,sata,sas,usb:/dev/sd 不同設備/dev/sda  /dev/sdb 同一設備不同分區:/dev/sda1,/dev/sdb2…… 硬盤: 一片磁盤的一面叫做盤面,一張盤片有兩個盤面 每個盤面有一個磁頭,最多有256…

    Linux干貨 2016-08-30
  • Linux文本搜索工具grep

    Linux文本搜索工具grep Linux文本搜索工具grep grep 基本正則表達式 egrep 擴展正則表達式 fgrep 簡介 grep(全稱Globally search a Regular Expression and Print,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,根據用戶指定的“模式(pattern)”對目標文本進行匹…

    2016-04-05

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-10-24 23:14

    排版很好,思路也很贊

欧美性久久久久