13 ຄຳ ຖາມ ສຳ ພາດກ່ຽວກັບ Linux iptables Firewall


ນາງ Nishita Agarwal, ຜູ້ຢ້ຽມຢາມ Tecmint ເລື້ອຍໆແບ່ງປັນປະສົບການ (ຄຳ ຖາມແລະ ຄຳ ຕອບ) ໃຫ້ພວກເຮົາກ່ຽວກັບການ ສຳ ພາດວຽກທີ່ນາງຫາກໍ່ໃຫ້ຢູ່ໃນບໍລິສັດໂຮດຕິ້ງທີ່ເປັນເຈົ້າຂອງເອກະຊົນໃນ Pune, ອິນເດຍ. ນາງໄດ້ຖືກຖາມຫລາຍໆ ຄຳ ຖາມໃນຫລາຍຫົວຂໍ້ເຖິງຢ່າງໃດກໍ່ຕາມນາງເປັນຜູ້ຊ່ຽວຊານດ້ານ iptables ແລະນາງຕ້ອງການແບ່ງປັນ ຄຳ ຖາມເຫລົ່ານັ້ນແລະ ຄຳ ຕອບຂອງພວກເຂົາ (ນາງໃຫ້) ກ່ຽວຂ້ອງກັບ iptables ກັບຄົນອື່ນທີ່ອາດຈະໃຫ້ ສຳ ພາດໃນອະນາຄົດອັນໃກ້ນີ້

ທຸກ ຄຳ ຖາມແລະ ຄຳ ຕອບຂອງພວກເຂົາແມ່ນຂຽນຄືນໂດຍອີງຕາມຄວາມຊົງ ຈຳ ຂອງ Nishita Agarwal.

“ ສະບາຍດີເພື່ອນ! ຂ້ອຍຊື່ Nishita Agarwal. ຂ້ອຍໄດ້ຮຽນຕໍ່ປະລິນຍາຕີດ້ານເຕັກໂນໂລຢີ. ເຂດພິເສດຂອງຂ້ອຍແມ່ນ UNIX ແລະ Variants ຂອງ UNIX (BSD, Linux) ເຮັດໃຫ້ຂ້ອຍສົນໃຈຕັ້ງແຕ່ເວລາທີ່ຂ້ອຍໄດ້ຍິນ. ຂ້ອຍມີປະສົບການ 1+ ປີໃນການເກັບຮັກສາ. ຂ້ອຍ ກຳ ລັງຊອກຫາການປ່ຽນແປງວຽກທີ່ສິ້ນສຸດລົງກັບບໍລິສັດໂຮດຕິ້ງທີ່ເມືອງ Pune, ປະເທດອິນເດຍ.”

ນີ້ແມ່ນການເກັບ ກຳ ສິ່ງທີ່ຂ້ອຍຖືກຖາມໃນລະຫວ່າງການ ສຳ ພາດ. ຂ້າພະເຈົ້າໄດ້ບັນທຶກພຽງແຕ່ ຄຳ ຖາມເຫຼົ່ານັ້ນແລະ ຄຳ ຕອບຂອງພວກເຂົາທີ່ກ່ຽວຂ້ອງກັບ iptables ອີງຕາມຄວາມຊົງ ຈຳ ຂອງຂ້ອຍ. ຫວັງວ່າສິ່ງນີ້ຈະຊ່ວຍທ່ານໃນການແກ້ບົດ ສຳ ພາດຂອງທ່ານ.

ຕອບ: ຂ້ອຍໄດ້ໃຊ້ iptables ເປັນເວລາດົນນານແລ້ວແລະຂ້ອຍກໍ່ຮູ້ທັງ iptables ແລະ firewall. Iptables ແມ່ນໂປແກຼມສະ ໝັກ ທີ່ຂຽນເປັນພາສາ C Programming Language ແລະຖືກປ່ອຍອອກພາຍໃຕ້ໃບອະນຸຍາດສາທາລະນະທົ່ວໄປຂອງ GNU. ລາຍລັກອັກສອນ ສຳ ລັບລະບົບການບໍລິຫານລະບົບ, ການປ່ອຍແບບ ໃໝ່ ທີ່ ໝັ້ນ ຄົງຖ້າ iptables 1.4.21. Administrator ພົວພັນກັບ iptables ຜ່ານເຄື່ອງມືດ້ານ ໜ້າ console/GUI ເພື່ອເພີ່ມແລະ ກຳ ນົດກົດລະບຽບຂອງ firewall ເຂົ້າໃນຕາຕະລາງທີ່ ກຳ ນົດໄວ້. Netfilter ແມ່ນໂມດູນທີ່ຖືກສ້າງຂຶ້ນພາຍໃນຂອງແກ່ນທີ່ເຮັດ ໜ້າ ທີ່ໃນການກັ່ນຕອງ.

Firewalld ແມ່ນການປະຕິບັດລ້າສຸດຂອງກົດລະບຽບການກັ່ນຕອງໃນ RHEL/CentOS 7 (ອາດຈະຖືກຈັດຕັ້ງປະຕິບັດໃນການແຈກຈ່າຍອື່ນໆທີ່ຂ້ອຍອາດຈະບໍ່ຮູ້). ມັນໄດ້ທົດແທນການໂຕ້ຕອບ iptables ແລະເຊື່ອມຕໍ່ກັບ netfilter.

ຕອບ: ພະລັງງານມະຫາສານຂອງຜູ້ໃຊ້ໃນຮູບແບບຂອງລະດັບສູງຂອງຄວາມຍືດຫຍຸ່ນແລະຄວາມເຂົ້າໃຈທີ່ດີກວ່າກ່ຽວກັບສິ່ງທີ່ເກີດຂື້ນໃນພື້ນຫລັງ, ຖ້າບໍ່ແມ່ນສິ່ງອື່ນ. GUI ແມ່ນ ສຳ ລັບຜູ້ບໍລິຫານຈົວໃນຂະນະທີ່ຄອນໂຊນແມ່ນ ສຳ ລັບຜູ້ທີ່ມີປະສົບການ.

ຕອບ: iptables ແລະ firewalld ໃຫ້ບໍລິການຈຸດປະສົງດຽວກັນ (Packet Filtering) ແຕ່ມີວິທີການທີ່ແຕກຕ່າງກັນ. iptables flush ກົດລະບຽບທັງ ໝົດ ທີ່ຕັ້ງໄວ້ໃນແຕ່ລະຄັ້ງທີ່ມີການປ່ຽນແປງທີ່ແຕກຕ່າງຈາກ firewalld. ໂດຍປົກກະຕິສະຖານທີ່ຂອງການຕັ້ງຄ່າ iptables ແມ່ນຢູ່ '/ etc/sysconfig/iptables' ໃນຂະນະທີ່ການຕັ້ງຄ່າ firewalld ແມ່ນຢູ່ '/ etc/firewalld /', ເຊິ່ງເປັນຊຸດຂອງເອກະສານ XML. ມັນງ່າຍກວ່າເມື່ອທຽບໃສ່ກັບການຕັ້ງຄ່າຂອງ iptables, ເຖິງຢ່າງໃດກໍ່ຕາມວຽກງານດຽວກັນສາມາດບັນລຸໄດ້ໂດຍໃຊ້ໂປແກຼມການກັ່ນຕອງແບບແພັກເກັດເຊັ່ນ: iptables ແລະ firewalld. Firewalld ໃຊ້ iptables ພາຍໃຕ້ເຄື່ອງຂອງມັນພ້ອມດ້ວຍອິນເຕີເຟດເສັ້ນ ຄຳ ສັ່ງແລະເອກະສານການຕັ້ງຄ່າທີ່ເປັນ XML ແລະກ່າວມາຂ້າງເທິງ.

ຕອບ: ຂ້ອຍຄຸ້ນເຄີຍກັບ iptables ແລະມັນ ກຳ ລັງເຮັດວຽກແລະຖ້າບໍ່ມີສິ່ງໃດທີ່ຮຽກຮ້ອງໃຫ້ມີລັກສະນະແບບເຄື່ອນໄຫວຂອງ firewalld, ເບິ່ງຄືວ່າບໍ່ມີເຫດຜົນຫຍັງທີ່ຈະຍ້າຍການຕັ້ງຄ່າທັງ ໝົດ ຂອງຂ້ອຍຈາກ iptables ໄປເປັນ firewalld. ໃນກໍລະນີຫຼາຍທີ່ສຸດ , ເຖິງຕອນນີ້ຂ້ອຍບໍ່ເຄີຍເຫັນ iptables ສ້າງບັນຫາ. ພ້ອມກັນນັ້ນກົດລະບຽບທົ່ວໄປຂອງເຕັກໂນໂລຢີຂໍ້ມູນຂ່າວສານກ່າວວ່າ“ ເປັນຫຍັງແກ້ໄຂຖ້າມັນບໍ່ແຕກ”. ເຖິງຢ່າງໃດກໍ່ຕາມນີ້ແມ່ນຄວາມຄິດສ່ວນຕົວຂອງຂ້ອຍແລະຂ້ອຍບໍ່ເຄີຍຄິດທີ່ຈະປະຕິບັດ firewalld ຖ້າອົງການຈະປ່ຽນແທນ iptables ດ້ວຍ firewalld.

ຕາຕະລາງທີ່ໃຊ້ໃນ iptables ແມ່ນຫຍັງ? ໃຫ້ຄໍາອະທິບາຍສັ້ນໆກ່ຽວກັບຕາຕະລາງທີ່ໃຊ້ໃນ iptables ແລະຕ່ອງໂສ້ທີ່ພວກເຂົາສະ ໜັບ ສະ ໜູນ.

ຕອບ: ຂໍຂອບໃຈ ສຳ ລັບການຮັບຮູ້. ການເຄື່ອນຍ້າຍໄປຫາ ຄຳ ຖາມສ່ວນ ໜຶ່ງ, ມີສີ່ໂຕະທີ່ໃຊ້ໃນ iptables, ຄື:

<

  • ຕາຕະລາງ Nat
  • ຕາຕະລາງ Mangle
  • ໂຕະກອງ
  • ຕາຕະລາງດິບ
  • ຕາຕະລາງ Nat: ຕາຕະລາງ Nat ແມ່ນຖືກ ນຳ ໃຊ້ຕົ້ນຕໍ ສຳ ລັບການແປ Network Address Address. ແພັກເກັດທີ່ລວດລາຍໄດ້ຮັບທີ່ຢູ່ IP ຂອງພວກເຂົາປ່ຽນແປງຕາມກົດລະບຽບໃນຕາຕະລາງ. ແພັກເກັດຕ່າງໆທີ່ຢູ່ໃນກະແສນ້ ຳ Traverse Nat Table ພຽງແຕ່ຄັ້ງດຽວ. ຕົວຢ່າງ:, ຖ້າວ່າເຄື່ອງຂອງຈາກຊຸດຂອງຊອງຂອງ Packets ຖືກ masqueraded ພວກມັນສ່ວນທີ່ເຫຼືອຢູ່ໃນກະແສຈະບໍ່ຜ່ານຕາຕະລາງນີ້ອີກ. ຂໍແນະ ນຳ ໃຫ້ບໍ່ກັ່ນຕອງໃນຕາຕະລາງນີ້. ລະບົບຕ່ອງໂສ້ທີ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ຈາກ NAT Table ແມ່ນລະບົບຕ່ອງໂສ້ PREROUTING, ຕ່ອງໂສ້ POSTROUTING ແລະຕ່ອງໂສ້ OUTPUT.

    ຕາຕະລາງ Mangle: ດັ່ງທີ່ຊື່ໄດ້ແນະ ນຳ, ຕາຕະລາງນີ້ໃຫ້ບໍລິການເກັບມ້ຽນຊອງ ມັນຖືກນໍາໃຊ້ສໍາລັບການປ່ຽນແປງຊຸດພິເສດ. ມັນສາມາດຖືກ ນຳ ໃຊ້ເພື່ອປ່ຽນເນື້ອໃນຂອງແພັກເກັດຕ່າງໆແລະສ່ວນຫົວຂອງມັນ. ຕາຕະລາງ Mangle ບໍ່ສາມາດໃຊ້ ສຳ ລັບ Masquerading. ຕ່ອງໂສ້ທີ່ຮອງຮັບແມ່ນລະບົບຕ່ອງໂສ້ PREROUTING, ຕ່ອງໂສ້ OUTPUT, ຕ່ອງໂສ້ Forward, INPUT Chain, POSTROUTING Chain.

    ຕາຕະລາງການກັ່ນຕອງ: ຕາຕະລາງການກັ່ນຕອງແມ່ນຕາຕະລາງເລີ່ມຕົ້ນທີ່ໃຊ້ໃນ iptables. ມັນຖືກໃຊ້ ສຳ ລັບການກັ່ນຕອງ Packet. ຖ້າບໍ່ມີກົດລະບຽບໃດຖືກ ກຳ ນົດ, ຕາຕະລາງການກັ່ນຕອງຖືກປະຕິບັດເປັນຕາຕະລາງເລີ່ມຕົ້ນແລະການກັ່ນຕອງແມ່ນເຮັດບົນພື້ນຖານຂອງຕາຕະລາງນີ້. ລະບົບຕ່ອງໂສ້ທີ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ແມ່ນລະບົບຕ່ອງໂສ້ INPUT, ລະບົບຕ່ອງໂສ້ OUTPUT, ລະບົບຕ່ອງໂສ້ FORWARD.

    ຕາຕະລາງດິບ: ຕາຕະລາງດິບເຂົ້າມາປະຕິບັດງານເມື່ອພວກເຮົາຕ້ອງການ ກຳ ນົດການຫຸ້ມຫໍ່ທີ່ໄດ້ຮັບການຍົກເວັ້ນກ່ອນ ໜ້າ ນີ້. ມັນສະຫນັບສະຫນູນລະບົບຕ່ອງໂສ້ PREROUTING ແລະ OUTPUT.

    ຕອບ: ຕໍ່ໄປນີ້ແມ່ນຄຸນຄ່າເປົ້າ ໝາຍ ທີ່ພວກເຮົາສາມາດ ກຳ ນົດໄດ້ໃນເປົ້າ ໝາຍ ໃນ iptables:

    <

  • <
  • ຍອມຮັບ: ຍອມຮັບແພັກເກັດ
  • QUEUE: ແພັກເກດແພ່ເຖິງພື້ນທີ່ຂອງຜູ້ໃຊ້ (ສະຖານທີ່ທີ່ຜູ້ໃຊ້ແລະຜູ້ຂັບຂີ່ອາໃສຢູ່)
  • ຢຸດ: ຊຸດລົງ
  • ສົ່ງຄືນ: ກັບຄືນການຄວບຄຸມສູ່ລະບົບຕ່ອງໂສ້ການໂທແລະຢຸດການປະຕິບັດກົດລະບຽບຕໍ່ໄປ ສຳ ລັບແພັກເກັດປະຈຸບັນໃນຕ່ອງໂສ້.
  • ທ່ານຈະກວດສອບ iptables rpm ທີ່ຕ້ອງການຕິດຕັ້ງ iptables ໃນ CentOS ໄດ້ແນວໃດ?.

    ຕອບ: iptables rpm ແມ່ນລວມຢູ່ໃນການຕິດຕັ້ງແບບ CentOS ມາດຕະຖານແລະພວກເຮົາບໍ່ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງມັນແຍກຕ່າງຫາກ. ພວກເຮົາສາມາດກວດສອບ rpm ໄດ້ທີ່:

    # rpm -qa iptables
    
    iptables-1.4.21-13.el7.x86_64
    

    ຖ້າທ່ານຕ້ອງການຕິດຕັ້ງມັນ, ທ່ານອາດຈະເຮັດແນວໃດເພື່ອໃຫ້ມັນ.

    # yum install iptables-services
    

    ຕອບ: ເພື່ອກວດກາເບິ່ງສະຖານະພາບຂອງ iptables, ທ່ານອາດຈະໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ຢູ່ປາຍທາງ.

    # service iptables status			[On CentOS 6/5]
    # systemctl status iptables			[On CentOS 7]
    

    ຖ້າມັນບໍ່ໄດ້ເຮັດວຽກ, ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ອາດຈະຖືກປະຕິບັດ.

    ---------------- On CentOS 6/5 ---------------- 
    # chkconfig --level 35 iptables on
    # service iptables start
    
    ---------------- On CentOS 7 ---------------- 
    # systemctl enable iptables 
    # systemctl start iptables 
    

    ພວກເຮົາຍັງອາດຈະກວດເບິ່ງວ່າໂມດູນ iptables ຖືກໂຫລດຫລືບໍ່ເຊັ່ນ:

    # lsmod | grep ip_tables
    

    ຕອບ: ກົດລະບຽບໃນປະຈຸບັນໃນ iptables ສາມາດທົບທວນງ່າຍໆຄື:

    # iptables -L
    

    ຜົນໄດ້ຮັບຕົວຢ່າງ

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

    ຕອບ: ເພື່ອໄຫລສາຍໂສ້ iptables ໂດຍສະເພາະ, ທ່ານອາດຈະໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

     
    # iptables --flush OUTPUT
    

    ເພື່ອ Flush ລະຫັດ iptables ທັງ ໝົດ.

    # iptables --flush
    

    ຕອບ: ສະຖານະການຂ້າງເທິງນີ້ສາມາດປະສົບຜົນ ສຳ ເລັດໄດ້ງ່າຍໆໂດຍການເຮັດ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.

    # iptables -A INPUT -s 192.168.0.7 -j ACCEPT 
    

    ພວກເຮົາອາດຈະລວມເອົາ slash ມາດຕະຖານຫຼື ໜ້າ ກາກ subnet ໃນແຫລ່ງທີ່ມາ:

    # iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT 
    # iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
    

    ຕອບ: ຫວັງວ່າ ssh ກຳ ລັງແລ່ນຢູ່ port 22 ເຊິ່ງມັນກໍ່ເປັນພອດເລີ່ມຕົ້ນ ສຳ ລັບ ssh, ພວກເຮົາສາມາດເພີ່ມກົດລະບຽບໃຫ້ iptables ຄື:

    ເພື່ອ ACCEPT ຊອງ tcp ສຳ ລັບບໍລິການ ssh (ພອດ 22).

    # iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 
    

    ເພື່ອ REJECT ຫຸ້ມຫໍ່ tcp ສຳ ລັບບໍລິການ ssh (ພອດ 22).

    # iptables -A INPUT -s -p tcp --dport 22 -j REJECT
    

    ເຖິງຊອງ DENY tcp ສຳ ລັບບໍລິການ ssh (ພອດ 22).

     
    # iptables -A INPUT -s -p tcp --dport 22 -j DENY
    

    ເພື່ອ DROP ຊອງ tcp ສຳ ລັບບໍລິການ ssh (ພອດ 22).

     
    # iptables -A INPUT -s -p tcp --dport 22 -j DROP
    

    ຕອບ: ດີທັງ ໝົດ ທີ່ຂ້ອຍຕ້ອງການໃຊ້ແມ່ນຕົວເລືອກ 'multiport' ກັບ iptables ຕາມດ້ວຍເລກພອດທີ່ຈະຖືກບລັອກແລະສະຖານະການຂ້າງເທິງສາມາດປະສົບຜົນ ສຳ ເລັດໄດ້ເປັນຢ່າງດຽວ.

    # iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP
    

    ກົດລະບຽບທີ່ເປັນລາຍລັກອັກສອນສາມາດກວດສອບໄດ້ໂດຍໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມ.

    # iptables -L
    
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    DROP       tcp  --  192.168.0.6          anywhere             multiport dports ssh,telnet,http,webcache
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

    ຜູ້ ສຳ ພາດ: ນັ້ນແມ່ນສິ່ງທີ່ຂ້ອຍຢາກຖາມ. ທ່ານແມ່ນພະນັກງານທີ່ມີຄ່າທີ່ພວກເຮົາບໍ່ຄວນພາດ. ຂ້ອຍຈະແນະ ນຳ ຊື່ຂອງເຈົ້າໃຫ້ HR. ຖ້າທ່ານມີ ຄຳ ຖາມໃດໆທີ່ທ່ານອາດຈະຖາມຂ້ອຍ.

    ໃນຖານະເປັນຜູ້ສະ ໝັກ ຂ້ອຍບໍ່ຕ້ອງການຂ້າການສົນທະນາດັ່ງນັ້ນຈຶ່ງສືບຕໍ່ສອບຖາມກ່ຽວກັບໂຄງການຕ່າງໆທີ່ຂ້ອຍຈະຈັດການຖ້າຖືກຄັດເລືອກແລະສິ່ງໃດທີ່ເປັນການເປີດອື່ນໆໃນບໍລິສັດ. ບໍ່ໄດ້ກ່າວເຖິງຮອບ HR ແມ່ນບໍ່ຍາກທີ່ຈະແຕກແລະຂ້ອຍໄດ້ຮັບໂອກາດ.

    ນອກຈາກນີ້ຂ້າພະເຈົ້າຂໍຂອບໃຈ Avishek ແລະ Ravi (ເຊິ່ງຂ້ອຍເປັນເພື່ອນນັບຕັ້ງແຕ່ດົນນານ) ທີ່ໄດ້ໃຊ້ເວລາເພື່ອບັນທຶກການ ສຳ ພາດຂອງຂ້ອຍ.

    ເພື່ອນ! ຖ້າທ່ານໄດ້ໃຫ້ການ ສຳ ພາດດັ່ງກ່າວແລະທ່ານຢາກແບ່ງປັນປະສົບການ ສຳ ພາດຂອງທ່ານໃຫ້ກັບຜູ້ອ່ານ Tecmint ຫຼາຍລ້ານຄົນທົ່ວໂລກບໍ? ຈາກນັ້ນສົ່ງ ຄຳ ຖາມແລະ ຄຳ ຕອບຂອງທ່ານມາທີ່ [email ຫຼືທ່ານອາດຈະສົ່ງປະສົບການ ສຳ ພາດຂອງທ່ານໂດຍໃຊ້ແບບຟອມຕໍ່ໄປນີ້.

    ຂອບໃຈ! ຮັກສາການເຊື່ອມຕໍ່. ພ້ອມທັງແຈ້ງໃຫ້ຂ້ອຍທາບວ່າຂ້ອຍສາມາດຕອບ ຄຳ ຖາມໄດ້ຢ່າງຖືກຕ້ອງຫຼາຍກວ່າສິ່ງທີ່ຂ້ອຍໄດ້ເຮັດ.