一、iptables 基礎(chǔ)
在大邑縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),大邑縣網(wǎng)站建設(shè)費(fèi)用合理。1、容器:包含或者說屬于的關(guān)系
2、Netfilter/iptables是表的容器,iptables包含的各個(gè)表
(filter,NAT,MANGLE,RAW)
3、iptables的表tables又是鏈的容器
鏈chains:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
4、鏈chains是規(guī)則容器:
5、規(guī)則Policy:一條條過濾的語(yǔ)句。
二、查看系統(tǒng)內(nèi)核防火墻功能模塊加載情況
lsmod |egrep "nat|filter"
[root@server_02 ~]# lsmod |egrep "nat|filter" nf_nat_ftp 3507 0 nf_conntrack_ftp 12913 1 nf_nat_ftp iptable_nat 6158 1 nf_nat 22759 2 nf_nat_ftp,iptable_nat nf_conntrack_ipv4 9506 3 iptable_nat,nf_nat nf_conntrack 79758 6 xt_state,nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4 iptable_filter 2793 0 ip_tables 17831 2 iptable_nat,iptable_filter如果沒有,可以通過以下命令加載相關(guān)模塊
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
三、iptables使用
iptables -F //清除所有規(guī)則,不會(huì)處理默認(rèn)的規(guī)則。
iptables -X //刪除用戶自定義的鏈。
iptables -Z //鏈的記數(shù)器清零。
(2)禁止掉當(dāng)前主機(jī)SSH功能,這里ssh端口用的是52113。
[root@ipt ~]# iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP
命令語(yǔ)法:
Usage:
iptables -t [table] -[AD] chain rule-specification [options]
具體命令示例:
iptables -A INPUT -p tcp --dport 52113 -j DROP
iptables -t filter -A INPUT -p tcp --dport 52113 -j DROP
說明:
1.iptables默認(rèn)用的就是filter表,因此,以上兩條命令等價(jià)。
2. 其中的INPUT DROP要大寫。
3. --jump -j target
target for rule (may load target extension)
基本的處理行為:ACCEPT(接受)、DROP(丟棄)、REJECT(拒絕)
比較:DROP好于REJECT
(3)顯示filter表過濾規(guī)則的序號(hào)
[root@ipt ~]# iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@ipt ~]# iptables -t filter -D INPUT 1
根據(jù)源地址封:
[root@ipt ~]# iptables -t filter -A INPUT -i eth0 -s 10.0.0.104 -j DROP
iptables -t filter -A INPUT -i eth0 ! -s 10.0.0.104 -j DROP
iptables -t filter -I INPUT -p icmp --icmp-type 8 -i eth0 ! -s 10.0.0.0/24 -j DROP
[root@ipt ~]# iptables -t filter -I INPUT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j DROP
封掉3306端口
iptables -A INPUT -p tcp --dport 3306 -j DROP
匹配指定協(xié)議外的所有協(xié)議
iptables -A INPUT -p ! tcp
匹配主機(jī)源IP
iptables -A INPUT -s 10.0.0.14
iptables -A INPUT -s ! 10.0.0.14
匹配網(wǎng)段
iptables -A INPUT -s 10.0.0.0/24
iptables -A INPUT -s ! 10.0.0.0/24
匹配單一端口
iptables -A INPUT -p tcp --sport 53
iptables -A INPUT -p udp --dport 53
匹配指定端口之外的端口
iptables -A INPUT -p tcp --dport ! 22
iptables -I INPUT -p tcp ! --dport 22 -s 10.0.0.123 -j DROP
匹配單一端口
iptables -A INPUT -p tcp --sport 53
iptables -A INPUT -p udp --dport 53
匹配指定端口之外的端口
iptables -A INPUT -p tcp --dport ! 22
iptables -I INPUT -p tcp ! --dport 22 -s 10.0.0.123 -j DROP
匹配端口范圍:
iptables -I INPUT -p tcp --dport 52000:53000 -j DROP //端口范圍52000-53000
iptables -A INPUT -p tcp --sport 22:80 //端口范圍22-80
iptables -I INPUT -p tcp --dport 21,22,23,24 -j ACCEPT===》錯(cuò)誤語(yǔ)法
iptables -I INPUT -p tcp -m multiport --dport 21,22,23,24 -j ACCEPT===》正確寫法
iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT
iptables -I INPUT -p tcp --dport 18:80 -j DROP
匹配ICMP類型
iptables -A INPUT -p icmp --icmp-type 8
例:iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
匹配指定的網(wǎng)絡(luò)接口
iptables -A INPUT -i eth0
iptables -A FORWARD -o eth0
記憶方法:
--in-interface -i [!] input name[+]
network interface name ([+] for wildcard)
--out-interface -o [!] output name[+]
network interface name ([+] for wildcard)
匹配網(wǎng)絡(luò)狀態(tài)
-m state --state
NEW:已經(jīng)或?qū)?dòng)新的連接
ESTABLISHED:已建立的連接
RELATED:正在啟動(dòng)新連接
INVALID:非法或無法識(shí)別的
FTP服務(wù)是特殊的,需要配狀態(tài)連接。
7.允許關(guān)聯(lián)的狀態(tài)包通過(web服務(wù)不要使用FTP服務(wù))
#others RELATED ftp協(xié)議
#允許關(guān)聯(lián)的狀態(tài)包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#___________________________ ipconfig conf end _______________________________
比喻:看電影出去WC或者接個(gè)電話,回來也得允許進(jìn)去。
-m limit
--limit n/{second/minute/hour}:指定時(shí)間內(nèi)的請(qǐng)求速率"n"為速率,后面為時(shí)間分別為:秒、分、時(shí)
--limit-burst [n]:在同一時(shí)間內(nèi)允許通過的請(qǐng)求"n"為數(shù)字,不指定默認(rèn)為5
fg:本機(jī)地址:172.16.14.1,允許172.16.0.0/16網(wǎng)絡(luò)ping本機(jī),但限制每分鐘請(qǐng)求不能超過20,每次并發(fā)不能超過6個(gè)
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp --icmp-type 8 -m limit --limit 20/min --limit-burst 6 -j ACCEPT
iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp --icmp-type 0 -j ACCEPT
配置一個(gè)企業(yè)防火墻規(guī)則示例:
[root@ipt ~]# iptables -F
[root@ipt ~]# iptables -X
[root@ipt ~]# iptables -Z
[root@ipt ~]# iptables -A INPUT -p tcp --dport 52113 -s 10.0.0.0/24 -j ACCEPT
[root@ipt ~]# iptables -A INPUT -i lo -j ACCEPT
[root@ipt ~]# iptables -A INPUT -o lo -j ACCEPT
[root@ipt ~]# iptables -A OUTPUT -o lo -j ACCEPT
允許合法的進(jìn)入:
iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT
iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT
iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#others RELATED ftp協(xié)議
#允許關(guān)聯(lián)的狀態(tài)包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables禁ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#others RELATED ftp協(xié)議
#允許關(guān)聯(lián)的狀態(tài)包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
修改鏈表默認(rèn)策略:
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEP
iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT
iptables -A INPUT -s 203.83.24.0/24 -p all -j ACCEPT
iptables -A INPUT -s 201.82.34.0/24 -p all -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
企業(yè)iptables面試題:自定義鏈處理syn***
iptables -N syn-flood
iptables -A INPUT -i eth0 -syn -j syn-flood
iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN
iptables -A syn-flood -j DROP
保存iptables的配置
iptables-save >/etc/sysconfig/iptables
局域網(wǎng)共享的兩條命令方法:
方法1:適合于有固定外網(wǎng)地址的:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7
(1)-s 192.168.1.0/24 辦公室或IDC內(nèi)網(wǎng)網(wǎng)段。
(2)-o eth0 為網(wǎng)關(guān)的外網(wǎng)卡接口。
(3)-j SNAT --to-source 10.0.0.19 是網(wǎng)關(guān)外網(wǎng)卡IP地址。
方法2:適合變化外網(wǎng)地址(ADSL):
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE 偽裝源地址
iptables的生產(chǎn)常用場(chǎng)景:
1)實(shí)現(xiàn)服務(wù)器本身防火墻功能,使用filter表。
2)實(shí)現(xiàn)局域網(wǎng)上網(wǎng)網(wǎng)關(guān),使用nat表,網(wǎng)關(guān)上也可以同時(shí)用filter表做防火墻。
3)實(shí)現(xiàn)NAT功能,如:由外部IP映射到內(nèi)部服務(wù)器IP(包括端口),使用nat表。
端口映射配置示例:
iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000
7.映射多個(gè)外網(wǎng)IP上網(wǎng)
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+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)景需求。