九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Linux防火墻應(yīng)用珠璣

導(dǎo)言:隨著互聯(lián)網(wǎng)的飛速發(fā)展,毫無(wú)疑問(wèn),互聯(lián)網(wǎng)上的安全,操作系統(tǒng)平臺(tái)的安全也逐漸成為人們所關(guān)心的問(wèn)題。而許多網(wǎng)絡(luò)服務(wù)器、工作站所采用的平臺(tái)為L(zhǎng)inux/UNIX平臺(tái)。Linux平臺(tái)作為一個(gè)安全性、穩(wěn)定性比較高的操作系統(tǒng)也被應(yīng)用到了更多領(lǐng)域。本文帶領(lǐng)大家探討了Linux系統(tǒng)管理員應(yīng)該掌握的20個(gè)防火墻應(yīng)用技巧。

 廣為人知的iptables命令行

Netfilter作為L(zhǎng)inux內(nèi)置的主機(jī)防火墻,它可以使用iptables命令處理IPv4協(xié)議,也可以使用ip6tables命令處理IPv6協(xié)議。在iptables之前,Linux 2.2中使用ipchains來(lái)配置防火墻,Linux 2.0中則使用ipfwadm,它基于BSD的ipfw命令實(shí)現(xiàn)。

以下命令在RHEL 6.x上執(zhí)行通過(guò),但也適用于其他Linux發(fā)行版。

1.顯示防火墻的狀態(tài)

以root權(quán)限運(yùn)行下面的命令:

  1. # iptables -L -n -v 

參數(shù)說(shuō)明:

  • -L:列出規(guī)則。
  • -v:顯示詳細(xì)信息。此選項(xiàng)會(huì)顯示接口名稱(chēng)、規(guī)則選項(xiàng)和TOS掩碼,以及封包和字節(jié)計(jì)數(shù)。
  • -n:以數(shù)字形式顯示IP地址和端口,不使用DNS解析。

如果希望輸出的結(jié)果中顯示行號(hào),可以運(yùn)行:

  1. # iptables -L -n -v --line-nmubers 

這樣,就可以按照行號(hào)在防火墻中添加、刪除規(guī)則。

要顯示輸入或輸出鏈規(guī)則,可以運(yùn)行:

  1. # iptables -L INPUT -n -v  
  2. # iptables -L OUTPUT -n -v --line-numbers 

2.停止、開(kāi)啟和重啟防火墻

如果你使用的是RHEL/Fedora/CentOS系統(tǒng),可以運(yùn)行:

  1. # service iptables stop  
  2. # service iptables start  
  3. # service iptables restart 

我們也可以使用iptables命令停止防火墻并刪除所有規(guī)則:

  1. # iptables -F  
  2. # iptables -X  
  3. # iptables -t nat -F  
  4. # iptables -t nat -X  
  5. # iptables -t mangle -F  
  6. # iptables -t mangle -X  
  7. # iptables -P INPUT ACCEPT  
  8. # iptables -P OUTPUT ACCEPT  
  9. # iptables -P FORWARD ACCEPT 

參數(shù)說(shuō)明:

  • -F:刪除所有的規(guī)則
  • -X:刪除鏈
  • -t table_name:匹配表(稱(chēng)為nat或mangle)
  • -P:設(shè)置默認(rèn)策略(如DROP、REJECT或ACCEPT)

3.刪除防火墻規(guī)則

以帶行號(hào)的形式顯示已有的防火墻規(guī)則,請(qǐng)運(yùn)行:

  1. # iptables -L INPUT -n --line-numbers  
  2. # iptables -L OUTPUT -n --line-numbers  
  3. # iptables -L OUTPUT -n --line-numbers | less  
  4. # iptables -L OUTPUT -n --line-numbers | grep 202.54.1.1 

下面我們使用行號(hào)刪除規(guī)則:

  1. # iptables -D INPUT 4 

將IP地址202.54.1.1從規(guī)則中刪除:

  1. # iptables -D INPUT -s 202.54.1.1 -j DROP 

參數(shù)說(shuō)明:

  • -D:從選擇的鏈中刪除一條或多條規(guī)則

4.插入防火墻規(guī)則

首先運(yùn)行下面的命令:

  1. # iptables -L INPUT -n --line-numbers 

得到運(yùn)行結(jié)果:

  1. Chain INPUT (policy DROP)  
  2. num  target    prot opt source     destination  
  3. 1   DROP      all  --  202.54.1.1  0.0.0.0/0  
  4. 2   ACCEPT    all  --  0.0.0.0/0    0.0.0.0/0 

在行1和行2之間插入規(guī)則:

  1. # iptables -I INPUT 2 -s 202.54.1.2 -j DROP 

查看更新后的規(guī)則,會(huì)發(fā)現(xiàn)插入成功,下面是示例:

  1. Chain INPUT (policy DROP)  
  2. Num  target    prot opt source    destination     
  3. 1     DROP    all  --  202.54.1.1  0.0.0.0/0  
  4. 2     DROP    all  --  202.54.1.2  0.0.0.0/0  
  5. 3     ACCEPT  all  --  0.0.0.0/0    0.0.0.0/0 

5.保存防火墻規(guī)則

在RHEL/Fedora/CentOS Linux下,可以使用下面的命令保存防火墻規(guī)則:

  1. # service iptables save 

在其它Linux發(fā)行版(如Ubuntu)上,可以使用iptables-save命令保存防火墻規(guī)則:

  1. # iptables-save > /root/my.active.firewall.rules  
  2. # cat /root/my.active.firewall.rules 

6.重新加載防火墻規(guī)則

我們可以使用iptables-restore命令重新加載使用iptables-save命令保存的防火墻規(guī)則:

  1. # iptables-restore < /root/my.active.firewall.rules 

我們還可以利用這種特性來(lái)快速部署防火墻規(guī)則。

7.設(shè)置默認(rèn)防火墻策略

我們首先來(lái)配置一個(gè)防火墻策略,它默認(rèn)丟棄所有的網(wǎng)絡(luò)數(shù)據(jù)包:

  1. # iptables -P INPUT DROP  
  2. # iptables -P OUTPUT DROP  
  3. # iptables -P FORWARD DROP  
  4. # iptables -L -v -n
  5. #連接失敗,因?yàn)榉阑饓G棄所有的網(wǎng)絡(luò)數(shù)據(jù)包  
  6. # ping cyberciti.biz  
  7. # wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2 

在此基礎(chǔ)上,我們只關(guān)閉入站連接:

  1. # iptables -P INPUT DROP  
  2. # iptables -P FORWARD DROP  
  3. # iptables -P OUTPUT ACCEPT  
  4. # iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT  
  5. # iptables -L -v -n  
  6. #ping和wget可以正常工作  
  7. # ping cyberciti.biz  
  8. # wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2 

8.在公網(wǎng)網(wǎng)絡(luò)接口上停用私有網(wǎng)絡(luò)地址

我們可以從公網(wǎng)網(wǎng)絡(luò)接口上刪除私有IPv4網(wǎng)段,以防止IP欺騙。運(yùn)行下面的命令,沒(méi)有源路由地址的數(shù)據(jù)包會(huì)被丟棄:

  1. # iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP  
  2. # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP 

下面是私有網(wǎng)絡(luò)IPv4地址范圍,請(qǐng)確認(rèn)在公網(wǎng)接口予以屏蔽:

  • 10.0.0.0/8 -j (A)
  • 172.16.0.0/12 (B)
  • 192.168.0.0/16 (C)
  • 224.0.0.0/4 (多播 D)
  • 240.0.0.0/5 (E)
  • 127.0.0.0/8 (回環(huán))

9.屏蔽IP地址訪(fǎng)問(wèn)

如果我們想屏蔽一個(gè)IP地址,比如1.2.3.4,可以運(yùn)行:

  1. # iptables -A INPUT -s 1.2.3.4 -j DROP  
  2. # iptables -A INPUT -s 192.168.0.0/24 -j DROP 

10.屏蔽入棧端口請(qǐng)求

如果我們想80端口上屏蔽所有的服務(wù)請(qǐng)求,可以運(yùn)行:

  1. # iptables -A INPUT -p tcp --dport 80 -j DROP  
  2. # iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP 

只想屏蔽IP地址1.2.3.4對(duì)80端口的請(qǐng)求,可以運(yùn)行:

  1. # iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP  
  2. # iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP 

11.屏蔽出棧IP地址

現(xiàn)在我們來(lái)演示如何屏蔽對(duì)主機(jī)名和IP地址的出棧訪(fǎng)問(wèn)。

首先,我們來(lái)獲取一個(gè)域名的IP地址:

  1. # host -t a cyberciti.biz 

輸出示例:

  1. cyberciti.biz has address 75.126.153.206 

要屏蔽訪(fǎng)問(wèn)域名cyberciti.biz的網(wǎng)絡(luò)數(shù)據(jù)包,可以運(yùn)行:

  1. # iptables -A OUTPUT -d 75.126.153.206 -j DROP 

下面是使用子網(wǎng)掩碼的示例:

  1. # iptables -A OUTPUT -d 192.168.1.0/24 -j DROP  
  2. # iptables -A OUTPUT -o eth1 -d 192.168.1.0/24 -j DROP 

下面我們以屏蔽facebook.com為例,進(jìn)行說(shuō)明。首先,我們需要facebook的所有IP地址:

  1. # host -t a www.facebook.com 

示例輸出:

  1. www.facebook.com has address 69.171.228.40 

找出IP地址69.171.228.40的CIDR:

  1. # whois 69.171.228.40 | grep CIDR 

示例輸出:

  1. CIDR:69.171.224.0/19 

現(xiàn)在我們來(lái)阻止對(duì)facebook.com的訪(fǎng)問(wèn):

  1. # iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP 

我們也可以直接屏蔽域名:

  1. # iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP  
  2. # iptables -A OUTPUT -p tcp -d facebook.com -j DROP 

12.記錄并丟棄數(shù)據(jù)包

在公網(wǎng)網(wǎng)絡(luò)接口上記錄并丟棄IP地址欺騙數(shù)據(jù)包:

  1. # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "  
  2. # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP 

默認(rèn)情況下日志記錄在/var/log/messages文件中:

  1. # tail -f /var/log/messages  
  2. # grep --color 'IP SPOOF' /var/log/messages 

我們還可以用-m參數(shù)對(duì)日志記錄進(jìn)行限制,以防止日志文件過(guò)度膨脹。

  1. # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "  
  2. # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP 

13.根據(jù)MAC地址允許或阻止數(shù)據(jù)包的傳入

我們可以根據(jù)MAC地址允許或阻止數(shù)據(jù)包的傳入:

  1. # iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP 

14.屏蔽ICMP ping請(qǐng)求

我們可以通過(guò)允許下面的命令屏蔽ping請(qǐng)求:

  1. # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP  
  2. # iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP 

也可以按照特定的網(wǎng)段和主機(jī)限制ping請(qǐng)求:

  1. # iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT 

以下命令只接受受限制的ping請(qǐng)求:

  1. #假定默認(rèn)INPUT策略為丟棄數(shù)據(jù)包  
  2. # iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT  
  3. # iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT  
  4. # iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT  
  5. #所有的服務(wù)器都對(duì)ping請(qǐng)求作出應(yīng)答  
  6. # iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT 

15.開(kāi)啟端口序列

下面的命令可以允許7000到7010范圍內(nèi)的TCP端口訪(fǎng)問(wèn):

  1. # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT 

16.允許一系列IP地址訪(fǎng)問(wèn)

下面的命令可以允許IP地址范圍

  1. #運(yùn)行IP地址范圍192.168.1.100 到192.168.1.200 訪(fǎng)問(wèn)80端口  
  2. # iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT  
  3. #NAT示例  
  4. # iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.20-192.168.1.25 

17.建立連接并重啟防火墻

當(dāng)重啟iptables服務(wù)時(shí),它會(huì)斷開(kāi)所有已建立的連接。這是因?yàn)樵谥貑⒎阑饓r(shí),會(huì)卸載IPTABLES_MODULES_UNLOAD模塊。

要解決這個(gè)問(wèn)題,可以編輯/etc/sysconfig/iptables-config

  1. IPTABLES_MODULES_UNLOAD = no 

18.使用Crit日志級(jí)別

  1. # iptables -A INPUT -s 1.2.3.4 -p tcp --destination-port 80 -j LOG --log-level crit 

19.屏蔽或開(kāi)啟常見(jiàn)端口

屏蔽或開(kāi)啟常用的TCP、UDP端口:

  1. #可以使用DROP替換ACCEPT,實(shí)現(xiàn)端口屏蔽。  
  2. #打開(kāi)22端口(SSH)  
  3. # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT  
  4. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT  
  5. #打開(kāi)TCP/UDP631端口(打印服務(wù))  
  6. # iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT  
  7. # iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT  
  8. # 打開(kāi)123端口,允許局域網(wǎng)用戶(hù)進(jìn)行NTP時(shí)間同步  
  9. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT  
  10. #打開(kāi)25端口(SMTP)  
  11. # iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT  
  12. # 打開(kāi)DNS端口  
  13. # iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT  
  14. # iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT  
  15. #打開(kāi)http/https端口  
  16. # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT  
  17. # iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT  
  18. #打開(kāi)TCP110端口(POP3)  
  19. # iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT  
  20. #打開(kāi)TCP143端口  
  21. # iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT  
  22. #為局域網(wǎng)用戶(hù)開(kāi)啟Samba訪(fǎng)問(wèn)  
  23. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT  
  24. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT  
  25. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT  
  26. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT  
  27. #為局域網(wǎng)用戶(hù)開(kāi)啟代理服務(wù)器訪(fǎng)問(wèn)  
  28. # iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT  
  29. #為局域網(wǎng)用戶(hù)開(kāi)啟MySQL訪(fǎng)問(wèn)  
  30. # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 

20.限制客戶(hù)端IP的并發(fā)連接數(shù)

我們可以使用connlimit模塊限制客戶(hù)端IP的并發(fā)連接數(shù)。下面的命令允許每個(gè)客戶(hù)端只能并發(fā)3個(gè)ssh連接:

  1. # iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT 

設(shè)置HTTP并發(fā)連接為20個(gè):

  1. # iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP 

參數(shù)說(shuō)明:

  • --connlimit-above 3:連接數(shù)超過(guò)3個(gè)自動(dòng)匹配
  • --connlimit-mask 24:子網(wǎng)掩碼匹配

更好的使用iptables

首先,我們要學(xué)會(huì)查看man手冊(cè):

  1. $ man iptables 

 我們還可以這樣查看幫助:

  1. # iptables -h 

我們還可以查看特定命令的幫助:

  1. # iptables -j DROP -h 

測(cè)試防火墻

測(cè)試端口是否開(kāi)放:

  1. # netstat -tulpn 

測(cè)試TCP 80端口是否開(kāi)放:

  1. # netstat -tulpn | grep :80 

如果80端口未開(kāi)放,請(qǐng)確保啟動(dòng)Apache服務(wù)器:

  1. # service httpd start 

并確保打開(kāi)iptables防火墻80端口:

  1. # iptables -L INPUT -v -n | grep 80 

如果80端口沒(méi)有開(kāi)放,可以運(yùn)行下面的命令:

  1. # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT  
  2. # service iptables save 

下面使用telnet命令測(cè)試是否可以連接到80端口:

  1. $ telnet www.cyberciti.biz 80 

下面是示例輸出:

  1. Trying 75.126.153.206...  
  2. Connected to www.cyberciti.biz.  
  3. Escape character is '^]'.  
  4. ^]  
  5. telnet> quit  
  6. Connection closed. 

最后,我們也推薦使用嗅探工具(如tcpdump、ngrep)對(duì)防火墻設(shè)置進(jìn)行測(cè)試。

以上只是一些基本的防火墻配置策略,如果你想構(gòu)造更復(fù)雜的防火墻策略,需要對(duì)TCP/IP和Linux內(nèi)核配置文件sysctl.conf進(jìn)行更深入的學(xué)習(xí)。(張志平/編譯)


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CentOS7安裝iptables防火墻的方法
Linux系列-Red Hat5平臺(tái)下的Iptables防火墻應(yīng)用(一)翻出老家底——咱們來(lái)學(xué)Iptables
防火墻IPTABLES
CentOS7安裝iptables防火墻
Centos防火墻和端口轉(zhuǎn)發(fā)配置
Iptables—包過(guò)濾(網(wǎng)絡(luò)層)防火墻
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服