ວິທີການຮັບປະກັນການບໍລິການເຄືອຂ່າຍໂດຍໃຊ້ TCP Wrappers ໃນ Linux


ໃນບົດຄວາມນີ້ພວກເຮົາຈະອະທິບາຍວ່າເຄື່ອງຫໍ່ຂອງ TCP ແມ່ນຫຍັງແລະວິທີການຕັ້ງຄ່າໃຫ້ພວກມັນຖືກຕັ້ງຄ່າກັບໄຟວໍ.

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

ເຂົ້າໃຈ hosts.allow ແລະ hosts.deny

ເມື່ອການຮ້ອງຂໍຂອງເຄືອຂ່າຍເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍຂອງທ່ານ, ເຄື່ອງຫໍ່ TCP ໃຊ້ hosts.allow ແລະ hosts.deny (ໃນ ຄຳ ສັ່ງນັ້ນ) ເພື່ອ ກຳ ນົດວ່າລູກຄ້າຄວນຈະໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ບໍລິການໃດ ໜຶ່ງ ບໍ? .

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

# ls -l /etc/hosts.allow /etc/hosts.deny

syntax ຂອງທັງສອງໄຟລ໌ແມ່ນຄືກັນ:

<services> : <clients> [: <option1> : <option2> : ...]

ຢູ່ໃສ,

< ການບໍລິການແມ່ນບັນຊີລາຍຊື່ຂອງການບໍລິການທີ່ແຍກອອກໂດຍຈຸດ ໝາຍ, ກົດລະບຽບໃນປະຈຸບັນຄວນຖືກ ນຳ ໃຊ້. ລູກຄ້າ

  • ສະແດງບັນຊີລາຍຊື່ຂອງ hostnames ທີ່ແຍກດ້ວຍເຄື່ອງ ໝາຍ ຈຸດຫຼືທີ່ຢູ່ IP ທີ່ຖືກກະທົບໂດຍກົດລະບຽບ. ຕົວອັກສອນຫຍໍ້ຕໍ່ໄປນີ້ແມ່ນຍອມຮັບ: <
  • ALL ກົງກັບທຸກຢ່າງ. ນຳ ໃຊ້ທັງລູກຄ້າແລະການບໍລິການ.
  • LOCAL ກົງກັບເຈົ້າພາບໂດຍບໍ່ມີໄລຍະເວລາໃນ FQDN ຂອງພວກເຂົາ, ເຊັ່ນວ່າ localhost.
  • ຮູ້ທີ່ຢູ່ສະແດງສະຖານະການທີ່ຊື່ຜູ້ໃຊ້, ທີ່ຢູ່ຂອງຜູ້ໃຊ້ຫລືຜູ້ໃຊ້.
  • UNKNOWN ແມ່ນກົງກັນຂ້າມກັບ KNOWN.
  • PARANOID ເຮັດໃຫ້ການເຊື່ອມຕໍ່ຖືກລຸດລົງຖ້າການຊອກຫາ DNS ແບບລ້າໆ (ທຳ ອິດໃນທີ່ຢູ່ IP ເພື່ອ ກຳ ນົດຊື່ໂຮດ, ຫຼັງຈາກນັ້ນໃນຊື່ໂຮດເພື່ອຮັບທີ່ຢູ່ IP) ກັບຄືນທີ່ຢູ່ທີ່ແຕກຕ່າງກັນໃນແຕ່ລະກໍລະນີ.
  • ທ່ານອາດຈະຕ້ອງຈື່ໄວ້ວ່າກົດລະບຽບທີ່ອະນຸຍາດໃຫ້ເຂົ້າໃຊ້ບໍລິການທີ່ໃຫ້ຢູ່ໃນ /etc/hosts.allow ມີຄວາມ ສຳ ຄັນຕໍ່ກົດລະບຽບໃນ /etc/hosts.deny ມັນ. ນອກຈາກນັ້ນ, ຖ້າສອງກົດລະບຽບ ນຳ ໃຊ້ກັບການບໍລິການດຽວກັນ, ພຽງແຕ່ກົດລະບຽບ ທຳ ອິດຈະຖືກ ນຳ ມາພິຈາລະນາ.

    ແຕ່ໂຊກບໍ່ດີ, ບໍລິການເຄືອຂ່າຍທັງ ໝົດ ບໍ່ຮອງຮັບການ ນຳ ໃຊ້ເຄື່ອງຫໍ່ຂອງ TCP. ເພື່ອ ກຳ ນົດວ່າການບໍລິການໃດ ໜຶ່ງ ສະ ໜັບ ສະ ໜູນ ພວກເຂົາ, ເຮັດ:

    # ldd /path/to/binary | grep libwrap
    

    ຖ້າ ຄຳ ສັ່ງຂ້າງເທິງສົ່ງຄືນຜົນຜະລິດ, ມັນສາມາດຖືກຫໍ່ດ້ວຍ TCP. ຕົວຢ່າງຂອງສິ່ງນີ້ແມ່ນ sshd ແລະ vsftpd, ດັ່ງທີ່ເຫັນຢູ່ນີ້:

    ວິທີການໃຊ້ TCP Wrappers ເພື່ອ ຈຳ ກັດການເຂົ້າເຖິງການບໍລິການ

    ເມື່ອທ່ານແກ້ໄຂ /etc/hosts.allow ແລະ /etc/hosts.deny , ໃຫ້ແນ່ໃຈວ່າທ່ານເພີ່ມເສັ້ນ ໃໝ່ ໂດຍກົດ Enter ຫຼັງຈາກສາຍທີ່ບໍ່ຫວ່າງສຸດທ້າຍ.

    ເພື່ອອະນຸຍາດໃຫ້ເຂົ້າໃຊ້ SSH ແລະ FTP ເທົ່ານັ້ນ 192.168.0.102 ແລະ localhost ແລະປະຕິເສດທຸກຢ່າງອື່ນ, ເພີ່ມສອງເສັ້ນນີ້ຢູ່ໃນ /etc/hosts.deny :

    sshd,vsftpd : ALL
    ALL : ALL
    

    ແລະສາຍຕໍ່ໄປນີ້ໃນ /etc/hosts.allow :

    sshd,vsftpd : 192.168.0.102,LOCAL
    
    #
    # hosts.deny	This file contains access rules which are used to
    #		deny connections to network services that either use
    #		the tcp_wrappers library or that have been
    #		started through a tcp_wrappers-enabled xinetd.
    #
    #		The rules in this file can also be set up in
    #		/etc/hosts.allow with a 'deny' option instead.
    #
    #		See 'man 5 hosts_options' and 'man 5 hosts_access'
    #		for information on rule syntax.
    #		See 'man tcpd' for information on tcp_wrappers
    #
    sshd,vsftpd : ALL
    ALL : ALL
    
    #
    # hosts.allow	This file contains access rules which are used to
    #		allow or deny connections to network services that
    #		either use the tcp_wrappers library or that have been
    #		started through a tcp_wrappers-enabled xinetd.
    #
    #		See 'man 5 hosts_options' and 'man 5 hosts_access'
    #		for information on rule syntax.
    #		See 'man tcpd' for information on tcp_wrappers
    #
    sshd,vsftpd : 192.168.0.102,LOCAL
    

    ການປ່ຽນແປງເຫຼົ່ານີ້ເກີດຂື້ນທັນທີໂດຍບໍ່ ຈຳ ເປັນຕ້ອງມີການເລີ່ມຕົ້ນ ໃໝ່.

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

    ເພື່ອອະນຸຍາດໃຫ້ບໍລິການທັງ ໝົດ ເປັນເຈົ້າພາບບ່ອນທີ່ຊື່ມີ example.com , ຕື່ມແຖວນີ້ໃສ່ hosts.allow :

    ALL : .example.com
    

    ແລະເພື່ອປະຕິເສດການເຂົ້າ vsftpd ກັບເຄື່ອງໃນວັນທີ 10.0.1.0/24, ຕື່ມສາຍນີ້ໃນ hosts.deny :

    vsftpd : 10.0.1.
    

    ໃນສອງຕົວຢ່າງສຸດທ້າຍ, ສັງເກດຈຸດທີ່ຢູ່ໃນຕອນເລີ່ມຕົ້ນແລະຕອນສຸດທ້າຍຂອງບັນຊີລູກຄ້າ. ມັນຖືກໃຊ້ເພື່ອຊີ້ບອກ“ ເຈົ້າພາບທັງ ໝົດ ແລະ/ຫຼືລູກຄ້າບ່ອນທີ່ຊື່ຫລື IP ມີສະຕິງນັ້ນ”.

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