ชื่อ
hosts_access - รูปแบบของการเข้าถึงโฮสต์ Linux แฟ้มการควบคุม
ลักษณะ
หน้าคู่มือนี้อธิบาย Linux เป็นภาษาควบคุมการเข้าถึงที่เรียบง่ายซึ่งใช้ไคลเอ็นต์ (ชื่อโฮสต์ / ที่อยู่ชื่อผู้ใช้) และแบบเซิร์ฟเวอร์ (ชื่อกระบวนการชื่อโฮสต์ / ที่อยู่) ตัวอย่างจะได้รับในตอนท้าย ผู้อ่านขาดความอดทนได้รับการสนับสนุนให้ข้ามไปที่ส่วนตัวอย่างเพื่อการแนะนำอย่างรวดเร็ว ภาษาควบคุมการเข้าถึงเป็นภาษาเวอร์ชันขยายอธิบายไว้ใน hosts_options (5) เอกสาร ส่วนขยายจะเปิดใช้งานในเวลาสร้างโปรแกรมโดยสร้างด้วย -DPROCESS_OPTIONS
ในข้อความต่อไปนี้ ภูต เป็นชื่อกระบวนการของกระบวนการภูตเครือข่ายและ ลูกค้า คือชื่อและ / หรือที่อยู่ของบริการที่ร้องขอจากโฮสต์ ชื่อกระบวนการ daemon เครือข่ายระบุไว้ในไฟล์การกำหนดค่า inetd
แฟ้มควบคุมการเข้าถึง
ซอฟต์แวร์ควบคุมการเข้าถึงให้คำปรึกษาสองไฟล์ การค้นหาจะหยุดลงในการแข่งขันครั้งแรก
การเข้าถึงจะได้รับเมื่อคู่ (daemon, client) ตรงกับรายการใน /etc/hosts.allow ไฟล์.
มิฉะนั้นการเข้าถึงจะถูกปฏิเสธเมื่อคู่ (daemon, client) ตรงกับรายการใน /etc/hosts.deny ไฟล์.
มิฉะนั้นการเข้าถึงจะได้รับ
ไฟล์ควบคุมการเข้าใช้งานที่ไม่มีอยู่จะถือว่าเป็นไฟล์ที่ว่างเปล่า ดังนั้นการควบคุมการเข้าถึงสามารถปิดโดยการให้ไฟล์การควบคุมการเข้าถึงไม่
กฎการเข้าใช้งาน
ไฟล์ควบคุมการเข้าใช้แต่ละไฟล์ประกอบด้วยบรรทัดข้อความเป็นศูนย์หรือมากกว่า บรรทัดเหล่านี้จะถูกประมวลผลตามลำดับการปรากฏตัว การค้นหาสิ้นสุดลงเมื่อพบการจับคู่
อักขระบรรทัดใหม่จะถูกละเว้นเมื่อมีอักขระเครื่องหมายทับขวา นี้ช่วยให้คุณสามารถแบ่งสายยาวเพื่อให้ง่ายต่อการแก้ไข
บรรทัดหรือบรรทัดว่างเปล่าที่ขึ้นต้นด้วยอักขระ `# 'จะถูกละเลย นี้ช่วยให้คุณสามารถแทรกความคิดเห็นและช่องว่างเพื่อให้ตารางที่ง่ายต่อการอ่าน
บรรทัดอื่น ๆ ทั้งหมดควรเป็นไปตามรูปแบบต่อไปนี้สิ่งต่างๆระหว่าง เป็นตัวเลือก:
daemon_list: client_list : shell_command
daemon_list คือรายการของชื่อกระบวนการภูตหนึ่งตัวหรือมากกว่า (ค่า argv 0) หรืออักขระตัวแทน (ดูด้านล่าง)
client_list คือรายการของชื่อโฮสต์ที่อยู่โฮสต์รูปแบบหรืออักขระตัวแทน (ดูด้านล่าง) ที่จะจับคู่กับชื่อโฮสต์หรือที่อยู่ของไคลเอ็นต์
รูปแบบที่ซับซ้อนมากขึ้น ภูต @ โฮสต์ และ ผู้ใช้โฮสต์ @ อธิบายไว้ในส่วนที่เกี่ยวกับรูปแบบปลายทางปลายทางของเซิร์ฟเวอร์และการค้นหาชื่อผู้ใช้ไคลเอ็นต์ตามลำดับ
รายการควรแยกจากกันโดยช่องว่างและ / หรือเครื่องหมายจุลภาค
ยกเว้นการค้นหา netgroup NIS (YP) การตรวจสอบการควบคุมการเข้าถึงทั้งหมดจะไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
รูปแบบ
ภาษาควบคุมการเข้าถึงใช้รูปแบบต่อไปนี้:
สตริงที่ขึ้นต้นด้วย `. ' ตัวละคร ชื่อโฮสต์จะถูกจับคู่หากคอมโพเนนต์สุดท้ายของชื่อตรงกับรูปแบบที่ระบุ ตัวอย่างเช่นรูปแบบ `.tue.nl 'ตรงกับชื่อโฮสต์' wzv.win.tue.nl '
สตริงที่ลงท้ายด้วย `. ' ตัวละคร ที่อยู่โฮสต์จะถูกจับคู่หากช่องตัวเลขแรกตรงกับสตริงที่ระบุ ตัวอย่างเช่นรูปแบบ `131.155 ' ตรงกับที่อยู่ของ (เกือบ) ทุกพื้นที่ในเครือข่ายมหาวิทยาลัย Eindhoven (131.155.x.x)
สตริงที่ขึ้นต้นด้วยอักขระ `@ 'จะถือว่าเป็นชื่อเครือข่าย NIS (เดิมชื่อ YP) ชื่อโฮสต์จะถูกจับคู่หากเป็นสมาชิกโฮสต์ของ netgroup ที่ระบุ การจับคู่ Netgroup ไม่ได้รับการสนับสนุนสำหรับชื่อกระบวนการของ daemon หรือสำหรับชื่อผู้ใช้ไคลเอ็นต์
การแสดงออกของรูปแบบ `n.n.n.n / m.m.m.m 'จะแปลเป็นคู่` 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 ที่จับคู่กับ `. '
สัญลักษณ์แทน
ภาษาควบคุมการเข้าถึงสนับสนุนไวด์การ์ดที่ชัดเจน ได้แก่ :
'ทั้งหมด'
สัญลักษณ์ตัวแทนสากลจะตรงกันเสมอ
'ท้องถิ่น'
จับคู่โฮสต์ใด ๆ ที่มีชื่อไม่ประกอบด้วยอักขระจุด
'ไม่รู้จัก'
จับคู่ผู้ใช้ที่มีชื่อไม่เป็นที่รู้จักและจับคู่กับโฮสต์ที่มีชื่อ หรือ ที่อยู่ไม่เป็นที่รู้จัก รูปแบบนี้ควรใช้อย่างระมัดระวัง: ชื่อโฮสต์อาจไม่สามารถใช้งานได้เนื่องจากปัญหาเซิร์ฟเวอร์ชื่อชั่วคราว ที่อยู่เครือข่ายจะไม่สามารถใช้งานได้เมื่อซอฟต์แวร์ไม่สามารถรู้ได้ว่าเครือข่ายอยู่ในประเภทใด
'เรียก'
จับคู่ผู้ใช้ที่มีชื่อเป็นที่รู้จักและตรงกับโฮสต์ที่มีชื่อ และ ที่อยู่เป็นที่รู้จักรูปแบบนี้ควรใช้อย่างระมัดระวัง: ชื่อโฮสต์อาจไม่สามารถใช้งานได้เนื่องจากปัญหาเซิร์ฟเวอร์ชื่อชั่วคราว ที่อยู่เครือข่ายจะไม่สามารถใช้งานได้เมื่อซอฟต์แวร์ไม่สามารถรู้ได้ว่าเครือข่ายอยู่ในประเภทใด
'หวาดระแวง'
ตรงกับโฮสต์ใด ๆ ที่มีชื่อไม่ตรงกับที่อยู่ เมื่อ tcpd สร้างด้วย -DPARANOID (โหมดดีฟอลต์) ระบบจะลดการร้องขอจากไคลเอ็นต์ดังกล่าวก่อนที่จะมองไปที่ตารางควบคุมการเข้าใช้งาน สร้างโดยไม่ใช้ -DPARANOID เมื่อคุณต้องการควบคุมการร้องขอดังกล่าวมากขึ้น
'ผู้ประกอบการ
'ยกเว้น'
การใช้งานที่ตั้งใจจะมีอยู่ในรูปแบบ: `list_1 ยกเว้น list_2 '; สร้างนี้ตรงกับทุกอย่างที่ตรงกับ list_1 จนกว่าจะตรง list_2 . โอเปอเรเตอร์ EXCEPT สามารถใช้ใน daemon_lists และ client_lists ตัวดำเนินการยกเว้นสามารถซ้อนกันได้: ถ้าภาษาควบคุมอนุญาตให้ใช้วงเล็บได้ `a ยกเว้น b ยกเว้น c 'จะแยกเป็น` (a ยกเว้น (b ยกเว้น c))'
คำสั่งเชลล์
ถ้ากฎการควบคุมการเข้าถึงที่จับคู่แรกมีคำสั่งเชลล์คำสั่งนั้นจะถูกแทนที่% (ดูส่วนถัดไป) ผลลัพธ์จะถูกดำเนินการโดย a bin / sh / กระบวนการเด็กที่มีอินพุตมาตรฐานเอาต์พุตและข้อผิดพลาดที่เชื่อมต่ออยู่ / dev / null . ระบุ `& 'ที่ท้ายคำสั่ง terminal ถ้าคุณไม่ต้องการรอจนกว่าจะเสร็จสิ้น
คำสั่งเชลล์ไม่ควรพึ่งพาการตั้งค่า PATH ของ inetd แต่ควรใช้ชื่อเส้นทางสัมบูรณ์หรือควรเริ่มต้นด้วยคำสั่ง PATH = whatever ที่ชัดเจน
hosts_options (5) เอกสารอธิบายภาษาอื่นที่ใช้ฟิลด์คำสั่งเชลล์ในรูปแบบที่แตกต่างกันและเข้ากันไม่ได้
การขยายตัว
การขยายต่อไปนี้มีอยู่ภายในคำสั่งเชลล์:
% (%) - ที่อยู่โฮสต์ของไคลเอ็นต์ (เซิร์ฟเวอร์)
c% - ข้อมูลไคลเอ็นต์: ผู้ใช้ @ host, ผู้ใช้ @ address, ชื่อโฮสต์หรือเฉพาะที่อยู่ทั้งนี้ขึ้นอยู่กับจำนวนข้อมูลที่มีอยู่
% d - ชื่อกระบวนการภูต (ค่า argv 0)
% h (% H) - ชื่อโฮสต์หรือเซิร์ฟเวอร์ของไคลเอ็นต์ (เซิร์ฟเวอร์) ถ้าชื่อโฮสต์ไม่พร้อมใช้งาน
% n (% N) - ชื่อโฮสต์ (เซิร์ฟเวอร์) ของไคลเอ็นต์ (หรือ "ไม่ทราบ" หรือ "หวาดระแวง")
p% - รหัสกระบวนการ daemon
% s - ข้อมูลเซิร์ฟเวอร์: daemon @ host, daemon @ address หรือเพียงแค่ชื่อภูตขึ้นอยู่กับว่ามีข้อมูลเท่าไร
%ยู - ชื่อผู้ใช้ไคลเอ็นต์ (หรือ "ไม่ทราบ")
%% - ขยายเป็นอักขระ `% 'ตัวเดียว
อักขระใน% การขยายที่อาจทำให้สับสนเปลือกถูกแทนที่ด้วยขีดล่าง
ปลายทางปลายทางของเซิร์ฟเวอร์
เพื่อแยกแยะลูกค้าตามที่อยู่เครือข่ายที่พวกเขาเชื่อมต่อให้ใช้รูปแบบของฟอร์ม:
process_name @ host_pattern: client_list …
รูปแบบเช่นนี้สามารถใช้เมื่อเครื่องมีที่อยู่อินเทอร์เน็ตต่างกับชื่อโฮสต์อินเทอร์เน็ตที่แตกต่างกัน ผู้ให้บริการสามารถใช้สถานที่นี้เพื่อเสนอที่เก็บข้อมูล FTP, GOPHER หรือ WWW ที่มีชื่ออินเทอร์เน็ตซึ่งอาจเป็นขององค์กรต่างๆ ดูตัวเลือก twist ในเอกสาร hosts_options (5) บางระบบ (Solaris, FreeBSD) สามารถมีที่อยู่อินเทอร์เน็ตได้มากกว่าหนึ่งแห่งบนอินเทอร์เฟซทางกายภาพ กับระบบอื่น ๆ ที่คุณอาจต้องใช้ SLIP หรือ PPP pseudo interfaces ที่อาศัยอยู่ในพื้นที่ที่อยู่เครือข่ายโดยเฉพาะ
host_pattern ปฏิบัติตามกฎไวยากรณ์เดียวกันกับชื่อโฮสต์และที่อยู่ในบริบท client_list โดยปกติข้อมูลปลายทางของเซิร์ฟเวอร์จะใช้ได้เฉพาะกับบริการที่เน้นการเชื่อมต่อเท่านั้น
ค้นหาชื่อผู้ใช้ไคลเอ็นต์
เมื่อโฮสต์ไคลเอ็นต์สนับสนุนโปรโตคอล 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 โดยไม่ต้องค้นหาชื่อผู้ใช้ แต่จะทำการค้นหาชื่อผู้ใช้ด้วยระบบอื่น ๆ ทั้งหมด ข้อบกพร่องในเครื่องกำเนิดหมายเลขลำดับของการใช้งาน 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_netgroupALL: .foobar.edu ยกเว้น terminalserver.foobar.edu กฎข้อแรกอนุญาตให้เข้าถึงจากโฮสต์ในโดเมนภายใน (ไม่มี `. ในชื่อโฮสต์) และจากสมาชิกของ some_netgroup netgroup กฎที่สองอนุญาตให้เข้าถึงจากโฮสต์ทั้งหมดใน foobar.edu โดเมน (สังเกตเห็นจุดนำ) ยกเว้น terminalserver.foobar.edu . ที่นี่การเข้าถึงจะได้รับโดยค่าเริ่มต้น; เฉพาะโฮสต์ที่ระบุอย่างชัดเจนเท่านั้นที่จะถูกปฏิเสธบริการ นโยบายเริ่มต้น (สิทธิ์การเข้าใช้งาน) ทำให้ไฟล์อนุญาตซ้ำซ้อนเพื่อให้สามารถข้ามได้ โฮสต์ที่ไม่ได้รับอนุญาตอย่างชัดเจนจะปรากฏในไฟล์ปฏิเสธ ตัวอย่างเช่น: /etc/hosts.deny: ALL: some.host.name, .some.domainยกเว้น IN.FingerD: other.host.name, .other.domain กฎข้อแรกปฏิเสธโฮสต์และโดเมนบางบริการทั้งหมด กฎข้อที่สองยังคงอนุญาตให้มีคำขอจากบุคคลอื่นและโดเมน ตัวอย่างถัดไปอนุญาตให้คำขอ 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 root) &
คำสั่ง safe_finger มาพร้อมกับ wrapper tcpd และควรจะติดตั้งในที่ที่เหมาะสม จะจำกัดความเสียหายที่อาจเกิดขึ้นจากข้อมูลที่ส่งโดยเซิร์ฟเวอร์นิ้วระยะไกล จะให้การป้องกันที่ดีกว่าคำสั่งมาตรฐานของลายนิ้วมือ การขยายลำดับของ% h (ไคลเอ็นต์โฮสต์) และ% d (ชื่อบริการ) ได้อธิบายไว้ในส่วนคำสั่งเชลล์ คำเตือน: อย่าดักจับภูตนิ้วมือของคุณจนกว่าคุณจะเตรียมพร้อมสำหรับลูปนิ้วที่ไม่มีวันสิ้นสุด เกี่ยวกับระบบไฟร์วอลล์เครือข่ายเคล็ดลับนี้สามารถดำเนินการได้ดียิ่งขึ้น ไฟร์วอลล์เครือข่ายโดยทั่วไปจะให้บริการเฉพาะกับโลกภายนอกเท่านั้น บริการอื่น ๆ ทั้งหมดสามารถ "บีบ" ได้เช่นเดียวกับตัวอย่าง tftp ข้างต้น ผลที่ได้คือระบบเตือนภัยล่วงหน้าที่ดีเยี่ยม tcpd (8) tcp / ip daemon wrapper programtcpdchk (8), tcpdmatch (8), โปรแกรมทดสอบ
สำคัญ: ใช้ ชาย คำสั่ง ( % ชาย ) เพื่อดูว่ามีการใช้คำสั่งใดในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ การตรวจจับการปลอมแปลงที่อยู่
ตัวอย่าง
ส่วนใหญ่ปิด
ส่วนใหญ่เปิด
Boopy Traps
ดูสิ่งนี้ด้วย




