LINUX下的iptables
iptables有三種鏈
1:INPUT (進來的鏈)
2:OUTPUT(出去的鏈)
3:FORWARD(轉發的鏈)
iptables -A INPUT -p icmp -j DROP
-A(添加一個鏈) -p 協議 -j(添加動作) 說明添加一個進來的鏈。協議是icmp動作拒絕。
iptables -L -n (用樹形結構來看一下iptables的設置)
iptables -F (清空iptables的設置) 後面也可以加上INPUT 或者是OUTPUT
iptables --help | more (察看iptables的幫助)
iptables -L -n --line-numbres(察看iptables規則的編號)
iptables -A INPUT -p tcp -d 192.168.0.123 --dport 21 -j DROP
這句話是拒絕到本機的21端口。可以分析到目的地址是本機的192.168.0.123
目的端口是本機的21的端口 -d(目的地址) --dport(目的端口)。
下面我們來做一個實驗來講一下具體的配置。
例:假如我們服務器想配置一個WEB服務器。我們爲了日後的維護。還要把SSHD打開
1:首先把所有規則DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
P爲大寫
2 iptables -A INPUT -p tcp -d 192.168.0.123 --dport 22 -j ACCEPT
因爲想要別人連我們的22 目的地址爲本機的192.168.0.123 目的端口 22
3 iptables -A OUTPUT -p tcp -s 192.168.0.123 --sport 22 -j ACCEPT
我們還要給返回數據包那麼源地址是本機的192.168.0.123 源端口22
4 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
外面通過INPUT鏈來訪問本機的80端口,本機是目的地址 放開本機的IP和80端口
5 iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
本機還要返回數據包 ,通過OUTPUT鏈出去。源地址爲本機 源端口爲本機的80
6 iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
還要把DNS放開,不然在DNS解析的時候會出現超時。做爲客戶端我們OUTPUT鏈出去
目的端口爲udp的53 這裏能解析服務器了。
7 iptables -A INPUT -p udp --sport 53 -j ACCEPT
對方接到包的時候返回包的時候INPUT的鏈進來 源地址端口爲UDP 53
8 如果本機既是客戶機又是服務器的時候。要加上
iptables -A INPUT -p udp --dport 53 -j ACCEPT
做爲服務器能夠解析INPUT進來的包 目的地址爲53
iptables -A OUTPUT -P udp --sport 53 -j ACCEPT
做爲服務器OUTPUT出去的包要經過源地址的 udp 53 端口
9 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
這樣做可以讓本機的迴環設備可以使用
10 iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j
ACCEPT
爲了安全我們在OUTPUT鏈中設置爲只有連過的包我們還通過。
-m(添加)與本機22端口 匹配的條件的出去
我們把iptables -A OUTPUT -p tcp -s 192.168.0.123 --sport 22 -j ACCEPT
這個不安全的包刪除掉。
iptables -D OUTPUT 1
11 iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
同樣把iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT 刪除掉
iptables -D OUTPUT 2
12 如果做爲22的客戶端
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -P tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
13 service iptables save(保存設置)
----------------------------------------------------------------------
我們想要局域網上網
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT (局域網去訪問互聯網)
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT (互聯網訪問局域網)
還要把/proc/sys/net/ipv4/ip_forward的值改爲1
也可以編輯一下/etc/sysctl.conf配置文件,在ipv4這一行把0改成1
SNAT :
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-soure 192.168.0.1
DNAT:
iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dport 80 -j DNAT--to-destination 192.168.0.1
我們用編腳本的方法來做一個
在BIN下面
1 touch adsl(adsl是文本文件)
chmod a+x adsl(其他人給予可執行權限)
vi adsl
#!/bin/bash
adsl-stop
adsl-start
echo "1" > /proc/sys/net/ipv4/ip_forward
route add default ppp0
/sbin/iptables -F (清空防火牆)
/sbin/iptables -t nat -F (清空NAT)
/sbin/depmod -a (加載所有的模塊)
/sbin/modprobe ip_tables (加載IP表)
/sbin/modprobe iptable_nat (加載iptable_nat)
/sbin/modprobe ip_nat_ftp (支持FTP)
/sbin/modprobe ipt_LOG(記錄日誌)
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE (IP僞裝代動局域網上網)
放在cd /etc/rc.d/
vi rc.local
加入 /bin/adsl
LINUX下的iptables
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux核心技能与应用
wy53780
2020-04-23 14:02:05
Python與家國天下
豌豆花下貓
2019-02-24 22:22:40
linux上安裝Docker(非常簡單的安裝方法)
幸運券發放
2019-02-24 19:38:01
2019年Java面試-併發容器篇
王知無
2019-02-24 15:12:46
淺淡個人學習嵌入式Linux過程
wx5c317e5b736d2
2019-02-24 13:31:30
DHCP服務原理與搭建(Linux系統+路由器,二選一方案)
wx5c7174443c6f9
2019-02-24 13:23:18
Redis安裝與配置
劉遄
2019-02-24 13:12:51
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38