iptables简单应用
生活随笔
收集整理的這篇文章主要介紹了
iptables简单应用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
可以修改/etc/rc.d/boot.local讓規(guī)則重啟后也能生效,如:
/sbin/iptables -F
/sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -j DROP
/sbin/iptables -A INPUT -i eth0 -p udp -j DROP
iptables是一個(gè)鏈的方式從前往后判斷,如果前面的規(guī)則成立就不會(huì)往后繼續(xù),所以要注意順序,一般每行對(duì)應(yīng)一條規(guī)則。
-A是Append意思,也就是追加
-I是Insert意思,也就是插入
-F表示清除(即刪除)掉已有規(guī)則,也就是清空。
查看已有的規(guī)則,執(zhí)行命令:iptables -L -n
如(參數(shù)-L為list意思,-n表示以數(shù)字方式顯示IP和端口,不指定-n則顯示為名稱,如:http即80端口):
# 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 spt:443
ACCEPT ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? ?tcp spt:80
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
Chain FORWARD (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
Chain OUTPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination?
從可以看到:iptables有三種規(guī)則鏈(Chain),即INPUT、OUTPUT和FORWARD。
INPUT 用于指定輸入規(guī)則,比如外部是可以訪問本機(jī)的80端口
OUTPUT 用于指定輸出規(guī)則,比如本機(jī)是否可以訪問外部的80端口
FORWARD 用于指定端口轉(zhuǎn)發(fā)規(guī)則,比如將8080端口的數(shù)據(jù)轉(zhuǎn)到到80端口
-I和-A需要指定鏈(Chain)名,其中-I的鏈名后還需要指定第幾條(行)規(guī)則。
可通過-D參數(shù)刪除規(guī)則,有兩種刪除方式,一是匹配模式,二是指定第幾條(行)。
也可以通過-R參數(shù)修改已有規(guī)則,另外-L參數(shù)后也可以跟鏈(Chain)名,表示只列出指定鏈的所有規(guī)則。
-j參數(shù)后跟的是動(dòng)作,即滿足規(guī)則時(shí)執(zhí)行的操作,可以為ACCEPT、DROP、REJECT和REDIRECT等。
在iptables的INPUT鏈的第一行插入一條規(guī)則(可訪問其它機(jī)器的80端口):
iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
在iptables的INPUT鏈尾追加一條規(guī)則(可訪問其它機(jī)器的80端口):
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
如果要讓其它機(jī)器可以訪問本機(jī)的80端口,則為:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
插入前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ?
插入:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
插入后:
# 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 spt:80
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ?
追加前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0?
追加:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
追加后(ACCEPT將不能生效):
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0?
ACCEPT ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? ?tcp spt:80
/sbin/iptables -F
/sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp -j DROP
/sbin/iptables -A INPUT -i eth0 -p udp -j DROP
iptables是一個(gè)鏈的方式從前往后判斷,如果前面的規(guī)則成立就不會(huì)往后繼續(xù),所以要注意順序,一般每行對(duì)應(yīng)一條規(guī)則。
-A是Append意思,也就是追加
-I是Insert意思,也就是插入
-F表示清除(即刪除)掉已有規(guī)則,也就是清空。
查看已有的規(guī)則,執(zhí)行命令:iptables -L -n
如(參數(shù)-L為list意思,-n表示以數(shù)字方式顯示IP和端口,不指定-n則顯示為名稱,如:http即80端口):
# 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 spt:443
ACCEPT ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? ?tcp spt:80
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
Chain FORWARD (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
Chain OUTPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination?
從可以看到:iptables有三種規(guī)則鏈(Chain),即INPUT、OUTPUT和FORWARD。
INPUT 用于指定輸入規(guī)則,比如外部是可以訪問本機(jī)的80端口
OUTPUT 用于指定輸出規(guī)則,比如本機(jī)是否可以訪問外部的80端口
FORWARD 用于指定端口轉(zhuǎn)發(fā)規(guī)則,比如將8080端口的數(shù)據(jù)轉(zhuǎn)到到80端口
-I和-A需要指定鏈(Chain)名,其中-I的鏈名后還需要指定第幾條(行)規(guī)則。
可通過-D參數(shù)刪除規(guī)則,有兩種刪除方式,一是匹配模式,二是指定第幾條(行)。
也可以通過-R參數(shù)修改已有規(guī)則,另外-L參數(shù)后也可以跟鏈(Chain)名,表示只列出指定鏈的所有規(guī)則。
-j參數(shù)后跟的是動(dòng)作,即滿足規(guī)則時(shí)執(zhí)行的操作,可以為ACCEPT、DROP、REJECT和REDIRECT等。
在iptables的INPUT鏈的第一行插入一條規(guī)則(可訪問其它機(jī)器的80端口):
iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
在iptables的INPUT鏈尾追加一條規(guī)則(可訪問其它機(jī)器的80端口):
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
如果要讓其它機(jī)器可以訪問本機(jī)的80端口,則為:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
插入前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ?
插入:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
插入后:
# 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 spt:80
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ?
追加前:
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0?
追加:
# iptables -I INPUT 1 -p tcp --sport 80 -j ACCEPT
追加后(ACCEPT將不能生效):
# iptables -L -n
Chain INPUT (policy ACCEPT)
target ? ? prot opt source ? ? ? ? ? ? ? destination ? ? ? ??
DROP ? ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ??
DROP ? ? ? udp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0?
ACCEPT ? ? tcp ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? ?tcp spt:80
總結(jié)
以上是生活随笔為你收集整理的iptables简单应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java学习笔记7-1——注解与反射
- 下一篇: POJ 2778