NAME
hosts_access - ຮູບແບບຂອງໄຟລ໌ຄວບຄຸມການເຂົ້າເຖິງຂອງເຈົ້າພາບ
DESCRIPTION
ຫນ້າຄູ່ມືນີ້ ອະທິບາຍ ພາສາຄວບຄຸມການເຂົ້າເຖິງແບບງ່າຍດາຍທີ່ອີງໃສ່ລູກຄ້າ (ຊື່ເຈົ້າ / ທີ່ຢູ່, ຊື່ຜູ້ໃຊ້) ແລະເຄື່ອງແມ່ຂ່າຍ (ຊື່ຂອງຂະບວນການ, ຊື່ເຈົ້າພາບ / ທີ່ຢູ່). ຕົວຢ່າງແມ່ນຢູ່ໃນຕອນທ້າຍ. ຜູ້ອ່ານທີ່ບໍ່ອຶດອັດໃຈໄດ້ຖືກແນະນໍາໃຫ້ຂ້າມໄປຫາພາກ EXAMPLES ສໍາລັບການ ແນະນໍາ ຢ່າງໄວວາ. ເວີຊັນຂອງພາສາຄວບຄຸມການເຂົ້າເຖິງໄດ້ຖືກອະທິບາຍໃນເອກະສານ host_options (5). ການຂະຫຍາຍໄດ້ຖືກເປີດໃນເວລາສ້າງໂຄງການໂດຍການກໍ່ສ້າງດ້ວຍ -DPROCESS_OPTIONS.
ໃນຂໍ້ຄວາມຕໍ່ໄປນີ້, daemon ແມ່ນຊື່ຂະບວນການຂອງ ຂະບວນການ daemon ເຄືອຂ່າຍ , ແລະ ລູກຄ້າ ແມ່ນຊື່ແລະ / ຫຼືທີ່ຢູ່ຂອງການຮ້ອງຂໍໃຫ້ບໍລິການເຈົ້າພາບ. ຊື່ຂອງ process daemon ເຄືອຂ່າຍແມ່ນລະບຸໄວ້ໃນແຟ້ມການຕັ້ງຄ່າ inetd.
ACCES CONTROL FILES
ຊອບແວຄວບຄຸມການເຂົ້າເຖິງປຶກສາຫາລືສອງ ໄຟລ໌ . ການຊອກຫາຈະຢຸດຢູ່ໃນການແຂ່ງຂັນຄັ້ງທໍາອິດ.
ການເຂົ້າເຖິງຈະໄດ້ຮັບເມື່ອມີຄູ່ (daemon, client) ທີ່ກົງກັບການເຂົ້າໃນໄຟ /etc/hosts.allow .
ຖ້າບໍ່ດັ່ງນັ້ນ, ການເຂົ້າເຖິງຈະຖືກປະຕິເສດເມື່ອຄູ່ (daemon, client) ກົງກັບການເຂົ້າໃນໄຟລ໌ /etc/hosts.deny .
ຖ້າບໍ່ດັ່ງນັ້ນ, ການເຂົ້າເຖິງຈະໄດ້ຮັບການອະນຸຍາດ.
ໄຟລ໌ຄວບຄຸມການເຂົ້າເຖິງທີ່ບໍ່ມີຢູ່ແມ່ນຖືກປະຕິບັດຕາມວ່າມັນເປັນໄຟລ໌ເປົ່າ. ດັ່ງນັ້ນ, ການຄວບຄຸມການເຂົ້າເຖິງສາມາດຖືກປິດໂດຍບໍ່ມີໄຟລ໌ຄວບຄຸມການເຂົ້າເຖິງ.
ກົດລະບຽບການຄວບຄຸມການເຂົ້າເຖິງ
ແຕ່ລະໄຟລ໌ຄວບຄຸມການເຂົ້າເຖິງປະກອບດ້ວຍເສັ້ນສູນຫຼືຫລາຍກວ່າຂໍ້ຄວາມ. ສາຍເຫຼົ່ານີ້ຖືກປຸງແຕ່ງຕາມລໍາດັບຂອງຮູບລັກສະນະ. ການຄົ້ນຫາສິ້ນສຸດເມື່ອພົບເຫັນ.
ຕົວອັກສອນໃຫມ່ແມ່ນຖືກລະເວັ້ນໃນເວລາທີ່ມັນຖືກນໍາຫນ້າໂດຍລັກສະນະຂອງ backslash. ນີ້ອະນຸຍາດໃຫ້ທ່ານທໍາລາຍເສັ້ນຍາວເພື່ອໃຫ້ພວກເຂົາງ່າຍຕໍ່ການແກ້ໄຂ.
ເສັ້ນສາຍຫຼືສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ '#' ຖືກລະເວັ້ນ. ນີ້ອະນຸຍາດໃຫ້ທ່ານສະແດງຄວາມຄິດເຫັນແລະແຖບສີເພື່ອໃຫ້ຕາຕະລາງງ່າຍຕໍ່ການອ່ານ.
ເສັ້ນອື່ນໆທັງຫມົດຄວນປະຕິບັດຕາມຮູບແບບດັ່ງຕໍ່ໄປນີ້, ສິ່ງທີ່ຢູ່ໃນລະຫວ່າງ [] ແມ່ນທາງເລືອກ:
daemon_list: client_list [: shell_command]
daemon_list ແມ່ນບັນຊີລາຍຊື່ຫນຶ່ງຫຼືຫຼາຍກວ່າຊື່ຂອງຂະບວນການ daemon (ຄ່າ argv [0]) ຫຼືຕົວອັກສອນ (ເບິ່ງຂ້າງລຸ່ມນີ້).
client_list ແມ່ນບັນຊີລາຍຊື່ຫນຶ່ງຫຼືຫຼາຍຊື່ເຈົ້າພາບ, ທີ່ຢູ່ host, ຮູບແບບຫຼື wildcards (ເບິ່ງຂ້າງລຸ່ມນີ້) ທີ່ຈະກົງກັນກັບຊື່ໂຮດຫຼືທີ່ຢູ່ຂອງເຈົ້າຂອງລູກຄ້າ.
ແບບຟອມສະລັບສັບຊ້ອນຫຼາຍກວ່າ daemon @ host ແລະ user @ host ແມ່ນອະທິບາຍໃນພາກສ່ວນກ່ຽວກັບຮູບແບບ endpoint server ແລະການຊອກຫາຊື່ຜູ້ໃຊ້ຂອງລູກຄ້າ.
ອົງປະກອບຂອງລາຍຊື່ຄວນຖືກແຍກອອກໂດຍຊ່ອງຫວ່າງແລະ / ຫຼືໂຄຣມ.
ຍົກເວັ້ນການຊອກຫາ netgroup NIS (YP), ການກວດສອບການຄວບຄຸມການເຂົ້າເຖິງແມ່ນມີຄວາມບໍ່ສະບາຍ.
PATTERNS
ພາສາຄວບຄຸມການເຂົ້າເຖິງປະຕິບັດຮູບແບບດັ່ງຕໍ່ໄປນີ້:
ສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍ ``. ຕົວອັກສອນ ຊື່ໂຮດຈະກົງກັນຖ້າສ່ວນປະກອບສຸດທ້າຍຂອງຊື່ກົງກັບຮູບແບບທີ່ລະບຸໄວ້. ຕົວຢ່າງ, ຮູບແບບ `.tue.nl 'ກົງກັບຊື່ໂຮດ` wzvwin.tue.nl'.
ສາຍທີ່ສິ້ນສຸດລົງດ້ວຍ ``. ຕົວອັກສອນ ທີ່ຢູ່ໂຮດເປັນທີ່ກົງກັນຖ້າທົ່ງຈໍານວນທໍາອິດຂອງມັນສອດຄ່ອງກັບສະຕິງທີ່ໄດ້ຮັບ. ຕົວຢ່າງ, ຮູບແບບ `131155. ' ກົງກັບທີ່ຢູ່ຂອງ (ເກືອບ) ທຸກໂຮດໃນເຄືອຂ່າຍມະຫາວິທະຍາໄລ Eindhoven (131155.xx).
ສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ `@ 'ຖືກປະຕິບັດເປັນຊື່ netgroup NIS (ກ່ອນເອີ້ນວ່າ YP). ຊື່ໂຮດຖືກຈັບຄູ່ຖ້າມັນເປັນສະມາຊິກຂອງເຄືອຂ່າຍຂອງ netgroup ທີ່ກໍານົດໄວ້. ການແຂ່ງຂັນ Netgroup ບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນສໍາລັບຊື່ຂອງຂະບວນການ daemon ຫຼືສໍາລັບຊື່ຜູ້ໃຊ້ຂອງລູກຄ້າ.
ການສະແດງອອກຂອງແບບຟອມ `nnnn / mmmm 'ຖືກຕີເປັນຄູ່` net / mask'. IP address ຂອງ IPv4 ແມ່ນກົງກັນຖ້າ `net 'ແມ່ນເທົ່າກັບ AND bitwise ຂອງ address ແລະ` mask'. ສໍາລັບຕົວຢ່າງ, ຮູບແບບຕາຫນ່າງ / ຕາຫນ່າງ `131.155.720 / 25.5.25.225.0 'ກົງກັບທຸກໆທີ່ຢູ່ໃນລະດັບ` 13115552.0' ຜ່ານ `131.1557.3255 '.
ການສະແດງອອກຂອງຮູບແບບ `n: n: n: n: n] / m 'ແມ່ນແປເປັນຄູ່` [ເນັດ] / prefixen'. ທີ່ຢູ່ host IPv6 ແມ່ນກົງກັນຖ້າ bit `prefixlen 'ຂອງ` net' ແມ່ນເທົ່າກັບ bit `prefixlen 'ຂອງທີ່ຢູ່. ສໍາລັບຕົວຢ່າງ, ແບບຟອມ [net] / prefixlen `[3ffe: 505: 2: 1 ::] / 64 'ກົງກັນທຸກທີ່ຢູ່ໃນລະດັບ` 3ffe: 505: 2: 1:' ຜ່ານ `3ffe: 505: 2: 1: ffff: ffff: ffff: ffff '
ສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ `/ 'ຖືກຖືເປັນ ຊື່ແຟ້ມ . ຊື່ໂຮດຫລືທີ່ຢູ່ຈະຖືກຈັບຄູ່ຖ້າມັນກົງກັບຊື່ໂຮດຫລືຮູບແບບທີ່ຢູ່ໃນແຟ້ມທີ່ມີຊື່. ຮູບແບບໄຟລ໌ແມ່ນເສັ້ນສູນ 0 ຫຼືຫຼາຍກວ່າທີ່ມີຊື່ໂຮດຫຼືຮູບແບບທີ່ບໍ່ຖືກຕ້ອງແຍກໂດຍຊ່ອງຫວ່າງ. ຮູບແບບຊື່ໄຟລ໌ສາມາດນໍາໃຊ້ໄດ້ທຸກບ່ອນທີ່ຊື່ໂຮດຫລືຮູບແບບທີ່ສາມາດໃຊ້ໄດ້.
Wildcards `* 'ແລະ`?' ສາມາດຖືກນໍາໃຊ້ເພື່ອຫາຊື່ທີ່ຢູ່ຫຼື ທີ່ຢູ່ IP . ວິທີການໂຍກຍ້າຍນີ້ບໍ່ສາມາດຖືກນໍາໃຊ້ຮ່ວມກັນກັບການຈັບຄູ່ `net / mask ', ການເຊື່ອມໂຍງ hostname ເລີ່ມຕົ້ນດ້ວຍ`.' ຫຼືການເຊື່ອມໂຍງ ທີ່ຢູ່ IP ທີ່ ສິ້ນສຸດດ້ວຍ `. '.
WILDCARDS
ພາສາຄວບຄຸມການເຂົ້າເຖິງສະຫນັບສະຫນູນ wildcards explicit:
ALL
ຕົວແທນທົ່ວໄປ, ສະເຫມີກັນ.
LOCAL
ກົງກັນທຸກເຄື່ອງທີ່ມີຊື່ບໍ່ມີຕົວເລກຈຸດ.
UNKNOWN
ກົງກັບຜູ້ໃຊ້ທີ່ມີຊື່ທີ່ບໍ່ຮູ້ຈັກແລະກົງກັບເຄື່ອງແມ່ຂ່າຍໃດໆທີ່ບໍ່ມີຊື່ ຫຼື ທີ່ຢູ່. ຮູບແບບນີ້ຄວນຈະຖືກນໍາໃຊ້ດ້ວຍການດູແລ: ຊື່ເຈົ້າຂອງອາດບໍ່ສາມາດໃຊ້ໄດ້ເນື່ອງຈາກບັນຫາຂອງເຄື່ອງແມ່ຂ່າຍຊື່ຊົ່ວຄາວ. ທີ່ຢູ່ເຄືອຂ່າຍຈະບໍ່ມີເວລາໃນເວລາທີ່ຊອບແວບໍ່ສາມາດຫາປະເພດເຄືອຂ່າຍໃດທີ່ມັນເວົ້າກັບ.
KNOWN
ກົງກັບຜູ້ໃຊ້ທີ່ມີຊື່ທີ່ຮູ້ຈັກແລະກົງກັບເຄື່ອງທີ່ມີຊື່ ແລະ ທີ່ຢູ່ຂອງເຄື່ອງຄອມພິວເຕີ. ຮູບແບບນີ້ຄວນຈະຖືກນໍາໃຊ້ດ້ວຍການດູແລ: ຊື່ເຈົ້າຂອງອາດບໍ່ສາມາດໃຊ້ໄດ້ເນື່ອງຈາກບັນຫາຂອງເຄື່ອງແມ່ຂ່າຍຊື່ຊົ່ວຄາວ. ທີ່ຢູ່ເຄືອຂ່າຍຈະບໍ່ມີເວລາໃນເວລາທີ່ຊອບແວບໍ່ສາມາດຫາປະເພດເຄືອຂ່າຍໃດທີ່ມັນເວົ້າກັບ.
PARANOID
ກົງກັນກັບເຄື່ອງແມ່ຂ່າຍທີ່ມີຊື່ບໍ່ກົງກັບທີ່ຢູ່ຂອງມັນ. ເມື່ອ tcpd ຖືກສ້າງຂຶ້ນດ້ວຍ -DPARANOID (ໂຫມດມາດຕະຖານ), ມັນຫຼຸດລົງການຮ້ອງຂໍຈາກລູກຄ້າເຊັ່ນດຽວກັນກ່ອນທີ່ຈະຊອກຫາຕາຕະລາງຄວບຄຸມການເຂົ້າເຖິງ. ສ້າງໂດຍບໍ່ມີ - DPARANOID ເມື່ອທ່ານຕ້ອງການຄວບຄຸມການຮ້ອງຂໍດັ່ງກ່າວ.
OPERATORS
ຍົກເວັ້ນ
ການນໍາໃຊ້ທີ່ຖືກຕ້ອງແມ່ນຮູບແບບ: `list_1 EXCEPT list_2 '; ການກໍ່ສ້າງນີ້ກົງກັບສິ່ງໃດທີ່ກົງກັບ list_1 ເວັ້ນເສຍແຕ່ວ່າມັນກົງກັບ list_2 . ຕົວປະຕິເສດ EXCEPT ສາມາດໃຊ້ໃນ daemon_lists ແລະໃນ client_lists. ຕົວຄວບຄຸມ EXCEPT ສາມາດຖືກຮັງ: ຖ້າພາສາຄວບຄຸມຈະອະນຸຍາດໃຫ້ໃຊ້ວົງເລັບ, `EXCEPT b EXCEPT c 'ຈະແຍກເປັນ` (EXCEPT (b EXCEPT c))'.
ຖ້າກົດລະບຽບການຄວບຄຸມການເຂົ້າເຖິງຄັ້ງທໍາອິດປະກອບດ້ວຍຄໍາສັ່ງຂອງ shell, ຄໍາສັ່ງນັ້ນຕ້ອງມີ% substitutions (ເບິ່ງພາກຕໍ່ໄປ). ຜົນໄດ້ຮັບຖືກດໍາເນີນການໂດຍຂະບວນການຂອງລູກ / bin / sh ທີ່ມີມາດຕະຖານ input, output ແລະ error ເຊື່ອມຕໍ່ກັບ / dev / null . ກໍານົດເປັນ `& 'ຢູ່ໃນຕອນທ້າຍຂອງຄໍາສັ່ງຖ້າຫາກວ່າທ່ານບໍ່ຕ້ອງການລໍຖ້າຈົນກ່ວາມັນໄດ້ສໍາເລັດ.
ຄໍາສັ່ງ Shell ບໍ່ຄວນອີງໃສ່ການຕັ້ງຄ່າ PATH ຂອງ inetd. ແທນທີ່ຈະ, ພວກເຂົາຄວນນໍາໃຊ້ຊື່ທາງຢ່າງແທ້ຈິງ, ຫຼືພວກເຂົາຄວນຈະເລີ່ມຕົ້ນດ້ວຍ PATH explicit = ຄໍາເວົ້າໃດກໍ່ຕາມ.
ເອກະສານ host_options (5) ອະທິບາຍພາສາອື່ນທີ່ໃຊ້ສະຫນາມຄໍາສັ່ງຫອຍທີ່ແຕກຕ່າງກັນແລະບໍ່ເຂົ້າກັນ.
% EXPANSIONS
ການຂະຫຍາຍຕົວດັ່ງຕໍ່ໄປນີ້ມີຢູ່ໃນຄໍາສັ່ງຂອງ shell:
% a (% A)
ທີ່ຢູ່ຂອງເຈົ້າຂອງໄຄເອັນ (ເຊີຟເວີ)
% c
ຂໍ້ມູນລູກຄ້າ: ຜູ້ໃຊ້ @ ໂຮດ, ຜູ້ໃຊ້ @ ທີ່ຢູ່, ຊື່ໂຮດ, ຫຼືພຽງແຕ່ເປັນທີ່ຢູ່, ອີງຕາມຈໍານວນຂໍ້ມູນທີ່ມີຢູ່.
% d
ຊື່ຂອງ daemon (ຄ່າ argv [0]).
% h (% H)
ຊື່ລູກຄ້າຫຼືທີ່ຢູ່ຂອງລູກຄ້າ (ຊື່ເຊີຟເວີ) ຖ້າຊື່ໂຮດບໍ່ສາມາດໃຊ້ໄດ້.
% n (% N)
ຊື່ເຄື່ອງແມ່ຂ່າຍຂອງລູກຄ້າ (server) (ຫຼື "ບໍ່ຮູ້ຈັກ" ຫຼື "ຮ້າຍແຮງ").
% p
id process daemon
% s
ຂໍ້ມູນເຊີຟເວີ: daemon @ host, daemon @ address, ຫລືຊື່ daemon, ຂຶ້ນຢູ່ກັບຈໍານວນຂໍ້ມູນທີ່ມີຢູ່.
% u
ຊື່ຜູ້ໃຊ້ລູກຄ້າ (ຫຼື "ບໍ່ຮູ້ຈັກ").
%%
ຂະຫຍາຍຕົວຕົວອັກສອນດຽວ `% '.
ຕົວອັກສອນໃນການຂະຫຍາຍຕົວ% ທີ່ອາດສັບສົນກັບແກະໄດ້ຖືກແທນທີ່ດ້ວຍລັກສະນະທີ່ເຄັ່ງຄັດ.
SERVER ENDPOINT PATTERNS
ເພື່ອແນໃສ່ການຈໍາແນກລູກຄ້າໂດຍທີ່ຢູ່ເຄືອຂ່າຍທີ່ພວກເຂົາເຊື່ອມຕໍ່ກັບ, ໃຫ້ໃຊ້ຮູບແບບຂອງແບບຟອມ:
process_name @ host_pattern: client_list
ຮູບແບບຕ່າງໆເຫຼົ່ານີ້ສາມາດໃຊ້ໄດ້ເມື່ອເຄື່ອງມີທີ່ຢູ່ອິນເຕີເນັດທີ່ແຕກຕ່າງກັນກັບຊື່ອິນເຕີເນັດທີ່ແຕກຕ່າງກັນ. ຜູ້ໃຫ້ບໍລິການສາມາດໃຊ້ສະຖານທີ່ນີ້ເພື່ອສະຫນອງໄຟລ໌ FTP, GOPHER ຫຼື WWW ພ້ອມຊື່ອິນເຕີເນັດທີ່ອາດເປັນຂອງອົງກອນຕ່າງໆ. ເບິ່ງອີກທາງເລືອກ 'ບິດ' ໃນເອກສານ host_options (5). ລະບົບບາງຢ່າງ (Solaris, FreeBSD) ສາມາດມີຫຼາຍກ່ວາຫນຶ່ງທີ່ຢູ່ອິນເຕີເນັດໃນການໂຕ້ຕອບທາງດ້ານຮ່າງກາຍ; ກັບລະບົບອື່ນ ໆ ທ່ານອາດຈະຕ້ອງໃຊ້ SLIP ຫຼື PPP pseudo interfaces ທີ່ອາໄສຢູ່ໃນພື້ນທີ່ທີ່ຢູ່ໃນເຄືອຂ່າຍທີ່ອຸທິດຕົນ.
host_pattern obeys ລະບຽບການ syntax ດຽວກັນເປັນຊື່ເຈົ້າພາບແລະທີ່ຢູ່ໃນສະຖານທີ່ client_list. ໂດຍປົກກະຕິ, ຂໍ້ມູນຂ່າວສານ endpoint ຂອງເຄື່ອງແມ່ຂ່າຍແມ່ນມີພຽງແຕ່ມີການບໍລິການທີ່ກ່ຽວກັບການເຊື່ອມຕໍ່.
CLIENT USERNAME LOOKUP
ໃນເວລາທີ່ລູກຄ້າສະຫນັບສະຫນູນໂປຣແກຣມ RFC 931 ຫຼືລູກຫລານຂອງມັນ (TAP, IDENT, RFC 1413), ໂປແກຼມ wrapper ສາມາດເອົາຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບເຈົ້າຂອງການເຊື່ອມຕໍ່. ຂໍ້ມູນຜູ້ໃຊ້ຊື່ຜູ້ໃຊ້, ເມື່ອມີ, ຖືກເຂົ້າລະຫັດກັບຊື່ໂຮດຂອງລູກຄ້າແລະສາມາດຖືກນໍາໃຊ້ເພື່ອໃຫ້ກົງກັບຮູບແບບເຊັ່ນ:
daemon_list: user_pattern @ host_pattern
ການຫຸ້ມຫໍ່ daemon ສາມາດຖືກກໍານົດໃນເວລາທີ່ລວບລວມເພື່ອສະແດງການຊອກຫາຊື່ຜູ້ໃຊ້ທີ່ກໍານົດໄວ້ຕາມກົດລະບຽບ (ແບບມາດຕະຖານ) ຫຼືເພື່ອສອບຖາມຕົວລູກຄ້າສະເຫມີ. ໃນກໍລະນີຂອງການຄົ້ນຫາຊື່ຜູ້ໃຊ້ທີ່ກໍານົດຕາມກົດລະບຽບ, ກົດລະບຽບຂ້າງຕົ້ນຈະເຮັດໃຫ້ການຄົ້ນຫາຊື່ຜູ້ໃຊ້ເທົ່ານັ້ນເມື່ອມີຂໍ້ມູນ daemon_list ແລະ host_pattern .
ຮູບແບບຂອງຜູ້ໃຊ້ມີໄວຣັສດຽວກັນກັບຮູບແບບຂະບວນການ daemon, ສະນັ້ນ wildcards ດຽວກັນນໍາໃຊ້ (ສະມາຊິກ netgroup ບໍ່ສະຫນັບສະຫນູນ). ຢ່າງໃດກໍ່ຕາມ, ພວກເຮົາຄວນຈະບໍ່ໄດ້ຮັບການນໍາໃຊ້ກັບການຄົ້ນຫາຊື່ຜູ້ໃຊ້.
ຂໍ້ມູນຜູ້ໃຊ້ຂອງລູກຄ້າບໍ່ສາມາດໄວ້ໃຈໃນເວລາທີ່ຕ້ອງການຫຼາຍທີ່ສຸດ, ເຊັ່ນວ່າລະບົບລູກຄ້າໄດ້ຮັບການສໍ້ລາດບັງຫຼວງ. ໂດຍທົ່ວໄປແລ້ວ, ALL ແລະ (UN) KNOWN ແມ່ນຮູບແບບຊື່ຜູ້ໃຊ້ທີ່ມີຄວາມຫມາຍເທົ່ານັ້ນ.
ການຄົ້ນຫາຊື່ຜູ້ໃຊ້ແມ່ນມີຄວາມເປັນໄປໄດ້ເທົ່ານັ້ນທີ່ມີການບໍລິການທີ່ TCP, ແລະພຽງແຕ່ໃນເວລາທີ່ເຈົ້າພາບຂອງເຄື່ອງແມ່ຂ່າຍທີ່ເຮັດວຽກກັບ daemon ທີ່ເຫມາະສົມ; ໃນກໍລະນີອື່ນໆທັງຫມົດ, ຜົນໄດ້ຮັບແມ່ນ "ບໍ່ຮູ້".
ຂໍ້ຜິດພາດ kernel UNIX ທີ່ຮູ້ຈັກກັນດີອາດເຮັດໃຫ້ສູນເສຍການບໍລິການເມື່ອການຄົ້ນຫາຊື່ຜູ້ໃຊ້ຖືກສະກັດໂດຍ firewall. ເອກະສານແບບ README wrapper ອະທິບາຍຂັ້ນຕອນເພື່ອຊອກຫາວ່າແກ່ນຂອງທ່ານມີຂໍ້ຜິດພາດນີ້.
ການຄົ້ນຫາຊື່ຜູ້ໃຊ້ອາດຈະເຮັດໃຫ້ມີການຊັກຊ້າແຈ້ງສໍາລັບຜູ້ໃຊ້ທີ່ບໍ່ແມ່ນ UNIX. ເວລາຫມົດເວລາຕົ້ນຕໍສໍາລັບການຄົ້ນຫາຊື່ຜູ້ໃຊ້ແມ່ນ 10 ວິນາທີ: ເກີນໄປເພື່ອຮັບມືກັບເຄືອຂ່າຍທີ່ຊ້າ, ແຕ່ຍາວດົນເພື່ອເຮັດໃຫ້ຜູ້ຊົມໃຊ້ຄອມພິວເຕີ້ກັງວົນ.
ການຄົ້ນຫາຊື່ຜູ້ໃຊ້ທີ່ຄັດເລືອກສາມາດບັນເທົາບັນຫາສຸດທ້າຍ. ຕົວຢ່າງເຊັ່ນກົດລະບຽບເຊັ່ນ:
daemon_list: @pcnetgroup ALL @ ALL
ຈະກົງກັບສະມາຊິກຂອງ netgroup ຄອມພິວເຕີ້ໂດຍບໍ່ມີການຄົ້ນຫາຊື່ຜູ້ໃຊ້ແຕ່ຈະປະຕິບັດການຄົ້ນຫາຊື່ຜູ້ໃຊ້ກັບລະບົບອື່ນໆທັງຫມົດ.
ການກໍານົດຈຸດປະສົງການສະກັດກັ້ນອາກາດ
ຂໍ້ບົກພ່ອງໃນການສ້າງຈໍານວນລໍາດັບຂອງການປະຕິບັດ TCP / IP ຫຼາຍຄົນອະນຸຍາດໃຫ້ຜູ້ບຸກລຸກເຂົ້າໃຈງ່າຍທີ່ຈະເປັນເຈົ້າພາບທີ່ເຊື່ອຖືໄດ້ແລະທໍາລາຍໃນຕົວຢ່າງເຊັ່ນການບໍລິການແກະຫ່າງໄກສອກຫຼີກ. ການບໍລິການ IDENT (RFC931 ແລະອື່ນໆ) ສາມາດຖືກນໍາໃຊ້ເພື່ອກວດສອບການໂຈມຕີ spoofing ທີ່ຢູ່ແລະອື່ນໆ.
ກ່ອນທີ່ຈະຮັບເອົາຄໍາຮ້ອງຂໍຂອງລູກຄ້າ, ເຄື່ອງຫຸ້ມຫໍ່ສາມາດໃຊ້ບໍລິການ IDENT ເພື່ອຊອກຫາວ່າລູກຄ້າບໍ່ໄດ້ສົ່ງຄໍາຮ້ອງທຸກ. ເມື່ອໂຮດລູກຄ້າສະຫນອງການບໍລິການ IDENT, ຜົນລັບການຄົ້ນຫາແບບ IDENT ທີ່ບໍ່ຖືກຕ້ອງ (ລູກຄ້າທີ່ກົງກັບ "UNKNOWN @ host") ແມ່ນຫຼັກຖານທີ່ເຂັ້ມແຂງຂອງການໂຈມຕີຂອງຕົວທ່ອງເວັບ.
ຜົນການຄົ້ນຫາທີ່ມີຜົນບວກ IDENT (ລູກຄ້າກົງກັບ `KNOWN @ host ') ແມ່ນຫນ້ອຍທີ່ເຊື່ອຖືໄດ້. ມັນເປັນໄປໄດ້ສໍາລັບຜູ້ບຸກລຸກທີ່ຈະຫຼອກລວງການເຊື່ອມຕໍ່ຂອງລູກຄ້າແລະການຊອກຫາ IDENT, ເຖິງແມ່ນວ່າການເຮັດດັ່ງນັ້ນມີຄວາມຫຍຸ້ງຍາກຫຼາຍກ່ວາ spoofing ພຽງແຕ່ການເຊື່ອມຕໍ່ຂອງລູກຄ້າເທົ່ານັ້ນ. ມັນອາດຈະເປັນວ່າເຄື່ອງແມ່ຂ່າຍຂອງ IDENT ຂອງລູກຄ້າແມ່ນຖືກກ່າວຫາ.
ຫມາຍເຫດ: ຄົ້ນຫາ IDENT ບໍ່ເຮັດວຽກກັບບໍລິການ UDP.
ຕົວຢ່າງ
ພາສາທີ່ມີຄວາມຍືດຢຸ່ນພຽງພໍທີ່ວ່າປະເພດຕ່າງໆຂອງນະໂຍບາຍການຄວບຄຸມການເຂົ້າເຖິງສາມາດສະແດງອອກໄດ້ດ້ວຍຄວາມຕ່ໍາຕ້ອຍນ້ອຍໆ. ເຖິງແມ່ນວ່າພາສາໃຊ້ຕາຕະລາງຄວບຄຸມການເຂົ້າເຖິງສອງ, ນະໂຍບາຍທົ່ວໄປທີ່ສຸດສາມາດຈັດຕັ້ງປະຕິບັດໄດ້ໂດຍຫນຶ່ງໃນຕາຕະລາງທີ່ບໍ່ຖືກຕ້ອງຫຼືເປົ່າຫວ່າງ.
ໃນເວລາທີ່ອ່ານຕົວຢ່າງຂ້າງລຸ່ມນີ້ມັນສໍາຄັນທີ່ຈະຮັບຮູ້ວ່າຕາຕະລາງອະນຸຍາດແມ່ນຖືກສະແກນກ່ອນຕາຕະລາງປະຕິເສດ, ວ່າການຄົ້ນຫາຈະສິ້ນສຸດເມື່ອພົບເຫັນແລະການເຂົ້າເຖິງຈະຖືກອະນຸມັດເມື່ອພົບບໍ່ພົບ.
ຕົວຢ່າງໃຊ້ໂຮດແລະຊື່ໂດເມນ. ພວກເຂົາສາມາດໄດ້ຮັບການປັບປຸງໂດຍລວມຂໍ້ມູນທີ່ຢູ່ແລະ / ຫຼືຂໍ້ມູນເຄືອຂ່າຍ / ເຄືອຂ່າຍ, ເພື່ອຫຼຸດຜ່ອນຜົນກະທົບຂອງການລົ້ມເຫລວຂອງການຊອກຫາເຄື່ອງແມ່ຂ່າຍຊົ່ວຄາວ.
ຢ່າງຫນ້ອຍປິດ
ໃນກໍລະນີນີ້, ການເຂົ້າເຖິງຈະຖືກປະຕິເສດໂດຍຄ່າເລີ່ມຕົ້ນ. ພຽງແຕ່ຜູ້ທີ່ອະນຸຍາດຢ່າງຊັດເຈນອະນຸຍາດໃຫ້ເຂົ້າເຖິງ.
ນະໂຍບາຍເລີ່ມຕົ້ນ (ບໍ່ມີການເຂົ້າເຖິງ) ຖືກປະຕິບັດດ້ວຍໄຟລ໌ປະຕິເສດທີ່ບໍ່ຖືກຕ້ອງ:
/etc/hosts.deny: ALL: ALL
ນີ້ປະຕິເສດການບໍລິການທັງຫມົດໃຫ້ກັບເຄື່ອງແມ່ຂ່າຍທັງຫມົດ, ເວັ້ນເສຍແຕ່ວ່າພວກເຂົາຖືກອະນຸຍາດໃຫ້ເຂົ້າໂດຍການເຂົ້າໃນເອກະສານອະນຸຍາດ.
ເຈົ້າຫນ້າທີ່ອະນຸຍາດຢ່າງຊັດເຈນແມ່ນຢູ່ໃນເອກະສານອະນຸຍາດ. ຍົກຕົວຢ່າງ:
/etc/hostsallow: ALL: LOCAL @some_netgroup
ALL: .foobar.edu EXCEPT terminalserverfoobar.edu
ກົດລະບຽບທໍາອິດໃຫ້ການເຂົ້າເຖິງຈາກໂຮດໃນໂດເມນທ້ອງຖິ່ນ (ບໍ່ມີ `` ໃນຊື່ໂຮດ) ແລະຈາກສະມາຊິກຂອງ netgroup some_netgroup. ກົດລະບຽບທີສອງອະນຸຍາດໃຫ້ເຂົ້າເຖິງຈາກເຄື່ອງແມ່ຂ່າຍທັງຫມົດໃນໂດເມນ foobar.edu (ສັງເກດເຫັນຈຸດນໍາ), ຍົກເວັ້ນ terminalserver.foobar.edu .
ໄດ້ຢ່າງງ່າຍດາຍເປີດ
ທີ່ນີ້, ການເຂົ້າເຖິງແມ່ນໄດ້ຮັບການກໍານົດໄວ້ຕາມຄວາມເຫມາະສົມ; ມີພຽງຜູ້ທີ່ຖືກກໍານົດຢ່າງຊັດເຈນຖືກປະຕິເສດການບໍລິການ.
ນະໂຍບາຍການເລີ່ມຕົ້ນ (ການເຂົ້າເຖິງ) ອະນຸຍາດໃຫ້ເອກະສານອະນຸຍາດໃຫ້ມີໄຟຟ້ອມເພື່ອໃຫ້ມັນສາມາດຖືກຍົກເລີກ. ເຄື່ອງແມ່ຂ່າຍທີ່ບໍ່ຖືກອະນຸຍາດຢ່າງຊັດເຈນແມ່ນຢູ່ໃນໄຟລ໌ປະຕິເສດ. ຍົກຕົວຢ່າງ:
/etc/hosts.deny: ALL: somehostname, somedomain
ALL EXCEPT in.fingerd: other.hostname, otherdomain
ກົດລະບຽບທໍາອິດປະຕິເສດບາງໂຮດແລະໂດເມນການບໍລິການທັງຫມົດ; ກົດລະບຽບທີສອງຍັງອະນຸຍາດໃຫ້ຄໍາຮ້ອງຂໍນິ້ວມືຈາກເຈົ້າພາບແລະໂດເມນອື່ນໆ.
BOOBY TRAPS
ຕົວຢ່າງຕໍ່ໄປນີ້ອະນຸຍາດໃຫ້ການຮ້ອງຂໍ tftp ຈາກໂຮດໃນໂດເມນທ້ອງຖິ່ນ (ສັງເກດເຫັນຈຸດນໍາທາງ). ຄໍາຮ້ອງຂໍຈາກເຈົ້າພາບອື່ນໆແມ່ນຖືກປະຕິເສດ. ແທນທີ່ຈະໄຟລ໌ທີ່ຖືກຮ້ອງຂໍ, ການກວດສອບນິ້ວມືຖືກສົ່ງໄປຫາເຈົ້າພາບທີ່ຜິດກົດຫມາຍ. ຜົນໄດ້ຮັບແມ່ນສົ່ງໄປຫາຜູ້ superuser.
/etc/hostsallow:
intftpd: LOCAL, mydomain /etc/hostsdeny: intftpd: ALL: spawn (/ some / where / safe_finger -l @% h | \ / usr / ucb / mail -s% d-% h root) &ຄໍາສັ່ງ safe_finger ມາພ້ອມກັບ wrapper tcpd ແລະຄວນຕິດຕັ້ງໃນບ່ອນທີ່ເຫມາະສົມ. ມັນຈໍາກັດຄວາມເສຍຫາຍຈາກຂໍ້ມູນທີ່ສົ່ງໂດຍເຄື່ອງແມ່ຂ່າຍນິ້ວມືຫ່າງໄກສອກຫຼີກ. ມັນໃຫ້ການປົກປ້ອງທີ່ດີກວ່າຄໍາສັ່ງຂອງນິ້ວມືມາດຕະຖານ.
ການຂະຫຍາຍຕົວຂອງລະບົບ% h (client host) ແລະ% d (service name) sequences ແມ່ນອະທິບາຍໃນສ່ວນຄໍາສັ່ງ shell.
ຄໍາເຕືອນ: ຫ້າມຈັບຕົວນິ້ວມືຂອງທ່ານ, ຖ້າທ່ານບໍ່ໄດ້ກຽມພ້ອມສໍາລັບວົງເລັບທີ່ບໍ່ຈໍາກັດ.
ໃນລະບົບ firewall ເຄືອຂ່າຍເຄັດລັບນີ້ສາມາດດໍາເນີນການຕໍ່ໄປອີກແລ້ວ. firewall ເຄືອຂ່າຍປົກກະຕິພຽງແຕ່ສະຫນອງການບໍລິການທີ່ຈໍາກັດໃຫ້ໂລກພາຍນອກ. ບໍລິການອື່ນໆທັງຫມົດສາມາດ "bugged" ຄືກັບຕົວຢ່າງ tftp ຂ້າງເທິງ. ຜົນໄດ້ຮັບແມ່ນລະບົບເຕືອນໄພທີ່ດີເລີດ.
ເບິ່ງຍັງ
tcpd (8) tcp / ip daemon wrapper program tcpdchk (8), tcpdmatch (8), ໂປລແກລມທົດສອບສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.