ວິທີການປະຕິບັດການກັ່ນຕອງ Packet, ການແປພາສາທີ່ຢູ່ຂອງເຄືອຂ່າຍແລະ ກຳ ນົດພາລາມິເຕີ Kernel Runtime - ພາກທີ 2


ດັ່ງທີ່ໄດ້ສັນຍາໄວ້ໃນພາກທີ 1 (“ ການຕັ້ງຄ່າເຄືອຂ່າຍແບບຄົງທີ່”), ໃນບົດຄວາມນີ້ (ພາກທີ 2 ຂອງຊຸດ RHCE) ພວກເຮົາຈະເລີ່ມຕົ້ນໂດຍແນະ ນຳ ຫຼັກການຂອງການກັ່ນຕອງແພັກເກັດແລະການແປທີ່ຢູ່ເຄືອຂ່າຍ (NAT) ໃນ Red Hat Enterprise Linux 7, ກ່ອນ ດຳ ນ້ ຳ ເຂົ້າໄປໃນການຕັ້ງຄ່າຕົວ ກຳ ນົດຂອງເວລາ kernel ເພື່ອປັບປ່ຽນພຶດຕິ ກຳ ຂອງແກ່ນຖ້າ ກຳ ລັງມີການປ່ຽນແປງຫຼືຄວາມຕ້ອງການບາງຢ່າງເກີດຂື້ນ.

ການກັ່ນຕອງ Packet Network ໃນ RHEL 7

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

ດັ່ງທີ່ທ່ານອາດຈະຮູ້, ເລີ່ມຕົ້ນດ້ວຍ RHEL 7, ການບໍລິການເລີ່ມຕົ້ນທີ່ຄວບຄຸມລະບຽບການຂອງໄຟວໍແມ່ນ firewalld. ເຊັ່ນດຽວກັບ iptables, ມັນເວົ້າກັບໂມດູນ netfilter ໃນ Linux kernel ເພື່ອກວດກາແລະ ໝູນ ໃຊ້ແພັກເກັດເຄືອຂ່າຍ. ບໍ່ຄືກັບ iptables, ການປັບປຸງສາມາດມີຜົນບັງຄັບໃຊ້ທັນທີໂດຍບໍ່ມີການຂັດຂວາງການເຊື່ອມຕໍ່ທີ່ໃຊ້ງານຢູ່ - ທ່ານບໍ່ ຈຳ ເປັນຕ້ອງເລີ່ມການບໍລິການ ໃໝ່ ອີກ.

ປະໂຫຍດອີກອັນ ໜຶ່ງ ຂອງເຕົາໄຟແມ່ນວ່າມັນຊ່ວຍໃຫ້ພວກເຮົາສາມາດ ກຳ ນົດກົດລະບຽບໂດຍອີງໃສ່ຊື່ການບໍລິການທີ່ມີການ ກຳ ນົດໄວ້ກ່ອນ (ຫຼາຍກວ່ານັ້ນໃນນາທີ).

ໃນພາກທີ 1, ພວກເຮົາໄດ້ໃຊ້ສະຖານະການຕໍ່ໄປນີ້:

ເຖິງຢ່າງໃດກໍ່ຕາມ, ທ່ານຈະຈື່ໄດ້ວ່າພວກເຮົາໄດ້ປິດການ ນຳ ໃຊ້ firewall ໃນ router # 2 ເພື່ອເຮັດໃຫ້ຕົວຢ່າງງ່າຍຂື້ນນັບຕັ້ງແຕ່ພວກເຮົາຍັງບໍ່ໄດ້ປົກຄຸມການກັ່ນຕອງຂອງ packet ເທື່ອ. ຕອນນີ້ລອງເບິ່ງວ່າພວກເຮົາສາມາດເປີດໃຊ້ກ່ອງເຂົ້າມາທີ່ມີຈຸດປະສົງ ສຳ ລັບການບໍລິການສະເພາະໃດ ໜຶ່ງ ຫຼືພອດໃດໃນປາຍທາງ.

ຫນ້າທໍາອິດ, ໃຫ້ເພີ່ມກົດລະບຽບຖາວອນເພື່ອອະນຸຍາດໃຫ້ການເຂົ້າຊົມຂາເຂົ້າໃນ enp0s3 (192.168.0.19) ເພີ່ມ enp0s8 (10.0.0.18):

# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

ຄຳ ສັ່ງຂ້າງເທິງນີ້ຈະຊ່ວຍປະຢັດກົດເກນໄວ້ໃນ /etc/firewalld/direct.xml:

# cat /etc/firewalld/direct.xml

ຈາກນັ້ນໃຫ້ກົດລະບຽບເພື່ອໃຫ້ມັນມີຜົນທັນທີ:

# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

ຕອນນີ້ທ່ານສາມາດ telnet ກັບ web server ຈາກກ່ອງ RHEL 7 ແລະແລ່ນ tcpdump ອີກເທື່ອ ໜຶ່ງ ເພື່ອຕິດຕາມການຈະລາຈອນ TCP ລະຫວ່າງສອງເຄື່ອງ, ເວລານີ້ມີ firewall ໃນ router # 2 ທີ່ເປີດໃຊ້ງານ.

# telnet 10.0.0.20 80
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

ຈະເປັນແນວໃດຖ້າທ່ານຕ້ອງການອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ຂາເຂົ້າກັບເວັບເຊີຟເວີ (ພອດ 80) ຈາກ 192.168.0.18 ແລະຂັດຂວາງການເຊື່ອມຕໍ່ຈາກແຫຼ່ງອື່ນໆໃນເຄືອຂ່າຍ 192.168.0.0/24?

ໃນ ກຳ ແພງເວບຂອງເຄື່ອງແມ່ຂ່າຍເວັບ, ເພີ່ມກົດລະບຽບຕໍ່ໄປນີ້:

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

ຕອນນີ້ທ່ານສາມາດເຮັດການຮ້ອງຂໍ HTTP ກັບເວັບເຊີຟເວີ, ຕັ້ງແຕ່ 192.168.0.18 ແລະຈາກເຄື່ອງອື່ນ ຈຳ ນວນ ໜຶ່ງ ໃນປີ 192.168.0.0/24. ໃນກໍລະນີ ທຳ ອິດການເຊື່ອມຕໍ່ຄວນ ສຳ ເລັດຢ່າງ ສຳ ເລັດຜົນ, ໃນທີ່ສຸດມັນຈະ ໝົດ ເວລາ.

ເພື່ອເຮັດແນວນັ້ນ, ຄຳ ສັ່ງໃດ ໜຶ່ງ ຕໍ່ໄປນີ້ຈະເຮັດໃຫ້ຫຼົງກົນ:

# telnet 10.0.0.20 80
# wget 10.0.0.20

ຂ້າພະເຈົ້າຂໍແນະ ນຳ ໃຫ້ທ່ານກວດເບິ່ງເອກະສານກ່ຽວກັບພາສາ Firewalld Rich ໃນ Fedora Project Wiki ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບກົດລະບຽບທີ່ອຸດົມສົມບູນ.

ການແປທີ່ຢູ່ເຄືອຂ່າຍໃນ RHEL 7

ການແປທີ່ຢູ່ເຄືອຂ່າຍ (NAT) ແມ່ນຂະບວນການທີ່ກຸ່ມຄອມພິວເຕີ້ (ມັນຍັງສາມາດເປັນພຽງ ໜຶ່ງ ໃນນັ້ນ) ໃນເຄືອຂ່າຍສ່ວນຕົວຖືກມອບ ໝາຍ ໃຫ້ເປັນທີ່ຢູ່ IP ຂອງປະຊາຊົນທີ່ເປັນເອກະລັກ. ດ້ວຍເຫດນີ້, ພວກເຂົາຍັງຖືກ ກຳ ນົດສະເພາະໂດຍທີ່ຢູ່ IP ສ່ວນຕົວຂອງພວກເຂົາພາຍໃນເຄືອຂ່າຍແຕ່ວ່າຢູ່ທາງນອກພວກມັນເບິ່ງຄືກັນ.