ການຄວບຄຸມການເຂົ້າເຖິງລະບົບດ້ວຍ firewalld

Richard Gregory, Petr Bokoc (pbokoc), Peter Boy (pboy) Version F34 onwards Last review: 2023-08-23
ໄຟວໍ (firewall) ແມ່ນວິທີໜຶ່ງໃນການປົກປ້ອງເຄື່ອງຄອມພິວເຕີຈາກການເຂົ້າເຖິງທີ່ບໍ່ຕ້ອງການຈາກພາຍນອກ. ໃນ Fedora, ມັນຈະຖືກຕິດຕັ້ງມາໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນໃນລະຫວ່າງການຕິດຕັ້ງລະບົບປະຕິບັດການ, ຖືກເປີດໃຊ້ງານ ແລະ ຕັ້ງຄ່າເພື່ອໃຫ້ມີຄວາມປອດໄພ ເຖິງແມ່ນວ່າຜູ້ດູແລລະບົບຈະບໍ່ໄດ້ເຮັດຫຍັງເພີ່ມເຕີມກໍຕາມ. ໂດຍປົກກະຕິແລ້ວ ມັນຈະປິດກັ້ນການເຂົ້າເຖິງທັງໝົດ ຍົກເວັ້ນ ssh.

ມັນເຮັດວຽກແນວໃດ

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

firewalld ແມ່ນເດມອນ (daemon) ບໍລິການໄຟວໍທີ່ໃຫ້ບໍລິການໄຟວໍແບບປັບແຕ່ງໄດ້ຕາມຄວາມຕ້ອງການ (dynamic) ສຳລັບເຄື່ອງໂຮສ ໂດຍຜ່ານອິນເຕີເຟດ D-Bus. ດ້ວຍຄວາມທີ່ເປັນແບບໄດນາມິກ, ມັນຈຶ່ງຊ່ວຍໃຫ້ສາມາດສ້າງ, ປ່ຽນແປງ, ແລະ ລຶບກົດເກນຕ່າງໆໄດ້ ໂດຍບໍ່ຈຳເປັນຕ້ອງເລີ່ມຕົ້ນການເຮັດວຽກຂອງເດມອນໄຟວໍໃໝ່ທຸກຄັ້ງທີ່ມີການປ່ຽນແປງກົດ.

firewalld ໃຊ້ແນວຄິດຂອງ ໂຊນ (zones) ແລະ ບໍລິການ (services) ເພື່ອເຮັດໃຫ້ການຈັດການການສັນຈອນງ່າຍຂຶ້ນ.

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

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

ແຫຼ່ງຂໍ້ມູນເພີ່ມເຕີມ

ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການໃຊ້ firewalld ແລະ ການຕັ້ງຄ່າໂຊນ ແລະ ບໍລິການ, ສາມາດເບິ່ງໄດ້ທີ່ ເອກະສານ firewalld ຫຼື Fedora wiki:firewalld

ການຕັ້ງຄ່າ firewalld

Fedora ທຸກເວີຊັນ (Editions) ຈະຕິດຕັ້ງ, ຕັ້ງຄ່າ ແລະ ເປີດໃຊ້ງານໄຟວໍໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນ. ທ່ານບໍ່ຈຳເປັນຕ້ອງເຮັດຫຍັງເພີ່ມເຕີມ. ຂໍ້ຍົກເວັ້ນດຽວແມ່ນ Cloud Edition, ເຊິ່ງຈະຂຶ້ນກັບລະບົບຄລາວໃນລະດັບທີ່ສູງກວ່າ.

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

ທ່ານສາມາດກວດສອບວ່າ firewalld ຖືກຕັ້ງຄ່າແລ້ວຫຼືບໍ່ໃນເທີມິນໍ (terminal) ໂດຍການພິມ:

$ systemctl status firewalld

ທ່ານຄວນຈະໄດ້ຮັບຜົນລັດປະມານນີ້:

● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset>
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Sat 2023-08-19 19:05:18 CEST; 3 days ago
     ...

ການຕິດຕັ້ງ ແລະ ການເປີດໃຊ້ງານ firewalld

ໃນກໍລະນີທີ່ທ່ານໃຊ້ຄຳສັ່ງຂ້າງເທິງແລ້ວເຫັນຂໍ້ຄວາມປະມານວ່າ:

Unit firewalld.service could not be found.

ທ່ານຈະຕ້ອງຕິດຕັ້ງມັນ. ໃຫ້ພິມຄຳສັ່ງນີ້ໃນຄອມມານລາຍ (command line):

$ sudo dnf install firewalld
$ sudo systemctl unmask firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

ລຳດັບຄຳສັ່ງນີ້ຈະເຮັດການຕິດຕັ້ງ, ເລີ່ມການເຮັດວຽກ ແລະ ຮັບປະກັນວ່າມັນຈະເລີ່ມເຮັດວຽກໂດຍອັດຕະໂນມັດຫຼັງຈາກເປີດເຄື່ອງໃໝ່.

ການປັບປ່ຽນການເຮັດວຽກຂອງ firewalld ໃນລະຫວ່າງການບຳລຸງຮັກສາລະບົບ

ບາງຄັ້ງຜູ້ດູແລລະບົບຈຳເປັນຕ້ອງຢຸດ ຫຼື ເລີ່ມຕົ້ນ firewalld ໃໝ່ໃນລະຫວ່າງການເຮັດວຽກບຳລຸງຮັກສາລະບົບ.

ຢຸດການເຮັດວຽກຂອງ firewalld
$ sudo systemctl stop firewalld
ປ້ອງກັນບໍ່ໃຫ້ເລີ່ມເຮັດວຽກອັດຕະໂນມັດເມື່ອເປີດເຄື່ອງ
$ sudo systemctl disable firewalld
ເລີ່ມການເຮັດວຽກຂອງ firewalld
$ sudo systemctl start firewalld
ເປີດໃຊ້ການເລີ່ມເຮັດວຽກອັດຕະໂນມັດເມື່ອເປີດເຄື່ອງ
$ sudo systemctl enable firewalld
ຕັດການເຊື່ອມຕໍ່ໄຟວໍຈາກ d-bus controller (mask)
$ sudo systemctl mask firewalld
ເຊື່ອມຕໍ່ໄຟວໍກັບ d-bus controller ຄືນໃໝ່ (unmask)
$ sudo systemctl unmask firewalld

ການຕິດຕັ້ງເຄື່ອງມືຕັ້ງຄ່າແບບກຣາບຟິກ firewall-config (GUI)

ເພື່ອໃຊ້ເຄື່ອງມືຕັ້ງຄ່າແບບ GUI firewall-config, ໃຫ້ຕິດຕັ້ງແພັກເກດ firewall-config ໃນຖານະ root:

$ sudo dnf install firewall-config

ອີກທາງເລືອກໜຶ່ງ, ໃນ GNOME, ໃຫ້ກົດປຸ່ມ Super ແລ້ວພິມ Software ເພື່ອເປີດແອັບພລິເຄຊັນ Software Sources. ພິມ firewall ໃນຊ່ອງຄົ້ນຫາ, ເຊິ່ງຈະປາກົດຂຶ້ນຫຼັງຈາກເລືອກປຸ່ມຄົ້ນຫາຢູ່ມຸມຂວາເທິງ. ເລືອກລາຍການ Firewall ຈາກຜົນການຄົ້ນຫາ, ແລ້ວກົດປຸ່ມ Install.

ເພື່ອເລີ່ມໃຊ້ງານ firewall-config, ທ່ານສາມາດໃຊ້ຄຳສັ່ງ firewall-config ຫຼື ກົດປຸ່ມ Super ເພື່ອເຂົ້າສູ່ Activities Overview, ພິມ firewall, ແລ້ວກົດ Enter.

ການຈັດການ firewalld

ການເບິ່ງສະຖານະປັດຈຸບັນຂອງ firewalld

ບໍລິການໄຟວໍ firewalld ຈະຖືກຕິດຕັ້ງມາໃນລະບົບເປັນຄ່າເລີ່ມຕົ້ນ. ໃຫ້ໃຊ້ CLI ຂອງ firewalld ເພື່ອກວດສອບວ່າບໍລິການກຳລັງເຮັດວຽກຢູ່ຫຼືບໍ່.

$ sudo firewall-cmd --state

ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບສະຖານະບໍລິການ, ໃຫ້ໃຊ້ຄຳສັ່ງ systemctl

$ sudo systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr
   Active: active (running) since Mon 2017-12-18 16:05:15 CET; 50min ago
     Docs: man:firewalld(1)
 Main PID: 705 (firewalld)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/firewalld.service
           └─705 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid

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

ການເບິ່ງການຕັ້ງຄ່າ firewalld ປັດຈຸບັນ

ການເບິ່ງບໍລິການທີ່ໄດ້ຮັບອະນຸຍາດໂດຍໃຊ້ GUI

ເພື່ອເບິ່ງລາຍຊື່ບໍລິການໂດຍໃຊ້ເຄື່ອງມື firewall-config, ໃຫ້ກົດປຸ່ມ Super ເພື່ອເຂົ້າສູ່ Activities Overview, ພິມ firewall, ແລ້ວກົດ Enter. ເຄື່ອງມື firewall-config ຈະປາກົດຂຶ້ນ. ຕອນນີ້ທ່ານສາມາດເບິ່ງລາຍຊື່ບໍລິການໄດ້ທີ່ແຖບ Services.

ຫຼືອີກທາງເລືອກໜຶ່ງ, ເພື່ອເປີດເຄື່ອງມືຕັ້ງຄ່າໄຟວໍແບບກຣາບຟິກໂດຍໃຊ້ຄອມມານລາຍ, ໃຫ້ພິມຄຳສັ່ງດັ່ງນີ້:

$ firewall-config

ໜ້າຕ່າງ Firewall Configuration ຈະເປີດຂຶ້ນ. ໝາຍເຫດວ່າຄຳສັ່ງນີ້ສາມາດລັນໄດ້ໃນຖານະຜູ້ໃຊ້ທົ່ວໄປ, ແຕ່ລະບົບອາດຈະຖາມຫາລະຫັດຜ່ານຂອງຜູ້ດູແລລະບົບໃນບາງຄັ້ງ.

ການເບິ່ງການຕັ້ງຄ່າ firewalld ໂດຍໃຊ້ CLI

ດ້ວຍ CLI client, ທ່ານສາມາດເບິ່ງການຕັ້ງຄ່າໄຟວໍປັດຈຸບັນໄດ້ໃນຫຼາຍຮູບແບບ. ຕົວເລືອກ --list-all ຈະສະແດງພາບລວມທັງໝົດຂອງການຕັ້ງຄ່າ firewalld.

firewalld ໃຊ້ໂຊນເພື່ອຈັດການການສັນຈອນ. ຖ້າບໍ່ໄດ້ລະບຸໂຊນດ້ວຍຕົວເລືອກ --zone, ຄຳສັ່ງຈະມີຜົນກັບໂຊນເລີ່ມຕົ້ນ (default zone) ທີ່ຖືກກຳນົດໃຫ້ກັບອິນເຕີເຟດເຄືອຂ່າຍທີ່ກຳນົດໃຊ້ງານຢູ່.

ເພື່ອສະແດງຂໍ້ມູນທີ່ກ່ຽວຂ້ອງທັງໝົດຂອງໂຊນເລີ່ມຕົ້ນ:

$ firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

ເພື່ອລະບຸໂຊນທີ່ຕ້ອງການໃຫ້ສະແດງການຕັ້ງຄ່າ, ໃຫ້ເພີ່ມອາກິວເມັນ --zone=ຊື່ໂຊນ ເຂົ້າໃນຄຳສັ່ງ firewall-cmd --list-all, ຕົວຢ່າງ:

$ sudo firewall-cmd --list-all --zone=home
home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh mdns samba-client dhcpv6-client
... [output truncated]

ເພື່ອເບິ່ງການຕັ້ງຄ່າສະເພາະບາງຢ່າງ ເຊັ່ນ ບໍລິການ ຫຼື ພອດ, ໃຫ້ໃຊ້ຕົວເລືອກສະເພາະ. ສາມາດເບິ່ງໄດ້ຈາກໜ້າຄູ່ມື (manual pages) ຂອງ firewalld ຫຼື ເບິ່ງລາຍຊື່ຕົວເລືອກທັງໝົດໄດ້ຈາກຄຳສັ່ງ help:

$ firewall-cmd --help

ວິທີໃຊ້: firewall-cmd [OPTIONS...]

ຕົວເລືອກທົ່ວໄປ (General Options)
  -h, --help           ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອສັ້ນໆແລ້ວອອກ
  -V, --version        ສະແດງເວີຊັນຂອງ firewalld
  -q, --quiet          ບໍ່ສະແດງຂໍ້ຄວາມສະຖານະ

ຕົວເລືອກສະຖານະ (Status Options)
  --state              ສົ່ງຄືນ ແລະ ສະແດງສະຖານະຂອງ firewalld
  --reload             ໂຫຼດໄຟວໍໃໝ່ ແລະ ເກັບຮັກສາຂໍ້ມູນສະຖານະໄວ້
... [ຜົນລັດຖືກຕັດອອກ]

ຕົວຢ່າງ, ເພື່ອເບິ່ງວ່າບໍລິການໃດແດ່ທີ່ໄດ້ຮັບອະນຸຍາດໃນໂຊນປັດຈຸບັນ:

$ firewall-cmd --list-services
samba-client ssh dhcpv6-client

ການສະແດງການຕັ້ງຄ່າສະເພາະບາງສ່ວນໂດຍໃຊ້ CLI ບາງຄັ້ງອາດຈະຕີຄວາມໝາຍໄດ້ຍາກ. ຕົວຢ່າງ, ທ່ານອະນຸຍາດບໍລິການ SSH ແລະ firewalld ຈະເປີດພອດທີ່ຈຳເປັນ (22) ສຳລັບບໍລິການນັ້ນ. ຕໍ່ມາ, ຖ້າທ່ານສະແດງລາຍຊື່ບໍລິການທີ່ໄດ້ຮັບອະນຸຍາດ, ມັນຈະສະແດງບໍລິການ SSH, ແຕ່ຖ້າທ່ານສະແດງ ລາຍຊື່ພອດທີ່ເປີດ, ມັນອາດຈະບໍ່ສະແດງຫຍັງເລີຍ. ດັ່ງນັ້ນ, ຈຶ່ງແນະນຳໃຫ້ໃຊ້ຕົວເລືອກ --list-all ເພື່ອໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ຮັບຂໍ້ມູນທີ່ຄົບຖ້ວນ.

ການຕັ້ງຄ່າແບບຊົ່ວຄາວ (Runtime) ແລະ ແບບຖາວອນ (Permanent)

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

ການປ່ຽນແປງເຫຼົ່ານີ້ເອີ້ນວ່າການເຮັດວຽກໃນ ໂໝດລັນໄທມ໌ (runtime mode).

ເພື່ອໃຫ້ການປ່ຽນແປງຄົງຢູ່ຫຼັງຈາກເປີດເຄື່ອງໃໝ່, ໃຫ້ໃຊ້ຕົວເລືອກ --permanent. ຫຼືອີກທາງເລືອກໜຶ່ງ, ເພື່ອເຮັດໃຫ້ການປ່ຽນແປງໃນຂະນະທີ່ firewalld ກຳລັງເຮັດວຽກກາຍເປັນແບບຖາວອນ, ໃຫ້ໃຊ້ຕົວເລືອກ --runtime-to-permanent.

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

ການປ່ຽນແປງການຕັ້ງຄ່າແບບລັນໄທມ໌ ແລະ ແບບຖາວອນໂດຍໃຊ້ CLI

ເມື່ອໃຊ້ CLI, ທ່ານສາມາດເລືອກແກ້ໄຂໄດ້ພຽງແຕ່ໂໝດລັນໄທມ໌ ຫຼື ໂໝດຖາວອນຢ່າງໃດຢ່າງໜຶ່ງ. ເພື່ອແກ້ໄຂການຕັ້ງຄ່າໄຟວໍໃນໂໝດຖາວອນ, ໃຫ້ໃຊ້ຕົວເລືອກ --permanent ຮ່ວມກັບຄຳສັ່ງ firewall-cmd.

$ sudo firewall-cmd --permanent <other options>

ຖ້າບໍ່ມີຕົວເລືອກນີ້, ຄຳສັ່ງຈະແກ້ໄຂສະເພາະໂໝດລັນໄທມ໌ເທົ່ານັ້ນ. ເພື່ອປ່ຽນແປງການຕັ້ງຄ່າທັງສອງໂໝດ, ທ່ານສາມາດໃຊ້ໄດ້ສອງວິທີ:

  • ວິທີທີ 1: ປ່ຽນການຕັ້ງຄ່າແບບລັນໄທມ໌ ແລ້ວເຮັດໃຫ້ເປັນແບບຖາວອນ ດັ່ງນີ້:

    1. ປ່ຽນການຕັ້ງຄ່າລັນໄທມ໌:

      firewall-cmd <other options>

    2. ໃຊ້ --runtime-to-permanent ເພື່ອເຮັດໃຫ້ການປ່ຽນແປງເປັນແບບຖາວອນ:

      firewall-cmd --runtime-to-permanent

  • ວິທີທີ 2: ຕັ້ງຄ່າແບບຖາວອນ ແລ້ວໂຫຼດການຕັ້ງຄ່າເຂົ້າສູ່ໂໝດລັນໄທມ໌:

    1. ເຮັດການປ່ຽນແປງໃນໂໝດຖາວອນ:

      firewall-cmd --permanent <other options>

    2. ໂຫຼດການຕັ້ງຄ່າໃໝ່:

      firewall-cmd --reload

ວິທີທຳອິດຊ່ວຍໃຫ້ທ່ານສາມາດທົດສອບການຕັ້ງຄ່າກ່ອນທີ່ຈະນຳໄປໃຊ້ໃນໂໝດຖາວອນ.

ມັນເປັນໄປໄດ້ວ່າການຕັ້ງຄ່າທີ່ຜິດພາດອາດເຮັດໃຫ້ຜູ້ໃຊ້ບໍ່ສາມາດເຂົ້າຫາເຄື່ອງໄດ້ (ຖືກລັອກອອກ). ເພື່ອປ້ອງກັນສິ່ງນີ້, ໃຫ້ໃຊ້ຕົວເລືອກ --timeout. ການໃຊ້ຕົວເລືອກນີ້ໝາຍຄວາມວ່າຫຼັງຈາກເວລາທີ່ກຳນົດຜ່ານໄປ, ການປ່ຽນແປງໃດໆຈະກັບຄືນສູ່ສະຖານະກ່ອນໜ້າ. ທ່ານບໍ່ສາມາດໃຊ້ຕົວເລືອກ --permanent ຮ່ວມກັບຕົວເລືອກ --timeout ໄດ້.

ຕົວຢ່າງ, ເພື່ອເພີ່ມບໍລິການ SSH ເປັນເວລາ 15 ນາທີ ໃຫ້ໃຊ້ຄຳສັ່ງນີ້:

$ sudo firewall-cmd --add-service=ssh --timeout 15m

ບໍລິການ SSH ຈະສາມາດໃຊ້ງານໄດ້ຈົນກວ່າການເຂົ້າເຖິງຈະຖືກຍົກເລີກຫຼັງຈາກ 15 ນາທີ.

ການຄວບຄຸມພອດໂດຍໃຊ້ firewalld

ພອດ (Ports) ແມ່ນຫຍັງ?

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

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

ການເປີດພອດ

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

ການເປີດພອດໂດຍໃຊ້ຄອມມານລາຍ
  1. ສະແດງລາຍຊື່ພອດທີ່ໄດ້ຮັບອະນຸຍາດໃນໂຊນປັດຈຸບັນ:

    $ firewall-cmd --list-ports
  2. ເພີ່ມພອດເຂົ້າໃນລາຍຊື່ທີ່ໄດ້ຮັບອະນຸຍາດເພື່ອເປີດຮັບການສັນຈອນຂາເຂົ້າ:

    $ sudo firewall-cmd --add-port=ໝາຍເລກພອດ/ປະເພດພອດ
  3. ເຮັດໃຫ້ການຕັ້ງຄ່າໃໝ່ເປັນແບບຖາວອນ:

    $ sudo firewall-cmd --runtime-to-permanent

ປະເພດຂອງພອດອາດຈະເປັນ tcp, udp, sctp, ຫຼື dccp. ປະເພດຕ້ອງກົງກັບຮູບແບບການສື່ສານເຄືອຂ່າຍທີ່ໃຊ້.

ການປິດພອດ

ເມື່ອບໍ່ຈຳເປັນຕ້ອງໃຊ້ພອດທີ່ເປີດໄວ້ອີກຕໍ່ໄປ, ໃຫ້ປິດພອດນັ້ນໃນ firewalld. ຂໍແນະນຳຢ່າງຍິ່ງໃຫ້ປິດພອດ ທີ່ບໍ່ຈຳເປັນທັງໝົດທັນທີທີ່ບໍ່ໄດ້ໃຊ້ງານ ເພາະການເປີດພອດຖິ້ມໄວ້ຖືເປັນຄວາມສ່ຽງດ້ານຄວາມປອດໄພ.

ການປິດພອດໂດຍໃຊ້ຄອມມານລາຍ

ເພື່ອປິດພອດ, ໃຫ້ລຶບມັນອອກຈາກລາຍຊື່ພອດທີ່ໄດ້ຮັບອະນຸຍາດ:

  1. ສະແດງລາຍຊື່ພອດທີ່ໄດ້ຮັບອະນຸຍາດທັງໝົດ:

    $ firewall-cmd --list-ports

    ຄຳສັ່ງນີ້ຈະສະແດງສະເພາະລາຍຊື່ພອດທີ່ຖືກເປີດໃນຮູບແບບພອດເທົ່ານັ້ນ. ທ່ານຈະບໍ່ເຫັນພອດໃດໆ ທີ່ຖືກເປີດໃນຮູບແບບຂອງບໍລິການ (service). ດັ່ງນັ້ນ, ທ່ານຄວນພິຈາລະນາໃຊ້ຕົວເລືອກ --list-all ແທນ --list-ports.

  2. ລຶບພອດອອກຈາກລາຍຊື່ທີ່ໄດ້ຮັບອະນຸຍາດເພື່ອປິດການສັນຈອນຂາເຂົ້າ:

    $ sudo firewall-cmd --remove-port=ໝາຍເລກພອດ/ປະເພດພອດ
  3. ເຮັດໃຫ້ການຕັ້ງຄ່າໃໝ່ເປັນແບບຖາວອນ:

    $ sudo firewall-cmd --runtime-to-permanent