ชื่อ
hosts_access - รูปแบบของไฟล์ควบคุมการเข้าถึงโฮสต์
รายละเอียด
หน้าคู่มือนี้จะอธิบายถึงภาษาควบคุมการเข้าถึงที่ง่ายซึ่งขึ้นอยู่กับไคลเอ็นต์ (ชื่อโฮสต์ / ที่อยู่ชื่อผู้ใช้) และรูปแบบ เซิร์ฟเวอร์ (ชื่อกระบวนการชื่อโฮสต์ / ที่อยู่) ตัวอย่างจะได้รับในตอนท้าย ผู้อ่านที่ใจร้อนควรจะข้ามไปที่ส่วน EXAMPLES เพื่อดูบทแนะนำอย่างรวดเร็ว
ภาษาควบคุมการเข้าถึงเวอร์ชันเพิ่มเติมได้อธิบายไว้ในเอกสาร hosts_options (5) ส่วนขยายจะเปิดใช้งานในเวลาสร้างโปรแกรมโดยสร้างด้วย -DPROCESS_OPTIONS
ในข้อความต่อไปนี้ daemon เป็นชื่อกระบวนการของกระบวนการ daemon เครือข่าย และ client คือชื่อและ / หรือที่อยู่ของบริการที่ร้องขอจากโฮสต์ ชื่อกระบวนการ daemon เครือข่ายระบุไว้ในไฟล์การกำหนดค่า inetd
แฟ้มควบคุมการเข้าถึง
ซอฟต์แวร์ควบคุมการเข้าถึงให้คำปรึกษาสอง ไฟล์ การค้นหาหยุดที่การแข่งขันครั้งแรก:
* * * *
การเข้าถึงจะได้รับเมื่อคู่ (daemon, client) ตรงกับรายการใน ไฟล์ /etc/hosts.allow
* * * *
มิฉะนั้นการเข้าถึงจะถูกปฏิเสธเมื่อคู่ ( daemon , client) ตรงกับรายการใน ไฟล์ /etc/hosts.deny
* * * *
มิฉะนั้นการเข้าถึงจะได้รับ
ไฟล์ควบคุมการเข้าใช้งานที่ไม่มีอยู่จะถือว่าเป็น ไฟล์ที่ ว่างเปล่า ดังนั้นการควบคุมการเข้าถึงสามารถปิดโดยการให้ ไฟล์ การควบคุมการเข้าถึงไม่
กฎการควบคุมการเข้าถึง
ไฟล์ควบคุมการเข้าใช้แต่ละไฟล์ประกอบด้วยบรรทัดข้อความเป็นศูนย์หรือมากกว่า บรรทัดเหล่านี้จะถูกประมวลผลตามลำดับการปรากฏตัว การค้นหาสิ้นสุดลงเมื่อพบการจับคู่
* * * *
อักขระบรรทัดใหม่จะถูกละเว้นเมื่อมีอักขระเครื่องหมายทับขวา นี้ช่วยให้คุณสามารถแบ่งสายยาวเพื่อให้ง่ายต่อการแก้ไข
* * * *
บรรทัดหรือบรรทัดว่างเปล่าที่ขึ้นต้นด้วยอักขระ `# 'จะถูกละเลย นี้ช่วยให้คุณสามารถแทรกความคิดเห็นและช่องว่างเพื่อให้ตารางที่ง่ายต่อการอ่าน
* * * *
บรรทัดอื่น ๆ ทั้งหมดควรเป็นไปตามรูปแบบต่อไปนี้สิ่งต่างๆระหว่าง [] เป็นตัวเลือก:
daemon_list: client_list [: shell_command]
daemon_list คือรายการของชื่อกระบวนการภูตหนึ่งตัวหรือมากกว่า (ค่า argv [0]) หรืออักขระตัวแทน (ดูด้านล่าง)
client_list คือรายการของชื่อโฮสต์ที่อยู่โฮสต์รูปแบบหรืออักขระตัวแทน (ดูด้านล่าง) ที่จะจับคู่กับชื่อโฮสต์หรือที่อยู่ของไคลเอ็นต์
รูปแบบฟอร์ม daemon @ host และ user @ host ที่ซับซ้อนมากขึ้นจะอธิบายไว้ในส่วนที่เกี่ยวกับรูปแบบปลายทางปลายทางของเซิร์ฟเวอร์และการค้นหาชื่อผู้ใช้ไคลเอ็นต์ตามลำดับ
รายการควรแยกจากกันโดยช่องว่างและ / หรือเครื่องหมายจุลภาค
ยกเว้นการค้นหา netgroup NIS (YP) การตรวจสอบการควบคุมการเข้าถึงทั้งหมดจะไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
รูปแบบ
ภาษาควบคุมการเข้าถึงใช้รูปแบบต่อไปนี้:
* * * *
สตริงที่ขึ้นต้นด้วย `. ' ตัวละคร ชื่อโฮสต์จะถูกจับคู่หากคอมโพเนนต์สุดท้ายของชื่อตรงกับรูปแบบที่ระบุ ตัวอย่างเช่นรูปแบบ `.tue.nl 'ตรงกับชื่อโฮสต์' wzv.win.tue.nl '
* * * *
สตริงที่ลงท้ายด้วย `. ' ตัวละคร ที่อยู่โฮสต์จะถูกจับคู่หากช่องตัวเลขแรกตรงกับสตริงที่ระบุ ตัวอย่างเช่นรูปแบบ `131.155 ' ตรงกับที่อยู่ของ (เกือบ) ทุกพื้นที่ในเครือข่ายมหาวิทยาลัย Eindhoven (131.155.xx)
* * * *
สตริงที่ขึ้นต้นด้วยอักขระ `@ 'จะถือว่าเป็นชื่อเครือข่าย NIS (เดิมชื่อ YP) ชื่อโฮสต์จะถูกจับคู่หากเป็นสมาชิกโฮสต์ของ netgroup ที่ระบุ การจับคู่ Netgroup ไม่ได้รับการสนับสนุนสำหรับชื่อกระบวนการของ daemon หรือสำหรับชื่อผู้ใช้ไคลเอ็นต์
* * * *
การแสดงออกของรูปแบบ `nnnn / mmmm 'ถูกตีความว่าเป็นคู่` net / mask' ที่อยู่ IPv4 โฮสต์จะถูกจับคู่ถ้า `net 'เท่ากับบิตและ AND ของที่อยู่และ` mask' ตัวอย่างเช่นรูปแบบสุทธิ / หน้ากาก '131.155.72.0/255.255.254.0' จะตรงกับที่อยู่ทุกช่วง 131.155.72.0 ผ่าน `131.155.73.255 '
* * * *
การแสดงออกของรูปแบบ `[n: n: n: n: n: n: n: n] / m 'ถูกตีความว่าเป็นคู่ [net] / prefixlen' ที่อยู่โฮสต์ IPv6 จะจับคู่หากบิต `prefixlen 'ของ` net' เท่ากับบิต prefixlen 'ของที่อยู่ ตัวอย่างเช่นรูปแบบ [net] / prefixlen "[3ffe: 505: 2 :: 1 ::] / 64 'ตรงกับทุกที่อยู่ในช่วง` 3ffe: 505: 2: 1 ::' through '3ffe: 505: 2: 1: ffff: ffff: ffff: ffff'
* * * *
สตริงที่ขึ้นต้นด้วยอักขระ `/ 'จะถือว่าเป็นชื่อไฟล์ ชื่อโฮสต์หรือที่อยู่จะถูกจับคู่หากตรงกับชื่อโฮสต์หรือรูปแบบที่อยู่ในไฟล์ที่ระบุ รูปแบบไฟล์เป็นศูนย์หรือมากกว่าเส้นที่มีศูนย์หรือมากกว่าชื่อโฮสต์หรือรูปแบบที่อยู่โดยคั่นด้วยช่องว่าง รูปแบบชื่อไฟล์สามารถใช้ได้จากที่ใดก็ได้ที่สามารถใช้ชื่อโฮสต์หรือรูปแบบที่อยู่ได้
* * * *
สัญลักษณ์แทน `* 'และ`?' สามารถใช้เพื่อจับคู่ชื่อโฮสต์หรือที่อยู่ IP ได้ วิธีจับคู่แบบนี้ไม่สามารถใช้ร่วมกับการจับคู่ `net / mask ', การจับคู่โฮสต์เริ่มต้นด้วย`.' หรือที่อยู่ IP ที่จับคู่กับ `. '
สัญลักษณ์แทน
ภาษาควบคุมการเข้าถึงสนับสนุนไวด์การ์ดที่ชัดเจน:
ทั้งหมด
สัญลักษณ์ตัวแทนสากลจะตรงกันเสมอ
ท้องถิ่น
จับคู่โฮสต์ใด ๆ ที่มีชื่อไม่ประกอบด้วยอักขระจุด
UNKNOWN
จับคู่ผู้ใช้ที่มีชื่อไม่เป็นที่รู้จักและจับคู่โฮสต์ที่มีชื่อ หรือ ที่อยู่ไม่เป็นที่รู้จัก รูปแบบนี้ควรใช้อย่างระมัดระวัง: ชื่อโฮสต์อาจไม่สามารถใช้งานได้เนื่องจากปัญหาเซิร์ฟเวอร์ชื่อชั่วคราว ที่อยู่เครือข่ายจะไม่สามารถใช้งานได้เมื่อซอฟต์แวร์ไม่สามารถรู้ได้ว่าเครือข่ายอยู่ในประเภทใด
ที่รู้จักกัน
จับคู่ผู้ใช้ที่มีชื่อเป็นที่รู้จักและตรงกับโฮสต์ใด ๆ ที่มีชื่อ และ ที่อยู่เป็นที่รู้จัก รูปแบบนี้ควรใช้อย่างระมัดระวัง: ชื่อโฮสต์อาจไม่สามารถใช้งานได้เนื่องจากปัญหาเซิร์ฟเวอร์ชื่อชั่วคราว ที่อยู่เครือข่ายจะไม่สามารถใช้งานได้เมื่อซอฟต์แวร์ไม่สามารถรู้ได้ว่าเครือข่ายอยู่ในประเภทใด
หวาดระแวง
ตรงกับโฮสต์ใด ๆ ที่มีชื่อไม่ตรงกับที่อยู่ เมื่อ tcpd สร้างด้วย -DPARANOID (โหมดดีฟอลต์) ระบบจะลดการร้องขอจากไคลเอ็นต์ดังกล่าวก่อนที่จะมองไปที่ตารางควบคุมการเข้าใช้งาน สร้างโดยไม่ใช้ -DPARANOID เมื่อคุณต้องการควบคุมการร้องขอดังกล่าวมากขึ้น
ผู้ประกอบการ
ยกเว้น
การใช้งานที่ตั้งใจจะมีอยู่ในรูปแบบ: `list_1 ยกเว้น list_2 '; โครงสร้างนี้ตรงกับทุกอย่างที่ตรงกับ list_1 เว้นแต่ตรงกับ list_2 โอเปอเรเตอร์ EXCEPT สามารถใช้ใน daemon_lists และ client_lists ตัวดำเนินการยกเว้นสามารถซ้อนกันได้: ถ้าภาษาควบคุมอนุญาตให้ใช้วงเล็บได้ `a ยกเว้น b ยกเว้น c 'จะแยกเป็น` (a ยกเว้น (b ยกเว้น c))'
คำสั่งเชลล์
ถ้ากฎการควบคุมการเข้าถึงที่จับคู่แรกมีคำสั่งเชลล์คำสั่งนั้นจะถูกแทนที่% (ดูส่วนถัดไป) ผลลัพธ์จะถูกประมวลผลโดย / bin / sh child process ด้วยอินพุตเอาต์พุตและข้อผิดพลาดมาตรฐานที่เชื่อมต่อกับ / dev / null ระบุ `& 'ที่ท้ายคำสั่งหากคุณไม่ต้องการรอจนกว่าจะเสร็จสิ้น
คำสั่งเชลล์ไม่ควรพึ่งพาการตั้งค่า PATH ของ inetd แต่ควรใช้ชื่อเส้นทางสัมบูรณ์หรือควรเริ่มต้นด้วยคำสั่ง PATH = whatever ที่ชัดเจน
เอกสาร hosts_options (5) อธิบายถึงภาษาอื่นที่ใช้ฟิลด์คำสั่งเชลล์ในรูปแบบที่แตกต่างและไม่เข้ากันได้
ขยายเวลา
การขยายต่อไปนี้มีอยู่ภายในคำสั่งเชลล์:
% (%)
ที่อยู่โฮสต์ของไคลเอ็นต์ (เซิร์ฟเวอร์)
c%
ข้อมูลไคลเอ็นต์: ผู้ใช้ @ host, ผู้ใช้ @ address, ชื่อโฮสต์หรือเพียงแค่ที่อยู่ขึ้นอยู่กับว่ามีข้อมูลใดบ้าง
% d
ชื่อกระบวนการภูต (ค่า argv [0])
% h (% H)
ชื่อโฮสต์หรือเซิร์ฟเวอร์ของไคลเอ็นต์ (เซิร์ฟเวอร์) ถ้าชื่อโฮสต์ไม่พร้อมใช้งาน
% n (% N)
ชื่อโฮสต์ของเซิร์ฟเวอร์ (หรือเซิร์ฟเวอร์) (หรือ "ไม่ทราบ" หรือ "หวาดระแวง")
p%
รหัสกระบวนการ daemon
% s
ข้อมูลเซิร์ฟเวอร์: daemon @ host, daemon @ address หรือเพียงชื่อ daemon ขึ้นอยู่กับว่ามีข้อมูลใดบ้าง
%ยู
ชื่อผู้ใช้ไคลเอ็นต์ (หรือ "ไม่ทราบ")
%%
ขยายเป็นอักขระ `% 'ตัวเดียว
อักขระใน% การขยายที่อาจทำให้สับสนเปลือกถูกแทนที่ด้วยขีดล่าง
รูปแบบ ENDPOINT SERVER
เพื่อแยกแยะลูกค้าตามที่อยู่เครือข่ายที่พวกเขาเชื่อมต่อให้ใช้รูปแบบของฟอร์ม:
process_name @ host_pattern: client_list ...
รูปแบบเช่นนี้สามารถใช้เมื่อเครื่องมีที่อยู่อินเทอร์เน็ตต่างกับชื่อโฮสต์อินเทอร์เน็ตที่แตกต่างกัน ผู้ให้บริการสามารถใช้สถานที่นี้เพื่อเสนอที่เก็บข้อมูล FTP, GOPHER หรือ WWW ที่มีชื่ออินเทอร์เน็ตซึ่งอาจเป็นขององค์กรต่างๆ ดูตัวเลือก twist ในเอกสาร hosts_options (5) บางระบบ (Solaris, FreeBSD) สามารถมีที่อยู่อินเทอร์เน็ตได้มากกว่าหนึ่งแห่งบนอินเทอร์เฟซทางกายภาพ กับระบบอื่น ๆ ที่คุณอาจต้องใช้ SLIP หรือ PPP pseudo interfaces ที่อาศัยอยู่ในพื้นที่ที่อยู่เครือข่ายโดยเฉพาะ
host_pattern ปฏิบัติตามกฎไวยากรณ์เดียวกันกับชื่อโฮสต์และที่อยู่ในบริบท client_list โดยปกติข้อมูลปลายทางของเซิร์ฟเวอร์จะใช้ได้เฉพาะกับบริการที่เน้นการเชื่อมต่อเท่านั้น
การค้นหาผู้ใช้ CLIENT USERNAME
เมื่อโฮสต์ไคลเอ็นต์สนับสนุนโปรโตคอล RFC 931 หรือหนึ่งในลูกหลาน (TAP, IDENT, RFC 1413) โปรแกรม wrapper สามารถดึงข้อมูลเพิ่มเติมเกี่ยวกับเจ้าของการเชื่อมต่อได้ ข้อมูลชื่อผู้ใช้ของไคลเอ็นต์เมื่อพร้อมใช้งานจะถูกบันทึกไว้พร้อมกับชื่อโฮสต์ไคลเอ็นต์และสามารถใช้เพื่อจับคู่รูปแบบเช่น:
daemon_list: ... user_pattern @ host_pattern ...
เครื่องห่อ daemon สามารถกำหนดค่าได้ในคอมไพล์เพื่อทำการค้นหาชื่อผู้ใช้ตามกฎ (ค่าดีฟอลต์) หรือเพื่อสอบถามโฮสต์ของไคลเอ็นต์เสมอ ในกรณีที่มีการค้นหาผู้ใช้ตามกฎควบคุมกฎข้างต้นจะทำให้การค้นหาชื่อผู้ใช้เกิดขึ้นเฉพาะเมื่อทั้งสอง daemon_list และ host_pattern ตรงกับ
รูปแบบผู้ใช้มีไวยากรณ์เดียวกันกับรูปแบบกระบวนการ daemon ดังนั้นอักขระตัวแทนประเภทเดียวกัน (ไม่สนับสนุนสมาชิก netgroup) ไม่ควรดำเนินการค้นหาด้วยชื่อผู้ใช้ แต่อย่างใด
* * * *
ข้อมูลชื่อผู้ใช้ไคลเอ็นต์ไม่สามารถเชื่อถือได้เมื่อจำเป็นที่สุดเช่นเมื่อระบบไคลเอ็นต์ถูกบุกรุก โดยทั่วไป ALL และ (UN) KNOWN เป็นรูปแบบชื่อผู้ใช้เฉพาะที่มีความหมาย
* * * *
การค้นหาชื่อผู้ใช้เป็นไปได้เฉพาะกับบริการที่ใช้ TCP และเฉพาะเมื่อโฮสต์ของไคลเอ็นต์รันภูตที่เหมาะสม ในกรณีอื่น ๆ ทั้งหมดผลที่ได้คือ "ไม่ทราบ"
* * * *
ข้อผิดพลาดของ kernel UNIX ที่รู้จักกันดีอาจทำให้เกิดการสูญเสียบริการเมื่อการค้นหาชื่อผู้ใช้ถูกบล็อกโดยไฟร์วอลล์ เอกสาร wrapper README อธิบายขั้นตอนเพื่อดูว่าเคอร์เนลของคุณมีข้อผิดพลาดนี้หรือไม่
* * * *
การค้นหาชื่อผู้ใช้อาจทำให้เกิดความล่าช้าที่เห็นได้สำหรับผู้ใช้ที่ไม่ใช่ UNIX การหมดเวลาเริ่มต้นสำหรับการค้นหาชื่อผู้ใช้คือ 10 วินาที: สั้นเกินไปที่จะรับมือกับเครือข่ายที่ช้า แต่นานพอที่จะทำให้ผู้ใช้พีซีเกิดการระคายเคือง
การค้นหาชื่อผู้ใช้ที่เลือกสามารถบรรเทาปัญหาล่าสุดได้ ตัวอย่างเช่นกฎเช่น:
daemon_list: @pcnetgroup ALL @ ALL
จะจับคู่สมาชิกของ netgroup pc โดยไม่ต้องค้นหาชื่อผู้ใช้ แต่จะทำการค้นหาชื่อผู้ใช้ด้วยระบบอื่น ๆ ทั้งหมด
การตรวจจับการโจมตีที่อยู่ ADDDESS SPOOFING ATTACKS
ข้อบกพร่องในเครื่องกำเนิดหมายเลขลำดับของการใช้งาน TCP / IP จำนวนมากช่วยให้ผู้บุกรุกสามารถเลียนแบบโฮสต์ที่เชื่อถือได้ได้ง่ายและสามารถเจาะผ่านทางเช่นบริการเชลล์ระยะไกล สามารถใช้บริการ IDENT (RFC931 ฯลฯ ) เพื่อตรวจหาการโจมตีการปลอมแปลงที่อยู่ของโฮสต์และที่อยู่อื่น ๆ ได้
ก่อนที่จะยอมรับคำขอของลูกค้าเครื่องห่อสามารถใช้บริการ IDENT เพื่อดูว่าไคลเอ็นต์ไม่ได้ส่งคำขอเลย เมื่อโฮสต์ของไคลเอ็นต์ให้บริการ IDENT ผลลัพธ์การค้นหา IDENT เชิงลบ (ไคลเอ็นต์ตรงกับ `UNKNOWN @ host ') เป็นหลักฐานที่แสดงถึงการโจมตีการปลอมแปลงจากโฮสต์
ผลการค้นหาที่เป็นบวกของ IDENT (ไคลเอ็นต์ตรงกับ `KNOWN @ host ') ไม่น่าเชื่อถือ เป็นไปได้ที่ผู้บุกรุกจะปลอมแปลงทั้งการเชื่อมต่อกับไคลเอ็นต์และการค้นหา IDENT แม้ว่าการทำเช่นนั้นจะทำได้ยากกว่าการหลอกลวงเพียงแค่การเชื่อมต่อกับไคลเอ็นต์ อาจเป็นไปได้ว่าเซิร์ฟเวอร์ IDENT ของลูกค้ากำลังโกหก
หมายเหตุ: การค้นหา IDENT ไม่ทำงานกับบริการ UDP
ตัวอย่าง
ภาษามีความยืดหยุ่นเพียงพอที่นโยบายการควบคุมการเข้าออกที่แตกต่างกันสามารถแสดงได้ด้วยความยุ่งยากน้อยที่สุด แม้ว่าภาษาจะใช้ตารางควบคุมการเข้าถึงสองรายการนโยบายส่วนใหญ่สามารถใช้งานได้โดยใช้ตารางใดโต๊ะหนึ่งที่ดูไม่สำคัญหรือว่างเปล่า
เมื่ออ่านตัวอย่างด้านล่างนี้เป็นสิ่งสำคัญที่ต้องตระหนักว่าอนุญาตให้มีการสแกนตารางก่อนตารางปฏิเสธการค้นหาจะสิ้นสุดลงเมื่อพบการจับคู่และการเข้าถึงนั้นจะได้รับเมื่อไม่มีการจับคู่ใด ๆ เกิดขึ้น
ตัวอย่างใช้โฮสต์และชื่อโดเมน สามารถปรับปรุงได้โดยรวมที่อยู่และ / หรือเครือข่าย / ข้อมูลเน็ตมาสก์เพื่อลดผลกระทบของความล้มเหลวในการค้นหาเซิร์ฟเวอร์ชื่อชั่วคราว
ปิดมากที่สุด
ในกรณีนี้การเข้าถึงถูกปฏิเสธโดยค่าเริ่มต้น อนุญาตเฉพาะโฮสต์ที่ได้รับอนุญาตอย่างชัดเจนเท่านั้น
ใช้นโยบายเริ่มต้น (ไม่มีการเข้าใช้) โดยใช้ไฟล์ปฏิเสธเล็กน้อย:
/etc/hosts.deny: ALL: ALL
การทำเช่นนี้จะปฏิเสธบริการทั้งหมดไปยังโฮสต์ทั้งหมดเว้นแต่จะได้รับอนุญาตให้เข้าถึงโดยรายการในไฟล์อนุญาต
โฮสต์ที่ได้รับอนุญาตอย่างชัดเจนจะปรากฏในไฟล์อนุญาต ตัวอย่างเช่น:
/etc/hosts.allow: ALL: LOCAL @some_netgroup
ALL: .foobar.edu ยกเว้น terminalserver.foobar.edu
กฎข้อแรกอนุญาตให้เข้าถึงจากโฮสต์ในโดเมนภายใน (ไม่มี `. ในชื่อโฮสต์) และจากสมาชิกของ netgroup some_netgroup กฎที่สองอนุญาตให้เข้าถึงจากโฮสต์ทั้งหมดในโดเมน foobar.edu (สังเกตเห็นจุดเริ่มต้น) ยกเว้น terminalserver.foobar.edu
เปิดมากที่สุด
ที่นี่การเข้าถึงจะได้รับโดยค่าเริ่มต้น; เฉพาะโฮสต์ที่ระบุอย่างชัดเจนเท่านั้นที่จะถูกปฏิเสธบริการ
นโยบายเริ่มต้น (สิทธิ์การเข้าใช้งาน) ทำให้ไฟล์อนุญาตซ้ำซ้อนเพื่อให้สามารถข้ามได้ โฮสต์ที่ไม่ได้รับอนุญาตอย่างชัดเจนจะปรากฏในไฟล์ปฏิเสธ ตัวอย่างเช่น:
/etc/hosts.deny: ALL: some.host.name, .some.domain
ยกเว้น IN.FingerD: other.host.name, .other.domain
กฎข้อแรกปฏิเสธโฮสต์และโดเมนบางบริการทั้งหมด กฎข้อที่สองยังคงอนุญาตให้มีการร้องขอจากโฮสต์อื่น ๆ และโดเมน
BOOBY TRAPS
ตัวอย่างถัดไปอนุญาตให้คำขอ tftp จากโฮสต์ในโดเมนท้องถิ่น (สังเกตเห็นจุดนำทาง) คำขอจากโฮสต์อื่น ๆ จะถูกปฏิเสธ แทนไฟล์ที่ต้องการจะถูกส่งไปยังโฮสต์ที่กระทำผิด ผลลัพธ์จะถูกส่งไปยังผู้ใช้ superuser
/etc/hosts.allow:
in.tftpd: LOCAL, .my.domain /etc/hosts.deny: in.tftpd: ALL: spawn (/ บาง / ที่ / safe_finger -l @% h | \ / usr / ucb / mail -s% d-% ราก h) &คำสั่ง safe_finger มาพร้อมกับ wrapper tcpd และควรจะติดตั้งในที่ที่เหมาะสม จะจำกัดความเสียหายที่อาจเกิดขึ้นจากข้อมูลที่ส่งโดยเซิร์ฟเวอร์นิ้วระยะไกล จะให้การป้องกันที่ดีกว่าคำสั่งมาตรฐานของลายนิ้วมือ
การขยายลำดับของ% h (ไคลเอ็นต์โฮสต์) และ% d (ชื่อบริการ) ได้อธิบายไว้ในส่วนคำสั่งเชลล์
คำเตือน: ห้ามดักจับภูตนิ้วมือของคุณจนกว่าคุณจะเตรียมพร้อมสำหรับลูปนิ้วที่ไม่มีวันสิ้นสุด
เกี่ยวกับระบบไฟร์วอลล์เครือข่ายเคล็ดลับนี้สามารถดำเนินการได้ดียิ่งขึ้น ไฟร์วอลล์เครือข่ายโดยทั่วไปจะให้บริการเฉพาะกับโลกภายนอกเท่านั้น บริการอื่น ๆ ทั้งหมดสามารถ "บีบ" ได้เช่นเดียวกับตัวอย่าง tftp ข้างต้น ผลที่ได้คือระบบเตือนภัยล่วงหน้าที่ดีเยี่ยม
สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ
บทความที่เกี่ยวข้อง