25 Mapuslanon nga IPtable Firewall Rules Matag Linux Administrator Angay Mahibalo


i-configure ang firewall sa paagi nga matubag niini ang sistema ug mga kinahanglanon sa tiggamit alang sa umaabot ug paggawas nga mga koneksyon, nga dili biyaan ang sistema nga mahuyang sa mga pag-atake.

Dinhi diin magamit ang iptables. Ang Iptables usa ka Linux command line firewall nga nagtugot sa mga administrador sa sistema sa pagdumala sa umaabot ug paggawas nga trapiko pinaagi sa usa ka set sa mga lagda sa lamesa nga ma-configure.

Ang mga Iptables naggamit ug usa ka set sa mga lamesa nga adunay mga kadena nga adunay mga set sa built-in o gihubit nga mga lagda sa user. Salamat sa kanila ang usa ka tagdumala sa sistema makahimo sa husto nga pagsala sa trapiko sa network sa iyang sistema.

Matag manwal sa iptables, adunay 3 ka matang sa mga lamesa karon:

    1. FILTER – kini ang default nga lamesa, nga adunay sulod nga mga kadena alang sa:
      1. INPUT  – mga pakete para sa mga lokal nga socket
      2. FORWARD – mga pakete nga gipaagi sa sistema
      3. OUTPUT – mga packet nga gihimo sa lokal

      1. PREROUTING – gigamit sa pag-ilis sa usa ka pakete sa diha nga kini nadawat
      2. OUTPUT – gigamit sa pag-ilis sa mga lokal nga namugna nga pakete
      3. POSTROUTING – gigamit sa pag-ilis sa mga pakete sa hapit na kini mogawas

      1. PREROUTING – para sa pag-ilis sa umaabot nga koneksyon
      2. OUTPUT – para sa pag-ilis sa locally generated  packets
      3. INPUT – para sa umaabot nga mga pakete
      4. POSTROUTING – para sa pag-ilis sa mga pakete kay hapit na kini mogawas
      5. FORWARD – para sa mga pakete nga gipaagi sa kahon

      Niini nga artikulo, imong makita ang pipila ka mapuslanon nga mga sugo nga makatabang kanimo sa pagdumala sa imong Linux box firewall pinaagi sa iptables. Alang sa katuyoan niining artikuloha, magsugod ko sa mas simple nga mga sugo ug moadto sa mas komplikado hangtod sa kataposan.

      1. Pagsugod/Hunong/I-restart ang Iptables Firewall

      Una, kinahanglan nga mahibal-an nimo kung giunsa pagdumala ang serbisyo sa iptables sa lainlaing mga pag-apod-apod sa Linux. Kini mao ang medyo sayon:

      ------------ On Cent/RHEL 7 and Fedora 22+ ------------
      # systemctl start iptables
      # systemctl stop iptables
      # systemctl restart iptables
      
      ------------ On Cent/RHEL 6/5 and Fedora ------------
      # /etc/init.d/iptables start 
      # /etc/init.d/iptables stop
      # /etc/init.d/iptables restart
      

      2. Susiha ang tanang IPtables Firewall Rules

      Kung gusto nimo nga susihon ang imong kasamtangan nga mga lagda, gamita ang mosunod nga sugo:

      # iptables -L -n -v
      

      Kini kinahanglan nga ibalik ang output nga susama sa usa sa ubos:

      Chain INPUT (policy ACCEPT 1129K packets, 415M bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
      Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0 
       0 0 ACCEPT all -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0
      Chain OUTPUT (policy ACCEPT 354K packets, 185M bytes)
       pkts bytes target prot opt in out source destination

      Kung gusto nimo nga susihon ang mga lagda alang sa usa ka piho nga lamesa, mahimo nimong gamiton ang kapilian nga -t sundan sa lamesa nga gusto nimong susihon. Pananglitan, aron masusi ang mga lagda sa NAT nga lamesa, mahimo nimong gamiton ang:

      # iptables -t nat -L -v -n
      

      3. I-block ang Piho nga IP Address sa IPtables Firewall

      Kung makit-an nimo ang usa ka dili kasagaran o abusado nga kalihokan gikan sa usa ka IP address mahimo nimong babagan kana nga IP address gamit ang mosunod nga lagda:

      # iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      Diin kinahanglan nimong usbon ang \xxx.xxx.xxx.xxx\ sa aktuwal nga IP address. Pag-amping pag-ayo sa pagpadagan niini nga sugo tungod kay mahimo nimo nga aksidenteng babagan ang imong kaugalingong IP address. Ang -A nga opsyon modugang sa lagda sa katapusan sa pinili nga kadena.

      Kung gusto lang nimo babagan ang trapiko sa TCP gikan sa kana nga IP adres, mahimo nimong gamiton ang kapilian nga -p nga nagtakda sa protocol. Nianang paagiha ang mando mahimong ingon niini:

      # iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
      

      4. I-unblock ang IP Address sa IPtables Firewall

      Kung nakahukom ka nga dili na nimo gusto nga babagan ang mga hangyo gikan sa piho nga IP address, mahimo nimong papason ang lagda sa pag-block gamit ang mosunud nga mando:

      # iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      Ang -D nga opsyon motangtang sa usa o daghan pang mga lagda gikan sa pinili nga kadena. Kung gusto nimo gamiton ang mas taas nga opsyon mahimo nimong gamiton ang --delete.

      5. I-block ang Piho nga Port sa IPtables Firewall

      Usahay mahimo nimong babagan ang umaabot o paggawas nga mga koneksyon sa usa ka piho nga pantalan. Kini usa ka maayo nga lakang sa seguridad ug kinahanglan nimo nga hunahunaon kana nga butang kung mag-set up sa imong firewall.

      Aron babagan ang mga nanggawas nga koneksyon sa usa ka piho nga paggamit sa pantalan:

      # iptables -A OUTPUT -p tcp --dport xxx -j DROP
      

      Aron tugotan ang umaabot nga mga koneksyon sa paggamit:

      # iptables -A INPUT -p tcp --dport xxx -j ACCEPT
      

      Sa duha ka pananglitan usba ang \xxx\ gamit ang aktuwal nga pantalan nga gusto nimong itugot. Kung gusto nimong babagan ang trapiko sa UDP imbes nga TCP, usba lang ang \tcp\ gamit ang \udp\ sa ibabaw nga lagda sa iptables.

      6. Tugoti ang Daghang Port sa mga IPtable gamit ang Multiport

      Mahimo nimong tugutan ang daghang mga pantalan sa usa ka higayon, pinaagi sa paggamit sa multiport, sa ubos makit-an nimo ang ingon nga lagda alang sa umaabot ug paggawas nga mga koneksyon:

      # iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
      # iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
      

      7. Tugoti ang Piho nga Network Range sa Partikular nga Port sa IPtables

      Mahimo nimong limitahan ang pipila ka mga koneksyon sa piho nga pantalan sa usa ka gihatag nga network. Ingnon ta nga gusto nimong tugutan ang mga outgoing connections sa port 22 ngadto sa network 192.168.100.0/24.

      Mahimo nimo kini pinaagi niini nga sugo:

      # iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
      

      8. I-block ang Facebook sa IPtables Firewall

      Ang ubang mga amo ganahan nga i-block ang access sa Facebook sa ilang mga empleyado. Sa ubos usa ka pananglitan kung giunsa pag-block ang trapiko sa Facebook.

      Mubo nga sulat: Kung ikaw usa ka tigdumala sa sistema ug kinahanglan nimo nga i-apply kini nga mga lagda, hinumdomi nga ang imong mga kauban mahimong mohunong sa pagpakigsulti kanimo :)

      Pangitaa una ang mga IP address nga gigamit sa Facebook:

      # host facebook.com 
      facebook.com has address 66.220.156.68
      
      # whois 66.220.156.68 | grep CIDR
      CIDR: 66.220.144.0/20
      

      Mahimo nimong i-block kana nga network sa Facebook gamit ang:

      # iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
      

      Hinumdumi nga ang IP address range nga gigamit sa Facebook mahimong magkalainlain sa imong nasud.

      9. I-setup ang Port Forwarding sa IPtables

      Usahay mahimo nimong ipasa ang trapiko sa usa ka serbisyo sa lain nga pantalan. Mahimo nimong makab-ot kini pinaagi sa mosunod nga sugo:

      # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
      

      Ang sugo sa ibabaw nagpasa sa tanang umaabot nga trapiko sa network interface eth0, gikan sa port 25 ngadto sa port 2525. Mahimo nimong usbon ang mga pantalan sa mga kinahanglan nimo.

      10. I-block ang Network Flood sa Apache Port gamit ang IPtables

      Usahay ang mga IP adres mahimong mangayo ug daghan kaayong koneksyon ngadto sa mga web port sa imong website. Mahimo kini nga hinungdan sa daghang mga isyu ug aron malikayan ang ingon nga mga problema, mahimo nimong gamiton ang mosunod nga lagda:

      # iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
      

      Ang sugo sa ibabaw naglimite sa umaabot nga mga koneksyon gikan sa kada minuto ngadto sa 100 ug nagtakda ug limit burst ngadto sa 200. Mahimo nimong usbon ang limitasyon ug limit-burst sa imong kaugalingon nga piho nga mga kinahanglanon.

      11. I-block ang umaabot nga Ping Requests sa IPtables

      Ang ubang mga administrador sa sistema gusto nga babagan ang umaabot nga mga hangyo sa ping tungod sa mga kabalaka sa seguridad. Samtang ang hulga dili kaayo dako, maayo nga mahibal-an kung unsaon pag-block ang ingon nga hangyo:

      # iptables -A INPUT -p icmp -i eth0 -j DROP
      

      12. Tugoti ang loopback Access

      Ang loopback nga pag-access (pag-access gikan sa 127.0.0.1) importante ug kinahanglan nimo kining biyaan nga aktibo:

      # iptables -A INPUT -i lo -j ACCEPT
      # iptables -A OUTPUT -o lo -j ACCEPT
      

      13. Paghupot ug Log sa Nahulog nga mga Pakete sa Network sa mga IPtable

      Kung gusto nimo i-log ang nahulog nga mga pakete sa interface sa network eth0, mahimo nimong gamiton ang mosunod nga mando:

      # iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"
      

      Mahimo nimong usbon ang bili pagkahuman sa \--log-prefix\ sa usa ka butang pinaagi sa imong gusto. Ang mga mensahe naka-log in /var/log/messages ug mahimo nimo kining pangitaon gamit ang:

      # grep "IPtables dropped packets:" /var/log/messages
      

      14. I-block ang Access sa Piho nga MAC Address sa IPtables

      Mahimo nimong babagan ang pag-access sa imong sistema gikan sa piho nga MAC address pinaagi sa paggamit sa:

      # iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
      

      Siyempre, kinahanglan nimong usbon ang \00:00:00:00:00\ gamit ang aktuwal nga MAC address nga gusto nimong babagan.

      15. Limitahi ang Gidaghanon sa Kadungan nga Koneksyon kada IP Address

      Kung dili nimo gusto nga adunay daghang kadungan nga koneksyon nga gitukod gikan sa usa ka IP address sa gihatag nga pantalan mahimo nimo gamiton ang mando sa ubos:

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

      Ang sugo sa ibabaw nagtugot dili labaw pa sa 3 koneksyon kada kliyente. Siyempre, mahimo nimong usbon ang numero sa port aron magkatugma sa lainlaing serbisyo. Usab ang --connlimit-above kinahanglang usbon aron mohaum sa imong gikinahanglan.

      16. Pangitaa sulod sa IPtables Rule

      Kung nahubit na nimo ang imong mga lagda sa iptables, gusto nimo pangitaon matag karon ug unya ug mahimo’g kinahanglan nimo kini usbon. Usa ka dali nga paagi sa pagpangita sa sulod sa imong mga lagda mao ang paggamit:

      # iptables -L $table -v -n | grep $string
      

      Sa pananglitan sa ibabaw, kinahanglan nimong usbon ang $table sa aktuwal nga lamesa diin gusto nimong pangitaon ug $string sa aktuwal nga string nga imong gipangita.

      Ania ang usa ka pananglitan:

      # iptables -L INPUT -v -n | grep 192.168.0.100
      

      17. Ipasabot ang Bag-ong IPTables Chain

      Uban sa iptables, mahimo nimong ipasabut ang imong kaugalingon nga kadena ug tipigan ang naandan nga mga lagda niini. Aron mahibal-an ang usa ka kadena, gamita ang:

      # iptables -N custom-filter
      

      Karon mahimo nimong susihon kung naa ang imong bag-ong filter:

      # iptables -L
      
      Chain INPUT (policy ACCEPT)
      target prot opt source destination
      
      Chain FORWARD (policy ACCEPT)
      target prot opt source destination
      Chain OUTPUT (policy ACCEPT)
      target prot opt source destination
      Chain custom-filter (0 references)
      target prot opt source destination

      18. Flush IPtables Firewall Chains o Rules

      Kung gusto nimo i-flush ang imong mga kadena sa firewall, mahimo nimong gamiton ang:

      # iptables -F
      

      Mahimo nimong i-flush ang mga kadena gikan sa piho nga lamesa gamit ang:

      # iptables -t nat -F
      

      Mahimo nimong usbon ang \nat\ gamit ang aktuwal nga lamesa diin ang mga kadena gusto nimong i-flush.

      19. I-save ang IPtables Rules sa usa ka File

      Kung gusto nimong tipigan ang imong mga lagda sa firewall, mahimo nimong gamiton ang iptables-save nga sugo. Mahimo nimong gamiton ang mosunod aron i-save ug tipigan ang imong mga lagda sa usa ka file:

      # iptables-save > ~/iptables.rules
      

      Anaa kanimo kung asa nimo ibutang ang file ug unsaon nimo kini pagngalan.

      20. Iuli ang IPtables Rules gikan sa usa ka File

      Kung gusto nimo ibalik ang usa ka lista sa mga lagda sa iptables, mahimo nimong gamiton ang iptables-restore. Ang mando ingon niini:

      # iptables-restore < ~/iptables.rules
      

      Siyempre ang agianan sa imong file sa mga lagda mahimong lahi.

      21. I-setup ang mga Lagda sa IPtable para sa Pagsunod sa PCI

      Ang ubang mga tigdumala sa sistema mahimong gikinahanglan nga i-configure ang ilang mga server aron mahimong PCI compiliant. Adunay daghang mga kinahanglanon sa lainlaing mga tigbaligya sa pagsunod sa PCI, apan adunay pipila nga kasagaran.

      Sa kadaghanan sa mga kaso, kinahanglan nimo nga adunay labaw sa usa ka IP address. Kinahanglan nimong ipadapat ang mga lagda sa ubos para sa IP address sa site. Pag-amping pag-ayo sa paggamit sa mga lagda sa ubos ug gamita lang kini kung sigurado ka sa imong gibuhat:

      # iptables -I INPUT -d SITE -p tcp -m multiport --dports 21,25,110,143,465,587,993,995 -j DROP
      

      Kung mogamit ka sa cPanel o parehas nga control panel, kinahanglan nimo nga babagan usab ang mga pantalan niini. Ania ang usa ka pananglitan:

      # iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports  2082,2083,2095,2096,2525,2086,2087 -j DROP
      

      Mubo nga sulat: Aron masiguro nga matuman nimo ang mga kinahanglanon sa imong PCI vendor, susiha pag-ayo ang ilang report ug gamita ang gikinahanglang mga lagda. Sa pipila ka mga kaso kinahanglan nimo nga babagan ang trapiko sa UDP sa pipila nga mga pantalan usab.

      22. Tugoti ang Natukod ug May Kalabutan nga mga Koneksyon

      Ingon nga ang trapiko sa network bulag sa umaabot ug paggawas, gusto nimong tugutan ang natukod ug may kalabutan nga umaabot nga trapiko. Para sa umaabot nga mga koneksyon buhata kini sa:

      # iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
      

      Alang sa gawas nga paggamit:

      # iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
      

      23. Ihulog ang dili balido nga mga pakete sa mga IPtable

      Posible nga adunay pipila ka mga pakete sa network nga gimarkahan nga dili balido. Ang ubang mga tawo mas gusto nga i-log ang mga pakete, apan ang uban gusto nga ihulog kini. Aron ihulog nga dili balido ang mga pakete, mahimo nimong gamiton ang:

      # iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 
      

      24. I-block ang Koneksyon sa Network Interface

      Ang ubang mga sistema mahimong adunay labaw sa usa ka interface sa network. Mahimo nimong limitahan ang pag-access sa interface sa network o pag-block sa mga koneksyon gikan sa piho nga IP address.

      Pananglitan:

      # iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
      

      Usba ang \xxx.xxx.xxx.xxx gamit ang aktuwal nga IP address (o network) nga gusto nimong babagan.

      25. I-disable ang Outgoing Mails pinaagi sa IPTables

      Kung ang imong sistema dili kinahanglan magpadala bisan unsang mga email, mahimo nimong babagan ang mga outgoing port sa mga port sa SMTP. Pananglitan mahimo nimong gamiton kini:

      # iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
      

      Konklusyon

      Ang Iptables usa ka kusgan nga firewall nga dali ka makabenepisyo. Importante alang sa matag tigdumala sa sistema nga makakat-on bisan sa mga sukaranan sa mga iptables. Kung gusto nimo makit-an ang mas detalyado nga kasayuran bahin sa mga iptables ug ang mga kapilian niini girekomenda nga basahon kini nga manwal:

      # man iptables
      

      Kung sa imong hunahuna kinahanglan namon nga idugang ang daghang mga mando sa kini nga lista, palihug ipaambit kini kanamo, pinaagi sa pagsumite niini sa seksyon sa komento sa ubos.