引自 http://blog.panyaya.com/2010/12/iptables.html
1. 觀察目前iptables設定
# iptables -L -n
2. 打開Forward
# echo "1" > /proc/sys/net/ipv4/ip_forward
3. 清除所有iptables規則
清除預設表filter中,所有規則鏈中的規則
# iptables -F
清除預設表filter中,使用者自訂鏈的規則
# iptables -X
清除mangle表中,所有規則鏈中的規則
# iptables -F -t mangle
清除mangle表中,使用者自訂鏈的規則
# iptables -t mangle -X
清除nat表中,所有規則鏈中的規則
# iptables -t nat -F
清除nat表中,使用者自訂鏈的規則
# iptables -t nat -X
參數說明
-F: 清除所有的已訂定的規則
-X: 清除所有使用者建立的規則
-Z: 將所有的chain的計數與流量統計都歸零
4. 選擇Policy
# iptables [-t tables] [-P] [INPUT,OUTPUT,FORWARD | PREROUTING,OUTPUT,POSTROUTING] [ACCEPT,DROP]
參數說明
-P: 定義政策
INPUT: 封包為輸入主機的方向
OUTPUT: 封包為輸出主機的方向
FORWARD: 封包為不進入主機而向外再傳輸出去的方向
PREROUTING: 在進入路由之前進行的工作
OUTPUT: 封包為輸出主機的方向
POSTROUTING: 在進入路由之後進行工作
設定全部丟棄
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
設定全部接受
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
一般設定
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -t nat -P PREROUTING ACCEPT
# iptables -t nat -P OUTPUT ACCEPT
# iptables -t nat -P POSTROUTING ACCEPT
2011年4月22日 星期五
iptables服務先關閉
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P OUTPUT DROP
再依你的需求一條一條的加進你的rule,一邊加邊測試
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING DROP
iptables -t nat -P POSTROUTING DROP
iptables -t nat -P OUTPUT DROP
再依你的需求一條一條的加進你的rule,一邊加邊測試
2011年4月21日 星期四
iptable限流量
linux下通過iptables限制流量,簡單,實用。首先需要將這台機器配置成閘道。
1.配置iptables轉發
2.限速腳本
vi /root/xiansu.sh
#!/bin/bash
/sbin/iptables -F FORWARD
#限制網段
for ((i = 1; i < 253; i++)) do
/sbin/iptables -A FORWARD -s 192.168.2.$i -m limit \
--limit 60/s -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.2.$i -j DROP
done
#限制單個ip
/sbin/iptables -A FORWARD -s 192.168.1.135/32 -m limit \
--limit 60/s -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.135/32 -j DROP
2.增加執行權限:
chmod+x /root/xiansu.sh
當流量小於60/s的時候,iptables 接受並轉發。當流量大於60/s 的時候,iptables丟棄數據包。
1.配置iptables轉發
2.限速腳本
vi /root/xiansu.sh
#!/bin/bash
/sbin/iptables -F FORWARD
#限制網段
for ((i = 1; i < 253; i++)) do
/sbin/iptables -A FORWARD -s 192.168.2.$i -m limit \
--limit 60/s -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.2.$i -j DROP
done
#限制單個ip
/sbin/iptables -A FORWARD -s 192.168.1.135/32 -m limit \
--limit 60/s -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.135/32 -j DROP
2.增加執行權限:
chmod+x /root/xiansu.sh
當流量小於60/s的時候,iptables 接受並轉發。當流量大於60/s 的時候,iptables丟棄數據包。
2011年1月28日 星期五
iptables
iptables -L 查看目前的規則
設定簡易的防火牆會用到filter這個table
設定NAT會用到nat這個table
下iptables指令,沒有特別指定table時,會使用filter這個table。
特別要注意的是,iptable的rule具有優先順序。
一旦遇到符合的規則,將不會再往下比對。
以下是相當簡單的範例,存成檔案並設定成可執行。之後就不用一次一次打了。
將該檔案的完整路徑放到 /etc/rc.local 這個檔案中,使得開機之後可以自動執行。
作用是讓內部網路通行。除了部份允許的封包之外,阻擋外部進來的封包。
#!/bin/sh
##### iptables.rule #####
EIF="eth0" # 對外的網路介面
IIF="eth1" # 對內的網路介面
INNET="172.16.0.0/24" # 內部子網域
# forwarding
# 讓內部網路的封包可以轉送到外部
echo "1" > /proc/sys/net/ipv4/ip_forward
# flush all rules
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# 定義 policy
# Policy指的是當進來的封包不屬於rule中的任何一條時,所預設的動作。
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 讓主機主動建立的連線可以進來
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 設定主機上提供的服務可讓外部網路存取
iptables -A INPUT -i $EIF -p tcp --dport 22 -j ACCEPT # ssh
iptables -A INPUT -i $EIF -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i $EIF -p tcp --dport 80 -j ACCEPT # http
# ... 其餘省略
# NAT
iptables -t nat -A POSTROUTING -o $EIF -s $INNET -j MASQUERADE
參考資料:
netfilter - iptables
鳥哥的Linux私房菜 - Linux 防火牆與NAT主機
設定簡易的防火牆會用到filter這個table
設定NAT會用到nat這個table
下iptables指令,沒有特別指定table時,會使用filter這個table。
特別要注意的是,iptable的rule具有優先順序。
一旦遇到符合的規則,將不會再往下比對。
以下是相當簡單的範例,存成檔案並設定成可執行。之後就不用一次一次打了。
將該檔案的完整路徑放到 /etc/rc.local 這個檔案中,使得開機之後可以自動執行。
作用是讓內部網路通行。除了部份允許的封包之外,阻擋外部進來的封包。
#!/bin/sh
##### iptables.rule #####
EIF="eth0" # 對外的網路介面
IIF="eth1" # 對內的網路介面
INNET="172.16.0.0/24" # 內部子網域
# forwarding
# 讓內部網路的封包可以轉送到外部
echo "1" > /proc/sys/net/ipv4/ip_forward
# flush all rules
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# 定義 policy
# Policy指的是當進來的封包不屬於rule中的任何一條時,所預設的動作。
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 讓主機主動建立的連線可以進來
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 設定主機上提供的服務可讓外部網路存取
iptables -A INPUT -i $EIF -p tcp --dport 22 -j ACCEPT # ssh
iptables -A INPUT -i $EIF -p udp --dport 22 -j ACCEPT
iptables -A INPUT -i $EIF -p tcp --dport 80 -j ACCEPT # http
# ... 其餘省略
# NAT
iptables -t nat -A POSTROUTING -o $EIF -s $INNET -j MASQUERADE
參考資料:
netfilter - iptables
鳥哥的Linux私房菜 - Linux 防火牆與NAT主機
訂閱:
文章 (Atom)