Shorewall - Firewall ທີ່ມີລະດັບສູງ ສຳ ລັບ ກຳ ຫນົດຄ່າ Linux Server


ການຕັ້ງ Firewall ໃນ Linux ສາມາດເປັນຕາຢ້ານຫຼາຍ ສຳ ລັບຄົນທີ່ມາ ໃໝ່, ຫລື ສຳ ລັບຄົນທີ່ບໍ່ຄຸ້ນເຄີຍກັບ iptables. ໂຊກດີ, ມີວິທີແກ້ໄຂງ່າຍທີ່ສຸດໃນ Shorewall.

ໃນບົດສອນທີ່ມີຫຼາຍພາກສ່ວນນີ້, ຂ້າພະເຈົ້າຈະເຮັດໃຫ້ທ່ານເລີ່ມຕົ້ນດ້ວຍ Shorewall, ແລະຍ່າງທ່ານຜ່ານຫົວຂໍ້ທີ່ກ້າວ ໜ້າ ກວ່າເກົ່າດ້ວຍລະບົບໄຟວໍ.

Shorewall ແມ່ນຫຍັງ?

Shorewall ແມ່ນສິ່ງ ຈຳ ເປັນດ້ານ ໜ້າ ຂອງ iptables, ແຕ່ມັນແມ່ນສະພາບແວດລ້ອມຂອງເສັ້ນ ຄຳ ສັ່ງທີ່ຢູ່ທາງ ໜ້າ ເຊິ່ງໃຊ້ໄຟລ໌ຂໍ້ຄວາມ ຈຳ ນວນ ໜຶ່ງ ສຳ ລັບການຕັ້ງຄ່າຂອງມັນ. ໃນຂະນະທີ່ Shorewall ແມ່ນລະບົບໄຟວໍທີ່ມີຄວາມເຂັ້ມແຂງເຊິ່ງສາມາດປັບຂະ ໜາດ ຜ່ານເຄືອຂ່າຍທີ່ມີຂະ ໜາດ ໃຫຍ່ຫຼາຍທີ່ໃຫ້ບໍລິການເຄື່ອງຫຼາຍເຄື່ອງ, ພວກເຮົາ ກຳ ລັງຈະເລີ່ມຕົ້ນດ້ວຍການຕັ້ງຄ່າສອງ ໜ້າ ຈໍຂັ້ນພື້ນຖານແລະຕັດພື້ນຖານ.

ການຕັ້ງຄ່າແບບໂຕ້ຕອບສອງຢ່າງປະກອບດ້ວຍເຄື່ອງຈັກທີ່ມີສອງພອດ Ethernet, ໜຶ່ງ ຈະເຂົ້າມາ, ແລະອີກອັນ ໜຶ່ງ ຈະອອກສູ່ເຄືອຂ່າຍທ້ອງຖິ່ນ.

ການຕິດຕັ້ງ Shorewall ໃນ Linux

Shorewall ສາມາດຕິດຕັ້ງໄດ້ໂດຍໃຊ້ເຄື່ອງມືຈັດການຊຸດ apt-get ແລະ yum.

$ sudo apt-get install shorewall6
$ sudo yum install shorewall6

ຫລັງຈາກຕິດຕັ້ງແລ້ວ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງຄັດລອກແບບການຕັ້ງຄ່າຕົວຢ່າງຈາກໄດເລກະທໍລີ“/usr/share/doc/shorewall” ໄປຫາໄດເລກະທໍລີແບບເລີ່ມຕົ້ນຂອງ Shorewall“/etc/shorewall”.

$ sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall

ແລະຫຼັງຈາກນັ້ນ cd ໃສ່/etc/shorewall.

$ cd /etc/shorewall

ຖ້າພວກເຮົາເບິ່ງທີ່ຢູ່ໃນໄດເລກະທໍລີນີ້, ພວກເຮົາເຫັນເອກະສານແລະເອກະສານ shorewall.conf. Shorewall ເບິ່ງເຄືອຂ່າຍເປັນກຸ່ມຂອງເຂດທີ່ແຕກຕ່າງກັນ, ດັ່ງນັ້ນເອກະສານ ທຳ ອິດທີ່ພວກເຮົາຕ້ອງການທີ່ຈະພິຈາລະນາເບິ່ງມັນແມ່ນເອກະສານ“/etc/shorewall/zones”.

ໃນນີ້, ພວກເຮົາເຫັນວ່າມີສາມເຂດທີ່ ກຳ ນົດໂດຍຄ່າເລີ່ມຕົ້ນ: ສຸດທິ, ທ້ອງຖິ່ນແລະທັງ ໝົດ. ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າ Shorewall ປະຕິບັດຕໍ່ເຄື່ອງຈັກໄຟວໍເອງເປັນເຂດຂອງຕົນເອງແລະເກັບມັນໄວ້ໃນຕົວແປທີ່ເອີ້ນວ່າ $FW. ທ່ານຈະເຫັນຕົວແປນີ້ຕະຫຼອດສ່ວນທີ່ເຫຼືອຂອງແຟ້ມການຕັ້ງຄ່າ.

ເອກະສານ“/etc/shorewall/zones” ແມ່ນ ຄຳ ອະທິບາຍດ້ວຍຕົນເອງ. ທ່ານມີເຂດສຸດທິ (ອິນເຕີເນັດປະເຊີນຫນ້າ), ເຂດທ້ອງຖິ່ນ (LAN ປະເຊີນຫນ້າ), ແລະທັງ ໝົດ, ເຊິ່ງແມ່ນທຸກຢ່າງ.

ການຕິດຕັ້ງນີ້ເຮັດໃຫ້ສິ່ງຕໍ່ໄປນີ້:

<

  • ມັນອະນຸຍາດໃຫ້ທຸກ ຄຳ ຮ້ອງຂໍເຊື່ອມຕໍ່ຈາກເຂດທ້ອງຖິ່ນ (LAN) ເຖິງເຂດສຸດທິ (ອິນເຕີເນັດ).
  • ຫຼຸດລົງທຸກ ຄຳ ຂໍການເຊື່ອມຕໍ່ (ບໍ່ສົນໃຈ) ຈາກເຂດສຸດທິຈົນເຖິງ ກຳ ແພງໄຟແລະ LAN.
  • ປະຕິເສດແລະບັນທຶກທຸກ ຄຳ ຮຽກຮ້ອງອື່ນໆ.
  • ບິດ LOG LEVEL ຄວນຈະຄຸ້ນເຄີຍກັບທຸກໆຄົນທີ່ໄດ້ເຮັດການບໍລິຫານກັບ Apache, MySQL, ຫຼື ຈຳ ນວນອື່ນໆຂອງໂປແກຼມ FOSS ອື່ນໆ. ໃນກໍລະນີນີ້, ພວກເຮົາ ກຳ ລັງບອກ Shorewall ໃຫ້ໃຊ້ລະດັບຂໍ້ມູນກ່ຽວກັບການຕັດໄມ້.

    ຖ້າທ່ານຕ້ອງການໃຫ້ Firewall ຂອງທ່ານມີໃຫ້ທ່ານສາມາດຈັດການຈາກ LAN ຂອງທ່ານ, ທ່ານສາມາດເພີ່ມສາຍຕໍ່ໄປນີ້ໃສ່ແຟ້ມ“/etc/shorewall/policy”.

    #SOURCE		DEST	POLICY		LOG		LEVEL		LIMIT:BURST
    loc			$FW		ACCEPT
    $FW			loc		ACCEPT

    ໃນປັດຈຸບັນທີ່ເຂດແລະນະໂຍບາຍຂອງພວກເຮົາຖືກ ກຳ ນົດໄວ້, ພວກເຮົາຕ້ອງ ກຳ ນົດການໂຕ້ຕອບຂອງພວກເຮົາ. ທ່ານເຮັດສິ່ງນີ້ໂດຍການແກ້ໄຂເອກະສານ“/etc/shorewall/interfaces”.

    ນີ້, ພວກເຮົາໄດ້ ກຳ ນົດອິນເຕີເນັດທີ່ ກຳ ລັງປະເຊີນ ໜ້າ ຂອງພວກເຮົາເປັນ eth0 ໃຫ້ກັບເຂດສຸດທິ. ທາງຝ່າຍ LAN ຂອງພວກເຮົາ, ພວກເຮົາໄດ້ ກຳ ນົດການໂຕ້ຕອບອື່ນ, eth1, ໃຫ້ກັບເຂດທ້ອງຖິ່ນ. ກະລຸນາປັບປ່ຽນເອກະສານນີ້ໃຫ້ ເໝາະ ສົມກັບການຕັ້ງຄ່າຂອງທ່ານຢ່າງຖືກຕ້ອງ.

    ຕົວເລືອກຕ່າງໆທີ່ທ່ານສາມາດຈັດວາງ ສຳ ລັບອິນເຕີເຟດເຫຼົ່ານີ້ແມ່ນກວ້າງຂວາງ, ແລະຖືກອະທິບາຍດີທີ່ສຸດໃນລາຍລະອຽດໃນ ໜ້າ ຜູ້ຊາຍ.

    $ man shorewall-interfaces

    ບາງສ່ວນຂອງພວກມັນແມ່ນໄວດັ່ງຕໍ່ໄປນີ້:

    <

  • nosmurfs - ການກັ່ນຕອງແພັກເກັດທີ່ມີທີ່ຢູ່ການອອກອາກາດເປັນແຫລ່ງທີ່ມາ.
  • logmartians - logets log ທີ່ມີທີ່ຢູ່ທີ່ບໍ່ສາມາດເຮັດໄດ້.
  • routefilter - ການກັ່ນຕອງເສັ້ນທາງແກ່ນ ສຳ ລັບການຕ້ານການຂີ້ເຫຍື່ອ.
  • ແນ່ນອນ, ດຽວນີ້ລະບົບຂອງພວກເຮົາ ກຳ ລັງປ້ອງກັນໄຟ, ພວກເຮົາ ກຳ ລັງຕ້ອງການການເຊື່ອມຕໍ່ທີ່ແນ່ນອນເພື່ອຈະໄດ້ຮັບອະນຸຍາດຜ່ານເພື່ອໃຫ້ໄດ້ສິ່ງທີ່ພວກເຮົາຕ້ອງເຮັດ. ທ່ານ ກຳ ນົດສິ່ງເຫລົ່ານີ້ໃນເອກະສານກົດລະບຽບທີ່“/etc/shorewall/rules“.

    ເອກະສານນີ້ເບິ່ງຄືວ່າສັບສົນໃນຕອນ ທຳ ອິດ, ສ່ວນໃຫຍ່ແມ່ນຍ້ອນວ່າຄໍ ລຳ ຊ້ອນກັນ, ແຕ່ສ່ວນຫົວແມ່ນ ຄຳ ອະທິບາຍດ້ວຍຕົນເອງ. ຫນ້າທໍາອິດ, ທ່ານມີຄໍລໍາ ACTION, ເຊິ່ງອະທິບາຍສິ່ງທີ່ທ່ານຕ້ອງການປະຕິບັດ.

    ຖັດໄປ, ທ່ານມີຫົວ SOURCE ບ່ອນທີ່ທ່ານ ກຳ ນົດເຂດທີ່ຊຸດຂໍ້ມູນ ກຳ ເນີດ. ຈາກນັ້ນ, ທ່ານມີ DEST, ຫຼືຈຸດ ໝາຍ ປາຍທາງຂອງທ່ານ, ເຊິ່ງແມ່ນເຂດຫລືທີ່ຢູ່ IP ຂອງຈຸດ ໝາຍ ປາຍທາງ. ໃຫ້ໃຊ້ຕົວຢ່າງ.

    ສົມມຸດວ່າທ່ານຕ້ອງການທີ່ຈະແລ່ນ server SSH ຢູ່ຫລັງ firewall ຂອງທ່ານຢູ່ໃນເຄື່ອງທີ່ມີທີ່ຢູ່ IP ຂອງ 192.168.1.25. ທ່ານບໍ່ພຽງແຕ່ຕ້ອງໄດ້ເປີດພອດທີ່ຢູ່ໃນ ກຳ ແພງໄຟຂອງທ່ານເທົ່ານັ້ນ, ແຕ່ທ່ານຍັງຕ້ອງໄດ້ບອກກັບ firewall ວ່າການຈະລາຈອນໃດໆທີ່ເຂົ້າມາໃນພອດ 22 ຈຳ ເປັນຕ້ອງໄດ້ຮັບການສົ່ງຕໍ່ເຄື່ອງທີ່ 192.168.1.25.

    ນີ້ເອີ້ນວ່າ Port Forwarding. ມັນເປັນຄຸນລັກສະນະທົ່ວໄປທີ່ສຸດໃນ firewall/routers ສ່ວນໃຫຍ່. ໃນ "/ etc/shorewall/rules", ທ່ານຈະປະສົບຜົນ ສຳ ເລັດໂດຍການເພີ່ມເສັ້ນທາງເຊັ່ນນີ້:

    SSH(DNAT)	net		loc:192.168.1.25

    ຂ້າງເທິງນີ້, ພວກເຮົາໄດ້ ກຳ ນົດຊຸດທີ່ມີຈຸດປະສົງຂອງ SSH ທີ່ມາຈາກເຂດສຸດທິຈົນເຖິງ ກຳ ແພງໄຟຕ້ອງໄດ້ຮັບການຂົນສົ່ງ (DNAT) ໄປທີ່ Port 22 ເທິງເຄື່ອງທີ່ມີທີ່ຢູ່ 192.168.1.25.

    ນີ້ເອີ້ນວ່າການແປເຄືອຂ່າຍທີ່ຢູ່ Network ຫຼື NAT. “ D” ພຽງແຕ່ບອກກັບ Shorewall ວ່ານີ້ແມ່ນ NAT ສຳ ລັບທີ່ຢູ່ປາຍທາງ.

    ເພື່ອໃຫ້ສິ່ງນີ້ເຮັດວຽກ, ທ່ານຕ້ອງມີການສະ ໜັບ ສະ ໜູນ NAT ທີ່ເປີດໃຊ້ໃນແກ່ນຂອງທ່ານ. ຖ້າທ່ານຕ້ອງການ NAT ແລະບໍ່ມີມັນ, ກະລຸນາເບິ່ງບົດແນະ ນຳ ຂອງຂ້ອຍກ່ຽວກັບການແນະ ນຳ Debian Kernel.

    ລິ້ງອ້າງອີງ

    ຫນ້າທໍາອິດ Shorewall

    ໃນບົດຂຽນຕໍ່ໄປ, ພວກເຮົາຈະຍ່າງຜ່ານບາງຫົວຂໍ້ທີ່ກ້າວ ໜ້າ, ແຕ່ວ່າມັນຄວນຈະມີຢູ່ຫຼາຍບ່ອນນີ້ເພື່ອໃຫ້ທ່ານເລີ່ມຕົ້ນໃນຕອນນີ້. ດັ່ງທີ່ເຄີຍເຮັດ, ກະລຸນາເບິ່ງ ໜ້າ ຜູ້ຊາຍເພື່ອຄວາມເຂົ້າໃຈເລິກເຊິ່ງກວ່າ.