iptables

定義:工作于網(wǎng)絡(luò)或主機邊緣羹呵,對進出本網(wǎng)絡(luò)或本主機的網(wǎng)絡(luò)報文按照事先設(shè)定好的匹配規(guī)則進行檢查或衡,對能夠被規(guī)則所匹配的報文按照規(guī)則定義的處理機制進行處理的組件
1较沪、處理tcp逻翁、ip數(shù)據(jù)是工作在內(nèi)核層次上的,所以linux處理防火墻必須在內(nèi)核實現(xiàn)氧急,2.0之前沒有實現(xiàn)
2颗胡、用于匹配報文的 有 源ip,目標ip吩坝,源端口毒姨,目標端口,TCP钉寝。防火墻工作再傳輸層和網(wǎng)絡(luò)層
3弧呐、越是工作在低層的防火墻(網(wǎng)絡(luò)層),性能越好嵌纲,越是高層的防火墻(應(yīng)用層)泉懦,越能理解實際需求
4、并不是有防火墻就可以萬無一失了疹瘦,還應(yīng)該有入侵防御系統(tǒng)
5、進入電腦的5個布局位置
6巡球、默認規(guī)則是關(guān)閉的言沐,還需要寫關(guān)閉的規(guī)則,規(guī)則是有次序的酣栈。規(guī)則越嚴格的险胰,越早判斷越好
7、iptables 就是寫這些規(guī)則并管理這些規(guī)則的次序的一個管理軟件矿筝,最后還是要經(jīng)過netfilter來實現(xiàn)起便,netfilter的實現(xiàn)離不開iptables的規(guī)則,所以防火墻的實現(xiàn)對于他們倆是相輔相成的
8、規(guī)則的功能(四個表榆综,放置在5個檢查點)

        filter:過濾
        nat:轉(zhuǎn)換
          SNAT:源地址ip
          DNAT:目標地址ip
          PAT:端口轉(zhuǎn)換(一般目標端口)
        mangle:把報文首部拆開妙痹,改標志位等,改完后再封裝起來(5個位置都可以)
        raw:
          在一個地方實現(xiàn)兩個功能鼻疮,比如filter 和 mangle 

9怯伊、五個內(nèi)置鏈:(每個點可以放不同功能)

    PREROUTING
    INPUT
    FORWARD
    OUTPUT
    POSTROUTING

10、在寫iptables要指明那個點判沟,和那個功能(表)
11耿芹、iptables

    大寫字母選項:子命令
    小寫字母選項:定義匹配標準及其它:
        -t{filter|nat|mangle|raw}默認filter
        -L:list  不加-t 是默認的filter的chain
        -n:數(shù)字格式,不做反向解析顯示ip和端口挪哄,如果不加吧秕,都會反解析為主機名和服務(wù)名
        -v:詳細信息。(顯示兩個計數(shù)器 package和bytes)
        --line-numbers:顯示鏈中規(guī)則的行號
        -x:顯示精確值迹炼,不要做單位換算
    其他子命令:
        管理鏈:
            -F:清空鏈 
                   iptables -t filter -F INPUT 清空filter表的INPUT鏈
                   iptables -F 清空filter(默認)表的所有鏈
            -P:設(shè)定默認策略
                   iptables -t filter -P INPUT DROP 設(shè)定INPUT鏈的默認策略為丟棄{ACCEPT|DROP}
            -N:新建一條自定義鏈(只能附加在內(nèi)置鏈才能工作) iptables -N FILTER_WEB
            -X:刪除自定義空鏈(刪除之前先清空)
            -Z:重置計數(shù)器(-v 顯示的那個計數(shù)器)
            -E:重命名自定義鏈
                管理規(guī)則:
                    -A:append 添加到尾部
                    -I[n]:插入為第n條砸彬,原來的第n條變?yōu)?1條
                    -D[n]:刪除第n條規(guī)則
                    -R[n]:替換第n條規(guī)則

12、表和鏈對應(yīng)的關(guān)系:

    filter:INPUT疗涉,F(xiàn)ORWARD拿霉,OUTPUT
    nat:PREROUTING,POSTROUTING咱扣,OUTPUT
    mangle:PREROUTING绽淘,POSTROUTING云挟,OUTPUT凳枝,INPUT,F(xiàn)ORWARD
    raw:PREROUTING硅瞧,OUTPUT

13偏瓤、每個鏈都有其默認策略杀怠,policy ACCEPT 通常只需要修改filter表的默認策略
14、規(guī)則和默認策略都有兩個計數(shù)器:

    package:被本規(guī)則所匹配到的包的個數(shù)
    bytes:所有被匹配到的包的大小和

15厅克、編寫規(guī)則語法:

    目標:DROP(上策)赔退、ACCEPT、REJECT证舟、RETURN(自定義鏈返回主鏈)
        REDIRECT:端口重定向  
        DNAT:目標地址轉(zhuǎn)換 
        SNAT:源地址轉(zhuǎn)換 
        LOG:記錄日志(--log-prefix "日志前綴") 
        MARK:標記(負載均衡要用) 也可以是自定義鏈(要返回RETURN)
        iptables [-t 表] 大寫選項字命令 [規(guī)則號] 鏈名 匹配標準 -j 目標   
    匹配標準:
        通用匹配:
            -s|--src|--source [!] IP/NETWORK  嘆號表示取反
            -d|--dst|--destination [!] IP/NETWORK
                例:iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -j ACCEPT
            設(shè)定默認:iptables -P INPUT DROP
                service iptables save 將目前rules寫入到配置文件中 /etc/sysconfic/iptables
                iptables-save>/root/iptables.rules 將目前rules寫入到重定向的文件中
                iptables-restore < /path/to/iptables.rules 生效文件中的規(guī)則
            -i incoming_interface:指定數(shù)據(jù)報文流入接口 INPUT FORWARD PREROUTING
            -o outing_interface:指定數(shù)據(jù)報文流出接口 OUTPUT FORWARD POSTROUTING
                iptables -R INPUT 1 -s 172.16.0.0/16 -d 172.16.100.1 -i eth0 -j ACCEPT
            -p {tcp|udp|icmp}明確說明哪一種協(xié)議
        擴展匹配:要使用     -m 擴展名稱來引用硕旗,而每個模塊一般都具有自己的專用選項,這些選項中女责,有些是必備的
            隱含擴展
                -p tcp
                    --sport 連續(xù)端口漆枚,不能間斷,而且可以取反
                    --dport 連續(xù)端口抵知,不能間斷墙基,而且可以取反
                    --tcp-flags 要檢查的標志  必須為1的標記  (除了為1的標記软族,其他的標記都是0)
                        --tcp-flags SYN,ACK,RST,FIN  SYN
                        (前邊是一個要檢查的標記的表,后邊是必須為1的標記残制,剩下的要必須為0 簡寫:--syn) 
                        ALL 所有標志位 NONE 所有標志位都為0
                            例:放行對web服務(wù)器的訪問:
                                iptables -A INPUT -d 192.168.159.12 -p tcp --dport 80 -j ACCEPT
                                iptables -A OUTPUT -s 192.168.159.12 -p tcp --sport 80 -j ACCEPT
                -p udp
                    --sport
                    --dport 用法機制和tcp一樣的
                        例如: 本地DNS服務(wù)器立砸,INPUT OUTPUT 默認為DROP,本機地址172.161.100.1,要本地客戶端做遞歸查詢
                            iptables -A INPUT -d 172.16.100.1 -p udp --dport 53 -j ACCEPT
                            iptables -A OUTPUT-s 172.16.100.1 -p udp --sport 53 -j ACCEPT
                            iptables -A OUTPUT-s 172.16.100.1 -p udp --dport 53 -j ACCEPT
                            iptables -A INPUT -d 172.16.100.1 -p udp --sport 53 -j ACCEPT
                -p icmp
                    --icmp-type
                        請求:8  響應(yīng):0
                        例:放行192.168.159.0/24 網(wǎng)段的主機可以ping 本機痘拆,本機也可以ping 0/24的所有主機
                            iptables -A OUTPUT -s 192.168.159.12 -d 192.168.159.0/24 -p icmp --icmp-type 8 -j ACCEPT
                            iptables -A INPUT -s 192.168.159.0/24 -d 192.168.159.12 -p icmp --icmp-type 0 -j ACCEPT
                            iptables -A OUTPUT -s 192.168.159.12 -d 192.168.159.0/24 -p icmp --icmp-type 0 -j ACCEPT
                            iptables -A INPUT -s 192.168.159.0/24 -d 192.168.159.12 -p icmp --icmp-type 8 -j ACCEPT 
            顯式擴展
                -m state --state
                    NEW仰禽,ESTABLISHED,RELATED纺蛆,INVALID
                    ftp服務(wù)器需要裝載吐葵,nf_conntrack_ftp模塊,可以使用modprobe命令桥氏,也可以編輯/etc/sysconfig/iptables-config文件實現(xiàn)
                -m mulitport:可以指定15個以內(nèi)的離散端口 21-23,80
                    --source-ports
                    --destination-ports
                    --ports
                        iptables -I INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m state --state NEW -m multiport --destination-prots 21,22,80 -j ACCEPT
                -m iprange:指定匹配的ip地址范圍
                    172.16.100.1-172.16.109.254
                    --src-range
                    --dst-range
                -m limit 
                    --limit 20/min 
                    --limit-burst 2
                        iptables -I INPUT 2 -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m state --state NEW -m limit --limit 12/min --limit-burst 2  設(shè)置每分鐘最多的次數(shù)温峭,還有一次性進來的次數(shù)
                -m string 報文中字符串匹配 應(yīng)用層
                    --string '' --algo kmp/bm
                        iptables -I OUTPUT 1 -d 172.16.0.0/16 -s 172.16.100.1 -p tcp --sport 80 -m string --string 'hello' --algo kmp -j REJECT http服務(wù)器返回字符串包含hello就不會被放行
                -m time
                    --datestart
                    --datestop
                    --timestart
                    --timestop
                    --weekdays
                    --monthdays
                -m connlimit 
                    --connlimit-above [num] 限制一個客戶端最高發(fā)起的連接數(shù)
                        iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 80 -m connlimit ! --connlimit-above 5 -j ACCEPT
                -m hashlimit
                    原來的limit 只能限制總共訪問的速率,而不能限制單個ip的訪問速度字支,hashlimit 可以限制每個ip的速率
                -m recent
                    利用iptables的recent模塊來抵御DOS攻擊:22凤藏,建立一個列表,保存有所有訪問過指定服務(wù)的客戶端IP
                        iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
                    建立一個名字為SSH的列表堕伪,存儲新建立的訪問22端口的ip地址
                        iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --uptate --seconds 300 --hitcount 3 --name SSH -j LOG --log-prefix "SSH Attack" 先記錄日志然后在DROP 日志放在var/log/message下
                        iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --uptate --seconds 300 --hitcount 3 --name SSH -j DROP
                    當用戶訪問22端口的時候會給列表中的字段自動更新揖庄,當在300秒之內(nèi),計數(shù)器打到3以后欠雌,就會拒絕此ip的訪問(默認拒絕5分鐘蹄梢?)

練習:

     1、限制本地主機的web服務(wù)器在周一不允許訪問富俄;且新請求的速率不能超過100個每秒禁炒;web服務(wù)器包含了admin字符串的頁面不允許訪問;web服務(wù)器僅允許響應(yīng)報文離開本機霍比;
     2幕袱、在工作時間,既周一到周五的8:30-18:00悠瞬,開放本機的ftp服務(wù)給172.16.0.0網(wǎng)絡(luò)中的主機訪問们豌;數(shù)據(jù)下載請求的次數(shù)每分鐘不得超過5個;
     3浅妆、開放本機的ssh服務(wù)給172.16.x.1-172.16.x.100中的主機玛痊,x為你的座位號,新請求建立的速率一分鐘不得超過2個狂打;僅允許相應(yīng)報文通過其服務(wù)端口離開本機;
     4混弥、拒絕TCP標志位全部為1及全部為0的報文訪問本機趴乡;
     5对省、允許本機ping別的主機;但不開放別的主機ping本機晾捏;
SNAT:代理內(nèi)部客戶端訪問外部網(wǎng)絡(luò)蒿涎。在iptables的POSTROUTING
    -j SNAT --to-source IP 適用static地址
    -j MASQUERADE 自動將source ip 設(shè)置為外網(wǎng)ip(撥號)
DNAT:將內(nèi)部服務(wù)器發(fā)布至外部網(wǎng)絡(luò)。在iptables的PREROUTING
    -j DNAT --to-destination IP:port
        不但能轉(zhuǎn)換目標地址惦辛,還能映射目標端口
        iptables -t nat -A PREROUTING -d 192.168.10.254 -p tcp --dport 22 -j DNAT --to-destination 172.16.100.17  
            轉(zhuǎn)換目標地址 然后就是在FORWARD鏈上加數(shù)據(jù)過濾規(guī)則就可以打到既轉(zhuǎn)發(fā)又過濾的效果
        映射目標端口
            iptables -t nat -A PREROUTING -d 192.168.10.254 -p tcp --dport 80 -j DNAT  --to-destination 172.16.100.177:8080
                (將真實服務(wù)器的80端口改成8080劳秋,然后訪問前一個主機的80)
            iptables -t nat -A PREROUTING -d 192.168.10.254 -p tcp --dport 6789 -j DNAT --to-destination 172.16.100.17:3306
                (將mysql服務(wù)器的真實3306端口隱藏起來,讓用戶去訪問前一個主機的6789端口)
            iptables -A FORWARD -d 172.16.100.17 -p tcp --dport 3306 -m state --state ESTABLISHED
                (放行轉(zhuǎn)換了端口的數(shù)據(jù))
        主機實現(xiàn)不同網(wǎng)絡(luò)間的轉(zhuǎn)發(fā) 
            /proc/sys/net/ipv4/ip_forward 設(shè)置為1
            iptables -t nat -A POSTROUTING -s 192.168.117.0/24 -j SNAT --to-source 192.168.253.2
                將所有192.168.117.0網(wǎng)段的訪問外網(wǎng)的請求的源地址改成192.168.253.2
            iptables -P FORWARD DROP 報文轉(zhuǎn)發(fā)全部拒絕
FTP設(shè)置防火墻
    ftp鏈接的默認模式為被動模式
    主動模式配置
        port_enable=yes
        connect_from_port_20=YES
        iptables需要開啟21端口的訪問權(quán)限
            iptables -I INPUT -p tcp --dport 22 -j ACCEPT
            iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    被動模式設(shè)置
        1胖齐、設(shè)置開放端口
            iptables -I INPUT -p tcp --dport 21 -j ACCEPT
            /etc/vsftpd/vsftpd.conf
                pasv_min_port=50000
                pasv_max_port=60000
            iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT
        2玻淑、加入內(nèi)核追蹤模塊
            iptbales -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
            iptables -I INPUT -p tcp --dport 21 -j ACCEPT
            modprobe nf_conntrack_ftp
            vim /etc/sysconfig/iptables-config(開機自動加載)
            IPTABLIS_MODULES="nf_conntrack_ftp"
NAT
    SNAT
        iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232
    DNAT
        iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呀伙,隨后出現(xiàn)的幾起案子补履,更是在濱河造成了極大的恐慌,老刑警劉巖剿另,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箫锤,死亡現(xiàn)場離奇詭異,居然都是意外死亡雨女,警方通過查閱死者的電腦和手機谚攒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氛堕,“玉大人馏臭,你說我怎么就攤上這事〔砝蓿” “怎么了位喂?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乱灵。 經(jīng)常有香客問我塑崖,道長,這世上最難降的妖魔是什么痛倚? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任规婆,我火速辦了婚禮,結(jié)果婚禮上蝉稳,老公的妹妹穿的比我還像新娘抒蚜。我一直安慰自己,他們只是感情好耘戚,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布嗡髓。 她就那樣靜靜地躺著,像睡著了一般收津。 火紅的嫁衣襯著肌膚如雪饿这。 梳的紋絲不亂的頭發(fā)上浊伙,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音长捧,去河邊找鬼嚣鄙。 笑死,一個胖子當著我的面吹牛串结,可吹牛的內(nèi)容都是我干的哑子。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼肌割,長吁一口氣:“原來是場噩夢啊……” “哼卧蜓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起声功,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤烦却,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后先巴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體其爵,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年伸蚯,在試婚紗的時候發(fā)現(xiàn)自己被綠了摩渺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡剂邮,死狀恐怖摇幻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挥萌,我是刑警寧澤绰姻,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站引瀑,受9級特大地震影響狂芋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜憨栽,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一帜矾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屑柔,春花似錦屡萤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唧瘾,卻和暖如春措译,著一層夾襖步出監(jiān)牢的瞬間迫像,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工瞳遍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人菌羽。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓掠械,卻偏偏與公主長得像,于是被迫代替她去往敵國和親注祖。 傳聞我的和親對象是個殘疾皇子猾蒂,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.安全技術(shù) (1)入侵檢測與管理系統(tǒng)(Intrusion Detection Systems): 特點是不阻斷任...
    尛尛大尹閱讀 2,460評論 0 2
  • 1 前言 防火墻(Firewall),就是一個隔離工具,工作于主機或者網(wǎng)絡(luò)的邊緣,對于進出本主機或本網(wǎng)絡(luò)的報文,根...
    魏鎮(zhèn)坪閱讀 6,945評論 1 23
  • iptables俗稱防火墻,或許我們已經(jīng)不在陌生是晨,但是作為openstack基礎(chǔ)肚菠,這里還是對其做一些補充,了解更多...
    ximitc閱讀 1,790評論 0 8
  • 1.1 防火墻的概念 Firewall(防火墻):組件罩缴,工作在網(wǎng)絡(luò)邊緣(主機邊緣)蚊逢,對進出網(wǎng)絡(luò)數(shù)據(jù)包基于一定的規(guī)則...
    扎啤閱讀 2,059評論 0 0
  • 秀才不才閱讀 1,023評論 0 0