規(guī)則的功能:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、都蘭網(wǎng)站維護(hù)、網(wǎng)站推廣。四個(gè)表
filter
nat
mangle
raw
五個(gè)內(nèi)置鏈:
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
規(guī)則的屬性:
1、網(wǎng)絡(luò)層協(xié)議屬性:
ip
2、傳輸層協(xié)議屬性:
tcp
udp
icmp
iptables
大寫字母選項(xiàng):子命令
小寫字母選項(xiàng):用來(lái)匹配標(biāo)準(zhǔn)及其它;
-t {filter|nat|mangle|raw}
-L: list
-n: 數(shù)字格式顯示IP和PORT;
-v: 詳細(xì)信息, -vv, -vvv其中后面的選項(xiàng)比前面的顯示的更詳細(xì)
--line-numbers: 顯示鏈中規(guī)則的行號(hào);
-x: 顯示精確值,不要做單位換算;
規(guī)則和默認(rèn)策略都有兩個(gè)計(jì)數(shù)器:
packets:
bytes:
表和鏈的對(duì)應(yīng)關(guān)系:
filter | INPUT, FORWARD, OUTPUT |
nat | PREROUTING, POSTROUTING, OUTPUT |
mangle | PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING |
raw | PREROUTING, OUTPUT |
每個(gè)鏈都有其默認(rèn)策略:policy ACCEPT
通常只需要修改filter表的默認(rèn)策略
其它子命令:
管理鏈:
-F: 清空鏈
iptables -F 表示清空所有鏈
-P: 設(shè)定默認(rèn)策略
iptables -t filter -P INPUT {DROP|ACCEPT}
-N: 新建一條自定義鏈;
iptables -N FILTER_WEB
-X: 刪除自定義的空鏈;
-Z: 計(jì)算器清零;
iptables -Z
-E: 重命名自定義鏈
管理規(guī)則:
-A: append :在鏈的最后追加一條規(guī)則
-I [n]: 插入為第n條規(guī)則
-D [n]: 刪除第n條規(guī)則
-R [n]: 替換第n條規(guī)則
編寫規(guī)則語(yǔ)法:
iptables [-t 表] 大寫選項(xiàng)子命令 [規(guī)則號(hào)] 鏈名 匹配標(biāo)準(zhǔn) -j 目標(biāo)
目標(biāo):
DROP: 丟棄
REJECT:拒絕
ACCEPT:允許
RETURN:返回跳轉(zhuǎn)
REDIRECT: 端口重定向
DNAT:目標(biāo)地址轉(zhuǎn)換
SNAT:源地址轉(zhuǎn)換
LOG:記錄日志
MARK:打標(biāo)記
自定義鏈
匹配標(biāo)準(zhǔn):
通用匹配
-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
-i incoming_interface: 指定數(shù)據(jù)報(bào)文流入接口; INPUT, PREROUTING, FORWARD
-o outing_interface: 指定數(shù)據(jù)報(bào)文流出接口;OUTPUT, POSTROUTING, FORWARD
-p {tcp|udp|icmp}
擴(kuò)展匹配: 要使用“-m 擴(kuò)展名稱”來(lái)引用,而每個(gè)擴(kuò)展模塊一般都會(huì)有自己特有的專用選項(xiàng); 這些選項(xiàng)中,有些是必備的;
隱含擴(kuò)展
-p tcp
--sport 指定源端口
--dport 指定目標(biāo)端口
--tcp-flags 要檢查的標(biāo)志 必須為1標(biāo)記
--tcp-flags SYN,ACK,RST,FIN SYN 表示:tcp三次握手的第一次
ALL:所有標(biāo)志位
NONE:沒有標(biāo)志位
--tcp-flags ALL SYN,FIN非法報(bào)文
--syn
練習(xí):放行對(duì)web服務(wù)的訪問:
#iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -j ACCEPT
#iptables -A OUTPUT -s 172.16.100.1 -p tcp --sport 80 -j ACCEPT
因?yàn)閳?bào)文在接收和發(fā)送時(shí)都要經(jīng)過防火墻,所以我們需要設(shè)定INPUT和OUTPUT兩個(gè)方面的訪問控制
--sport
--dport
例如:本機(jī)DNS服務(wù)器,要為本地客戶端做遞歸查詢;iptables的INPUT, OUTPUT默認(rèn)為DROP;本機(jī)地址:172.16.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
請(qǐng)求:8
響應(yīng):0
例子:本機(jī)172.16.100.1,能ping 172.16.0.0/16中的所有主機(jī);
顯式擴(kuò)展:
-m state --state
NEW, ESTABLISHED, RELATED, INVALID
ftp服務(wù)需要裝載:nf_conntrack_ftp模塊, 可以使用modprobe命令,也可編輯/etc/sysconfig/iptables-config文件實(shí)現(xiàn)。
-m mulitport: 可以指定15個(gè)以內(nèi)的離散端口;比如,21-23,80
--source-ports 源端口
--destination-ports 目標(biāo)端口
--ports
-m iprange: 指定匹配的IP地址范圍,如172.16.100.1-172.16.109.254
-m iprange
--src-range源ip地址
--dst-range 目標(biāo)ip地址
-m limit
--limit 20/min 限制每分鐘最多允許請(qǐng)求的次數(shù)
--limit-burst 2 搜集多少個(gè)令牌桶
-m string
--string "" 引號(hào)里面填寫需要匹配的字符串
--algo {bm|kmp}
-m time
--datestart
--datestop
--timestart
--timestop
--weekdays
--monthdays
保存規(guī)則:
#service iptables save
保存至/etc/sysconfig/iptables
#iptables-save > /path/to/iptables.rules
生效規(guī)則文件中的規(guī)則:
#iptables-restore < /path/to/ipables.rules
子命令:
鏈:-N, -X, -Z, -F, -P, -E
規(guī)則:-A, -I, -D, -R
練習(xí):INPUT和OUTPUT默認(rèn)策略為DROP;
1、限制本地主機(jī)的web服務(wù)器在周一不允許訪問;新請(qǐng)求的速率不能超過100個(gè)每秒;web服務(wù)器包含了admin字符串的頁(yè)面不允許訪問;web服務(wù)器僅允許響應(yīng)報(bào)文離開本機(jī);
# iptables -I INPUT 1 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m time --weekdays Tue,Wed,Thu,Fri,Sat,Sun
-m limit --limit 100/sec -m string --algo kmp ! --string "admim" -m state --state NEW -j ACCEPT
其中對(duì)于周一不允許訪問還可以表達(dá)為 -m time !--weekdays Mon
# iptables -I OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT
2、在工作時(shí)間,即周一到周五的8:30-18:00,開放本機(jī)的ftp服務(wù)給172.16.0.0網(wǎng)絡(luò)中的主機(jī)訪問;數(shù)據(jù)下載請(qǐng)求的次數(shù)每分鐘不得超過5個(gè);
# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 21 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:30:00 --timestop 18:00:00 -j ACCEPT
# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp -m state --state RELATED -m limit --limit 5/min -j ACCEPT
3、開放本機(jī)的ssh服務(wù)給172.16.x.1-172.16.x.100中的主機(jī),x為你的座位號(hào),新請(qǐng)求建立的速率一分鐘不得超過2個(gè);僅允許響應(yīng)報(bào)文通過其服務(wù)端口離開本機(jī);
# iptables -A INPUT -m iprange --src-range 172.16.100.1-172.16.100.100 -m limit --limit 2/min -p tcp --dport 22 -d 172.16.100.1 -i eth0 -m state --state NEW -j ACCEPT
4、拒絕TCP標(biāo)志位全部為1及全部為0的報(bào)文訪問本機(jī);
# iptables -N clean_in
# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP
# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A clean_in -d 172.16.100.1 -j RETURN
# iptables -I INPUT 1 -d 172.16.100.1 -j clean_in
5、允許本機(jī)ping別的主機(jī);但不開放別的主機(jī)ping本機(jī);
# iptables -A OUTPUT -s 172.16.100.1 -p icmp --icmp-type 8 -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。