iptables學習筆記

 

Netfilter:是Linux操作系統核心層內部的一個數據包處理模塊。

 

Hook point:數據包在Netfilter中的掛載點。(PRE_ROUTIN

 

,INPUT,OUTPUT,FORWARD,POST_ROUTING

 

iptables 規則組成:四張表+五條鏈(Hook point+規則

 

四張表:filter表、nat表、mangle表、raw

五條鏈:INPUT OUTPUT FORWARD PREROUTING POSTROUTING

圖片1.png 

PREROUTIN 如果流量localhost(本地) ——》INPUT

如果流量不是本地——》FORWARD

 

POSTROUTIN

 

規則:

數據包訪問控制:ACCEPT(接收)、DROP(丟棄)、REJECT(拒絕)

 

數據包改寫:SNAT(源地址)、DNAT(目標地址)

 

信息紀錄:LOG

 

圖片2.png 

Command:

-A :追加新紀錄

-D:刪除

-L:顯示當前規則

-F:清楚現有規則

-P:設置默認規則

-I:插入新規則

 

Parameter&xmatch

-P 協議

-s 源地址

-d 目標地址

–sport 源端口

–dport 目標端口

–dports 目標端口段

-m tcp|state|multiport

Target

-j ACCEPT 運行通過

DROP 丟棄

REJECT 拒絕

DNAT

SNAT

 

實例:

Iptables 配置場景一

規則1、對所有的地址開放本機tcp(80、22、10-21)端口的訪問

規則2、允許對所有的地址開放本機的基于ICMP協議的數據包訪問

規則3、其他未被允許的端口規則禁止訪問

Iptables -nL

Iptables -F

Iptables -I INPUT -p tcp –dport 80 -j ACCEPT

Iptables -I INPUT -p tcp –dport 22 -j ACCEPT

Iptables -I INPUT -p tcp –dport 1021 ACCEPT

Iptables -I INPUT -p icmp -j ACCEPT

Iptables -A INPUT -j REJECT

場景一存在的問題:

1、本機無法訪問本機

Iptables -I INPUT -i lo -j ACCEPT

2、本機無法訪問其他主機

Iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

補充:在場景一的基礎上,只允許192.168.0.100訪問本機的httpd服務

Iptables -D INPUT -p tcp –dport 80 -j ACCEPT

Iptables -I INPUT -p tcp -s 192.168.0.100 –dport 80 -j ACCEPT

 

Iptables 配置場景二

 

1、ftp主動模式下iptables配置

圖片3.png 

圖片4.png 

圖片5.png 

2、ftp被動模式下iptables配置

圖片6.png 

圖片7.png 

圖片8.png 

 

Iptables 配置場景三

要求一:員工作公司內部(192.168.1.0/24,192.168.2.0/24)能訪問服務器的任何服務

要求二:當員工出差例如在上海,通過VPN連接到公司外網(員工)===撥號到===VPN服務器++=》內網FTP,SAMBA,NFS,SSH

要求三:公司有一個門戶網站需要允許公網訪問

圖片9.png 

圖片10.png 

 

iptables -F

iptables -I INPUT -i lo -j ACCEPT

iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

iptables -A INPUT -p tcp –dport 1723 -j ACCEPT

iptables -I INPUT -p icmp -j ACCEPT

iptables -A INPUT -j REJECT

iptables -nL

/etc/init.d/iptables save

 

 

 

圖片11.png 

Snat

 

 

Nat轉發 設置/etc/sysctl.conf    net.ipv4.ip_forward=1 默認為0

圖片12.png  

 

Iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT –to 10.10.188.232

 

Dnat

圖片13.png 

Iptables -t nat -A PREROUTING -d 10.10.188.233 -p tcp –dport 80 -j DNAT –to 10.10.177.232:80

 

 

圖片14.png 

圖片15.png iptables -I INPUT -p TCP –syn –dport 80 -m connlimit –connlimit-above 100-j REJECT

 

圖片16.png 

場景:限制10icmp包通個,如果大于10個包就現在速度 每分鐘5

 

Iptables -A INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT

Iptables -A INPUT -p icmp -j DROP

 

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

(0)
luobocailuobocai
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相關推薦

  • 內核編譯

    下載內核并解壓:tar -xvf linux-4.14.9.tar.xz -C ./linux/     接下來是 ? ?make ? config ?。 (具體參照 ? ?《make ? config ?的幾種類型》) 一般采用??# ?make ? menuconfig?? 的方式 是這個樣子的: 此處有可能需要幾個包,選擇最簡單的y…

    2018-01-01
  • do some test

    1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。     三次握手:         a(syn-send) -> send syn -> b(listen)         a(syn-send) <- receive …

    Linux干貨 2016-06-12
  • Homework Week-7 RAID及bash編程

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; fdisk /dev/sda n …

    Linux干貨 2016-09-26
  • 第七周:文件系統、raid、lvm和shell腳本練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@wlm ~]# fdisk /dev/sdb    #將/dev/sdb進行分區操作 D…

    Linux干貨 2016-11-07
  • 文件、目錄——Linux基本命令(7)

    1.     文件名規則 (1)文件名最長255個字節          (2)包括路徑在內文件名稱最長4095個字節 (3)文件顏色          藍色-…

    2017-07-17
  • Shell腳本編程3

    Shell腳本編程3  一、雜項知識整理 1、select與case select是個無限循環,因此要記住用break命令退出循環,或用exit命令終止腳本。也可以按ctrl+c退出循環,自動生成數字的選擇項,適合創建菜單。 select經常和case聯合使用。與for循環類似,可以省略in LIST,此時使用位置參量$1、$2等傳遞參數。 cas…

    Linux干貨 2016-08-19
欧美性久久久久