發布者認證信息(營業執照和身份證)未完善,請登錄后完善信息登錄
iptables常用示例-亿华网

久久天天躁狠狠躁夜夜,国精品无码一区二区三区左线,色综合网天天综合色中文,国产suv精品一区二区883,午夜精品一区二区三区的区别

首頁 » 資訊 » 編程開發 » LINUX > iptables常用示例

iptables常用示例

  發布時間 : 2017-05-23 12:40:50 68
內容提要
本文將給出25個iptables常用規則示例,這些例子為您提供了些基本的模板,您可以根據特定需求對其進行修改調整以達到期望。 格式i

本文將給出25個iptables常用規(gui)則示例,這(zhe)些(xie)例子為您(nin)提供了些(xie)基本的模板,您(nin)可以根據特定需求對其(qi)進行修改(gai)調整以達到(dao)期望。  格式(shi)

iptables [-t 表名(ming)] 選項 [鏈(lian)名(ming)] [條件] [-j 控制類型(xing)] 參(can)數

 
  1. -設置默認策略:iptables -P INPUT (DROP|ACCEPT)
  2. -清空(kong)規則鏈
  3. -查看(kan)規(gui)則鏈
  4. -在(zai)規(gui)則(ze)鏈的末(mo)尾加入新規(gui)則(ze)
  5. -I num 在規(gui)則(ze)鏈的(de)頭部加入新規(gui)則(ze)
  6. -D num 刪除某一條(tiao)規則(ze)
  7. -匹配來源地址IP/MASK,加嘆號"!"表示除這個IP外。
  8. -匹配目(mu)標地(di)址
  9. -網卡名稱 匹配從這塊網卡(ka)流入(ru)的數(shu)據(ju)
  10. -網卡名稱 匹配從(cong)這塊網卡流出的數(shu)據
  11. -匹配協議,如tcp,udp,icmp
  12. --dport num 匹(pi)配目標端口號
  13. --sport num 匹配來(lai)源端(duan)口(kou)號

示例

1. 刪除已有規則

在(zai)開始創建iptables規(gui)則之前,你也許需要刪除已有規(gui)則。

 
  1. 命令如下:
  2. iptables -F
  3. (or)
  4. iptables flush

2.設置鏈的默認策略

鏈的默認政策(ce)設置(zhi)為”ACCEPT”(接(jie)受),若要將INPUT,FORWARD,OUTPUT鏈設置(zhi)成”DROP”(拒絕(jue)),命(ming)令(ling)如下:

 
  1. iptables -P INPUT DROP
  2. iptables -P FORWARD DROP
  3. iptables -P OUTPUT DROP

當INPUT鏈(lian)和OUTPUT鏈(lian)都(dou)設置成(cheng)DROP時,對于每(mei)一(yi)個(ge)(ge)防火(huo)墻規(gui)(gui)則(ze),我們都(dou)應該定(ding)(ding)義兩(liang)個(ge)(ge)規(gui)(gui)則(ze)。例如(ru):一(yi)個(ge)(ge)傳入另一(yi)個(ge)(ge)傳出(chu)。在下面(mian)所有的(de)(de)例子中,由于我們已將DROP設置成(cheng)INPUT鏈(lian)和OUTPUT鏈(lian)的(de)(de)默認(ren)策(ce)略(lve),每(mei)種情(qing)況(kuang)我們都(dou)將制(zhi)(zhi)定(ding)(ding)兩(liang)條規(gui)(gui)則(ze)。當然,如(ru)果你相信你的(de)(de)內(nei)部用戶(hu),則(ze)可以省略(lve)上面(mian)的(de)(de)最后一(yi)行(xing)。例如(ru):默認(ren)不(bu)丟棄所有出(chu)站(zhan)的(de)(de)數據包(bao)。在這種情(qing)況(kuang)下,對于每(mei)一(yi)個(ge)(ge)防火(huo)墻規(gui)(gui)則(ze)要求,你只需(xu)要制(zhi)(zhi)定(ding)(ding)一(yi)個(ge)(ge)規(gui)(gui)則(ze)——只對進站(zhan)的(de)(de)數據包(bao)制(zhi)(zhi)定(ding)(ding)規(gui)(gui)則(ze)。

3. 阻止指定IP地址

例:丟(diu)棄(qi)來自IP地址x.x.x.x的包(bao)

 
  1. iptables -A INPUT -s x.x.x.-j DROP
  2. 注:當你在log里發現來自某ip地(di)址的(de)異(yi)常記錄,可以通過(guo)此命令暫時阻止(zhi)該地(di)址的(de)訪問以做(zuo)更深入分析(xi)

例:阻止(zhi)來(lai)自IP地址x.x.x.x eth0 tcp的包

 
  1. iptables -A INPUT -i eth0 -s x.x.x.-j DROP
  2. iptables -A INPUT -i eth0 -p tcp -s x.x.x.-j DROP

4. 允許所有SSH的連接請求

例:允許所有來自(zi)外部的SSH連(lian)接請求(qiu),即只允許進入(ru)eth0接口(kou),并且目標(biao)端口(kou)為22的數據包

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

5. 僅允許來自指定網絡的SSH連接請求

例(li):僅允(yun)許來自于192.168.100.0/24域的用戶(hu)的ssh連(lian)接請求

 
  1. iptables -A INPUT -i eth0 -p tcp -192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

6.允許http和https的連接請求

例:允(yun)許所有來自(zi)web - http的連(lian)接請求

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

例:允許(xu)所有(you)來自web - https的(de)連接(jie)請求(qiu) 

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

7. 使用multiport 將多個規則結合在一起

允許(xu)多個(ge)端(duan)(duan)口從外界(jie)連入,除了為(wei)每個(ge)端(duan)(duan)口都寫一(yi)(yi)條獨(du)立的規則外,我們可(ke)以用multiport將其組合成一(yi)(yi)條規則。如下所(suo)示:  例:允許(xu)所(suo)有ssh,http,https的流(liu)量訪問(wen)

 
  1. iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT

8. 允許從本地發起的SSH

 
  1. iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

請注意(yi),這與允(yun)(yun)許(xu)ssh連入(ru)的(de)(de)規則略有不同(tong)。本例在OUTPUT鏈上(shang),我們(men)允(yun)(yun)許(xu)NEW和ESTABLISHED狀態(tai)。在INPUT鏈上(shang),我們(men)只允(yun)(yun)許(xu)ESTABLISHED狀態(tai)。ssh連入(ru)的(de)(de)規則與之(zhi)相反。

9. 僅允許從本地發起到一個指定的網絡域的SSH請求

例:僅允許從內部(bu)連接(jie)到(dao)網域192.168.100.0/24

 
  1. iptables -A OUTPUT -o eth0 -p tcp -192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

10. 允許從本地發起的HTTPS連接請求

下面的規則允許輸出安全的網絡流量。如果你想允許用戶訪問互聯網,這是非常有必要的。在服務器上,這些(xie)規(gui)則(ze)能讓你使(shi)用wget從外(wai)部(bu)下(xia)載一些(xie)文件

 
  1. iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

注(zhu):對于(yu)HTTP web流量的外聯請求,只需要將上述命令中的端口從443改成80即(ji)可。

11. 負載平衡傳入的網絡流量

使用iptables可(ke)以實現傳(chuan)(chuan)入(ru)web流量的(de)負載均衡,我(wo)們可(ke)以傳(chuan)(chuan)入(ru)web流量負載平(ping)衡使用iptables防火墻規(gui)則。  例:使用iptables nth將HTTPS流量負載平(ping)衡至(zhi)三個(ge)不同的(de)ip地址。

 
  1. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
  2. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443
  3. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443

12. 允許外部主機ping內部主機

 
  1. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  2. iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

13. 允許內部主機ping外部主機

 
  1. iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
  2. iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

14. 允許回環訪問

例:在服務器(qi)上(shang)允許(xu)127.0.0.1回環訪(fang)問。

 
  1. iptables -A INPUT -i lo -j ACCEPT
  2. iptables -A OUTPUT -o lo -j ACCEPT

15. 允許內部網絡域外部網絡的通信

防火墻服務器(qi)(qi)上的其中(zhong)一個網(wang)卡(ka)連接到(dao)外(wai)部(bu),另一個網(wang)卡(ka)連接到(dao)內(nei)部(bu)服務器(qi)(qi),使用以下(xia)規(gui)則允(yun)許內(nei)部(bu)網(wang)絡(luo)與外(wai)部(bu)網(wang)絡(luo)的通信(xin)。此例中(zhong),eth1連接到(dao)外(wai)部(bu)網(wang)絡(luo)(互聯(lian)網(wang)),eth0連接到(dao)內(nei)部(bu)網(wang)絡(luo)(例如(ru):192.168.1.x)。

 
  1. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

16. 允許出站的DNS連接

 
  1. iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
  2. iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

17. 允許NIS連接

如果你使用NIS管理用戶帳戶,你需要允許NIS連接。如果你不允許NIS相關的ypbind連接請求,即使SSH連接請求已被允許,用戶仍然無法登錄。NIS的端口是動態的,先使用命令rpcinfo –p來知道端口號,此例中為853和850端口。  rpcinfo -p | grep ypbind  例:允許來自111端口以及ypbind使(shi)用端口的連接(jie)請求

 
  1. iptables -A INPUT -p tcp --dport 111 -j ACCEPT
  2. iptables -A INPUT -p udp --dport 111 -j ACCEPT
  3. iptables -A INPUT -p tcp --dport 853 -j ACCEPT
  4. iptables -A INPUT -p udp --dport 853 -j ACCEPT
  5. iptables -A INPUT -p tcp --dport 850 -j ACCEPT
  6. iptables -A INPUT -p udp --dport 850 -j ACCEPT

注(zhu):當你重(zhong)啟ypbind之(zhi)后端口(kou)將(jiang)不同,上(shang)述命令將(jiang)無效(xiao)。有兩種解(jie)決(jue)方案:1)使(shi)用你NIS的(de)靜態(tai)IP 2)編(bian)寫shell腳本通過“rpcinfo - p”命令自動(dong)獲(huo)取動(dong)態(tai)端口(kou)號,并在上(shang)述iptables規則中(zhong)使(shi)用。

18. 允許來自指定網絡的rsync連接請求

例:允許來自網絡192.168.101.0/24的(de)rsync連(lian)接請求

 
  1. iptables -A INPUT -i eth0 -p tcp -192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

19. 允許來自指定網絡的MySQL連接請求

很多情(qing)況下,MySQL數(shu)據庫與web服務跑在(zai)同一臺服務器上。有時候我們(men)僅希望DBA和開發人員從內部網絡(192.168.100.0/24)直接(jie)登(deng)錄數(shu)據庫,可(ke)嘗試以下命(ming)令(ling):

 
  1. iptables -A INPUT -i eth0 -p tcp -192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

20. 允許Sendmail, Postfix郵件服務

Sendmail和(he)postfix都使用(yong)了25端口,因(yin)此我們只需要允許來自25端口的連接請求即可。

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

21. 允許IMAP和IMAPS

例:允許IMAP/IMAP2流量,端(duan)口(kou)為143

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT

例:允許(xu)IMAPS流(liu)量(liang),端口為993

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT

22. 允許POP3和POP3S

例:允許(xu)POP3訪問

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT

例:允許POP3S訪問(wen)

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT

23. 防止DoS攻擊

 
  1. iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
  2. 上述例子中:
  3. -m limit: 啟用limit擴展(zhan)
  4. limit 25/minute: 允許最多每分鐘25個(ge)連(lian)接(根據需求更(geng)改)。
  5. limit-burst 100: 只有當連接達到limit-burst水平(此例為100)時才啟用上述limit/minute-。

24. 端口轉發

例(li):將來自422端口(kou)(kou)的流(liu)量全部(bu)轉到(dao)22端口(kou)(kou)。  這(zhe)意味著我們既(ji)能通過(guo)422端口(kou)(kou)又能通過(guo)22端口(kou)(kou)進(jin)行(xing)ssh連接。啟(qi)用DNAT轉發。

 
  1. iptables -t nat -A PREROUTING -p tcp -192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22

除(chu)此之(zhi)外(wai),還需要允許連(lian)接到422端口的請求

 
  1. iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT

25. 記錄丟棄的數據表

第(di)一(yi)步(bu):新建名為LOGGING的鏈

 
  1. iptables -N LOGGING

 第(di)二步:將所有來自INPUT鏈中(zhong)的數據包跳轉到LOGGING鏈中(zhong)

 
  1. iptables -A INPUT -j LOGGING

第三步:為這些包自定義個前綴(zhui),命名(ming)為”IPTables Packet Dropped”

 
  1. iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7

第四步:丟棄這些數據(ju)包

 
  1. iptables -A LOGGING -j DROP
layui

微信掃碼關注 億華聯眾 公眾號

頭條推薦