Hosts.deny - คำสั่ง Linux - คำสั่ง Unix

ชื่อ

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 ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ

บทความที่เกี่ยวข้อง