ວິທີການຕັ້ງ Firewall Iptables ເພື່ອໃຫ້ສາມາດເຂົ້າເຖິງການບໍລິການຫ່າງໄກສອກຫຼີກໃນ Linux - ພາກ 8


ແນະ ນຳ ໂຄງການຢັ້ງຢືນມູນນິທິ Linux

ທ່ານຈະຈື່ໄດ້ຈາກພາກທີ 1 - ກ່ຽວກັບ Iptables ຂອງຊຸດນີ້ LFCE ( Linux Foundation Certified Engineer ) ທີ່ພວກເຮົາໃຫ້ ຄຳ ອະທິບາຍຂັ້ນພື້ນຖານວ່າ Firewall ແມ່ນຫຍັງ: ກົນໄກໃນການຈັດການ ຊຸດທີ່ເຂົ້າມາແລະອອກຈາກເຄືອຂ່າຍ. ໂດຍ“ ຈັດການ” ພວກເຮົາ ໝາຍ ຄວາມວ່າ:

<

  • ເພື່ອອະນຸຍາດຫຼືປ້ອງກັນບາງແພັກເກດທີ່ຈະເຂົ້າຫລືອອກຈາກເຄືອຂ່າຍຂອງພວກເຮົາ.
  • ເພື່ອສົ່ງຕໍ່ແພັກເກັດອື່ນຈາກຈຸດ ໜຶ່ງ ຂອງເຄືອຂ່າຍໄປອີກຈຸດ ໜຶ່ງ.
  • ອີງຕາມເງື່ອນໄຂທີ່ໄດ້ ກຳ ນົດໄວ້ກ່ອນ.

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

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

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

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

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

    <

  • ຄົນ u003d ຊຸດຕ່າງໆ
  • Firewall u003d ສະ ໜາມ ບິນ
  • ປະເທດອັນດັບ 1 u003d ເຄືອຂ່າຍ # 1
  • ປະເທດອັນດັບ 2 u003d ເຄືອຂ່າຍ # 2
  • ລະບຽບສະ ໜາມ ບິນບັງຄັບໃຊ້ໂດຍເຈົ້າ ໜ້າ ທີ່ u003d ກົດລະບຽບຂອງໄຟວໍ
  • Iptables - ພື້ນຖານ

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

    ການກະ ທຳ ທຳ ອິດຂອງ iptables ຈະປະກອບດ້ວຍການຕັດສິນໃຈເຮັດຫຍັງກັບແພັກເກັດ:

    <

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

    1. ລະບົບຕ່ອງໂສ້ຂອງ INPUT ຈັດການແພັກເກັດທີ່ເຂົ້າມາໃນເຄືອຂ່າຍ, ເຊິ່ງມີຈຸດປະສົງ ສຳ ລັບໂປແກຼມທ້ອງຖິ່ນ.

    2. ລະບົບຕ່ອງໂສ້ OUTPUT ຖືກໃຊ້ເພື່ອວິເຄາະຊຸດທີ່ມີຢູ່ໃນເຄືອຂ່າຍທ້ອງຖິ່ນ, ເຊິ່ງຈະຖືກສົ່ງໄປທາງນອກ.

    3. ລະບົບຕ່ອງໂສ້ຂອງ FORWARD ປຸງແຕ່ງແພັກເກັດທີ່ຄວນຈະຖືກສົ່ງຕໍ່ໄປຍັງຈຸດ ໝາຍ ປາຍທາງອື່ນ (ເຊັ່ນໃນກໍລະນີຂອງ router).

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

    # iptables -L
    

    ນະໂຍບາຍທີ່ມີຢູ່ແມ່ນດັ່ງຕໍ່ໄປນີ້:

    <

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

    ເພື່ອເພີ່ມກົດລະບຽບໃສ່ firewall, ໃຫ້ອ້າງ ຄຳ ສັ່ງ iptables ດັ່ງຕໍ່ໄປນີ້:

    # iptables -A chain_name criteria -j target
    

    ຢູ່ໃສ,

    <

  • -A ຢືນຢູ່ໃນເອກະສານຊ້ອນທ້າຍ (ເພີ່ມເຕີມກົດລະບຽບປະຈຸບັນຈົນຮອດປາຍຂອງຕ່ອງໂສ້).
  • chain_name ແມ່ນທັງ INPUT, OUTPUT, ຫຼື FORWARD.
  • ເປົ້າ ໝາຍ ແມ່ນການກະ ທຳ ຫຼືນະໂຍບາຍ, ເພື່ອ ນຳ ໃຊ້ໃນກໍລະນີນີ້ (ACCEPT, REJECT, ຫຼື DROP).
  • ເງື່ອນໄຂ ແມ່ນການ ກຳ ນົດເງື່ອນໄຂຕ່າງໆທີ່ຈະຕ້ອງໄດ້ຮັບການກວດສອບ. ມັນປະກອບດ້ວຍຢ່າງນ້ອຍ 1 (ສ່ວນຫຼາຍອາດຈະມີ) ຂອງທຸງຕໍ່ໄປນີ້. ຕົວເລືອກຕ່າງໆພາຍໃນວົງເລັບ, ແຍກດ້ວຍແຖບແນວຕັ້ງ, ທຽບເທົ່າກັນ. ສ່ວນທີ່ເຫຼືອແມ່ນສະແດງເຖິງຕົວເລືອກປ່ຽນ:
  • [--protocol | -p] protocol: specifies the protocol involved in a rule.
    [--source-port | -sport] port:[port]: defines the port (or range of ports) where the packet originated.
    [--destination-port | -dport] port:[port]: defines the port (or range of ports) to which the packet is destined.
    [--source | -s] address[/mask]: represents the source address or network/mask.
    [--destination | -d] address[/mask]: represents the destination address or network/mask.
    [--state] state (preceded by -m state): manage packets depending on whether they are part of a state connection, where state can be NEW, ESTABLISHED, RELATED, or INVALID.
    [--in-interface | -i] interface: specifies the input interface of the packet.
    [--out-interface | -o] interface: the output interface.
    [--jump | -j] target: what to do when the packet matches the rule.
    

    ໃຫ້ກາວທັງ ໝົດ ໃນ 3 ຕົວຢ່າງແບບເກົ່າໂດຍໃຊ້ສະພາບແວດລ້ອມການທົດສອບຕໍ່ໄປນີ້ ສຳ ລັບສອງ ທຳ ອິດ:

    Firewall: Debian Wheezy 7.5 
    Hostname: dev2.gabrielcanepa.com
    IP Address: 192.168.0.15
    
    Source: CentOS 7 
    Hostname: dev1.gabrielcanepa.com
    IP Address: 192.168.0.17
    

    ແລະນີ້ ສຳ ລັບຕົວຢ່າງສຸດທ້າຍ

    NFSv4 server and firewall: Debian Wheezy 7.5 
    Hostname: debian
    IP Address: 192.168.0.10
    
    Source: Debian Wheezy 7.5 
    Hostname: dev2.gabrielcanepa.com
    IP Address: 192.168.0.15
    

    ພວກເຮົາຈະ ກຳ ນົດນະໂຍບາຍ DROP ກ່ອນ ສຳ ລັບການປ້ອນຂໍ້ມູນໃສ່ກັບ firewall ຂອງພວກເຮົາ. ນັ້ນແມ່ນ, ຊອງ icmp ຈະຖືກລຸດລົງຢ່າງງຽບໆ.

    # ping -c 3 192.168.0.15
    
    # iptables -A INPUT --protocol icmp --in-interface eth0 -j DROP
    

    ກ່ອນທີ່ຈະ ດຳ ເນີນການກັບພາກສ່ວນ ທີ່ຢູ່ພວກເຮົາຈະໄຫລທຸກໆກົດລະບຽບຈາກຕ່ອງໂສ້ INPUT ເພື່ອໃຫ້ແນ່ໃຈວ່າແພັກເກັດຂອງພວກເຮົາຈະຖືກທົດສອບໂດຍກົດລະບຽບ ໃໝ່ ນີ້:

    # iptables -F INPUT
    # iptables -A INPUT --protocol icmp --in-interface eth0 -j REJECT
    
    # ping -c 3 192.168.0.15
    

    ພວກເຮົາຈະຈັດການກັບລະບົບຕ່ອງໂສ້ OUTPUT ດັ່ງທີ່ພວກເຮົາ ກຳ ລັງຈັດການການຈະລາຈອນຂາອອກ:

    # iptables -A OUTPUT --protocol tcp --destination-port 22 --out-interface eth0 --jump REJECT
    

    ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ໃນ NFSv4 server/firewall ເພື່ອປິດພອດ 2049 ແລະ 111 ສໍາລັບການຈະລາຈອນທຸກປະເພດ:

    # iptables -F
    # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
    # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j REJECT
    

    ຕອນນີ້ເປີດທ່າເຮືອເຫລົ່ານັ້ນແລະເບິ່ງວ່າຈະມີຫຍັງເກີດຂື້ນ.

    # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j ACCEPT
    # iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j ACCEPT
    

    ດັ່ງທີ່ທ່ານເຫັນ, ພວກເຮົາສາມາດຕິດຕໍ່ຮຸ້ນ NFSv4 ໄດ້ຫຼັງຈາກເປີດການຈະລາຈອນ.

    ໃນຕົວຢ່າງທີ່ຜ່ານມາພວກເຮົາໄດ້ສະແດງວິທີການເພີ່ມກົດລະບຽບໃນຕ່ອງໂສ້ INPUT ແລະ OUTPUT . ຖ້າພວກເຮົາຕ້ອງການໃສ່ພວກມັນແທນທີ່ ຕຳ ແໜ່ງ ທີ່ ກຳ ນົດໄວ້, ພວກເຮົາຄວນໃຊ້ປຸ່ມ -I (uppercase i) ແທນ.

    ທ່ານ ຈຳ ເປັນຕ້ອງຈື່ວ່າກົດລະບຽບຕ່າງໆຈະຖືກປະເມີນຜົນຫຼັງຈາກນັ້ນ, ແລະການປະເມີນຢຸດ (ຫຼືເພີ່ມຂື້ນ) ເມື່ອນະໂຍບາຍ DROP ຫຼື ACCEPT ຖືກຈັບຄູ່. ດ້ວຍເຫດຜົນດັ່ງກ່າວ, ທ່ານອາດຈະເຫັນວ່າທ່ານຕ້ອງການຍ້າຍກົດລະບຽບຂຶ້ນຫລືລົງໃນບັນຊີຕ່ອງໂສ້ຕາມຄວາມຕ້ອງການ.

    ພວກເຮົາຈະໃຊ້ຕົວຢ່າງທີ່ບໍ່ ສຳ ຄັນເພື່ອສະແດງສິ່ງນີ້:

    ໃຫ້ໃຊ້ກົດລະບຽບຕໍ່ໄປນີ້,

    # iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
    

    ຢູ່ ຕຳ ແໜ່ງ ທີ 2) ໃນຕ່ອງໂສ້ INPUT (ດັ່ງນັ້ນການເຄື່ອນຍ້າຍອັນດັບ 2 ໃນອັນດັບ 3)

    ການ ນຳ ໃຊ້ການຕັ້ງຄ່າຂ້າງເທິງນີ້, ການຈະລາຈອນຈະຖືກກວດເບິ່ງເພື່ອເບິ່ງວ່າມັນຖືກມຸ້ງໄປທີ່ Port 80 ກ່ອນທີ່ຈະກວດເບິ່ງທີ່ Port 2049 ຫຼືບໍ່.

    ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດລຶບກົດລະບຽບແລະປ່ຽນເປົ້າ ໝາຍ ຂອງກົດລະບຽບທີ່ຍັງເຫຼືອເປັນ ປະຕິເສດ (ໃຊ້ປຸ່ມ -R ):

    # iptables -D INPUT 1
    # iptables -nL -v --line-numbers
    # iptables -R INPUT 2 -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
    # iptables -R INPUT 1 -p tcp --dport 80 -j REJECT
    

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

    ປະຢັດລະບຽບການໃຊ້ໄຟວໍ:

    # iptables-save > /etc/iptables/rules.v4		[On Ubuntu]
    # iptables-save > /etc/sysconfig/iptables		[On CentOS / OpenSUSE]
    

    ການຟື້ນຟູກົດລະບຽບ:

    # iptables-restore < /etc/iptables/rules.v4		[On Ubuntu]
    # iptables-restore < /etc/sysconfig/iptables		[On CentOS / OpenSUSE]
    

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

    # iptables-save > iptables.dump
    

    ເພື່ອເຮັດໃຫ້ການປ່ຽນແປງເຫຼົ່ານີ້ມີຄວາມ ໝັ້ນ ຄົງຕະຫຼອດເກີບ:

    Ubuntu : ຕິດຕັ້ງຊຸດ iptables-persistent ເຊິ່ງຈະໂຫລດລະບຽບທີ່ບັນທຶກໄວ້ໃນແຟ້ມ /etc/iptables/rules.v4 .

    # apt-get install iptables-persistent
    

    CentOS : ເພີ່ມ 2 ເສັ້ນຕໍ່ໄປນີ້ໃສ່ /etc/sysconfig/iptables-config .

    IPTABLES_SAVE_ON_STOP="yes"
    IPTABLES_SAVE_ON_RESTART="yes"
    

    OpenSUSE : ລາຍຊື່ພອດ, ອະນຸສັນຍາ, ທີ່ຢູ່, ແລະອື່ນໆ (ແຍກດ້ວຍເຄື່ອງ ໝາຍ ຈຸດ) ໃນ /etc/sysconfig/SuSEfirewall2 .

    ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ ໝາຍ ເຖິງເອກະສານເອງ, ເຊິ່ງມີ ຄຳ ເຫັນຫຼາຍ.

    ສະຫຼຸບ

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

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

    ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະແຈ້ງໃຫ້ຂ້ອຍທາບຖ້າທ່ານມີຄໍາຖາມຫຼືຄໍາເຫັນໃດໆ.