ในบทความนี้เราจะอธิบายว่าตัวห่อ TCP คืออะไรและจะกำหนดค่าอะไรให้ จำกัดการเข้าถึงบริการเครือข่าย ทำงานบนเซิร์ฟเวอร์ Linux ก่อนที่เราจะเริ่ม เราต้องชี้แจงว่าการใช้ TCP wrappers ไม่ได้ขจัดความจำเป็นในการ กำหนดค่าไฟร์วอลล์.
ในเรื่องนี้ คุณสามารถนึกถึงเครื่องมือนี้เป็น a รายการควบคุมการเข้าใช้โฮสต์และไม่เป็น มาตรการรักษาความปลอดภัยขั้นสูงสุด สำหรับระบบของคุณ ด้วยการใช้ไฟร์วอลล์และตัวห่อ TCP แทนที่จะใช้ไฟร์วอลล์อื่น คุณจะต้องแน่ใจว่าเซิร์ฟเวอร์ของคุณไม่เหลือจุดความล้มเหลวเพียงจุดเดียว
เมื่อคำขอเครือข่ายไปถึงเซิร์ฟเวอร์ของคุณ TCP wrappers จะใช้ hosts.allow
และ hosts.deny
(ตามลำดับ) เพื่อตรวจสอบว่าลูกค้าควรได้รับอนุญาตให้ใช้บริการที่กำหนดหรือไม่
โดยค่าเริ่มต้น ไฟล์เหล่านี้จะว่างเปล่า มีความคิดเห็นทั้งหมด หรือไม่มีอยู่จริง ดังนั้นทุกอย่างจะได้รับอนุญาตผ่านเลเยอร์ TCP wrappers และระบบของคุณต้องพึ่งพาไฟร์วอลล์เพื่อการป้องกันอย่างเต็มรูปแบบ เนื่องจากสิ่งนี้ไม่ต้องการ เนื่องจากเราระบุไว้ในบทนำ ตรวจสอบให้แน่ใจว่าไฟล์ทั้งสองมีอยู่:
# ls -l /etc/hosts.allow /etc/hosts.deny
ไวยากรณ์ของทั้งสองไฟล์จะเหมือนกัน:
: [: : : ...]
ที่ไหน,
คุณอาจต้องการทราบว่ากฎที่อนุญาตให้เข้าถึงบริการที่กำหนดใน /etc/hosts.allow
มีความสำคัญเหนือกฎใน /etc/hosts.deny
ห้ามมัน นอกจากนี้ หากใช้กฎสองข้อกับบริการเดียวกัน ระบบจะพิจารณาเฉพาะกฎข้อแรกเท่านั้น
ขออภัย บริการเครือข่ายบางบริการไม่สนับสนุนการใช้เครื่องห่อ TCP ในการพิจารณาว่าบริการที่ระบุรองรับหรือไม่ ให้ทำดังนี้
# ldd /path/to/binary | grep libwrap
หากคำสั่งด้านบนส่งคืนเอาต์พุต ก็สามารถห่อด้วย TCP ได้ ตัวอย่างของสิ่งนี้คือ sshd และ vsftpdดังที่แสดงไว้ที่นี่:
ในขณะที่คุณแก้ไข /etc/hosts.allow
และ /etc/hosts.deny
ตรวจสอบให้แน่ใจว่าคุณเพิ่มบรรทัดใหม่โดยกด เข้า หลังจากบรรทัดไม่ว่างสุดท้าย
ถึง อนุญาตการเข้าถึง SSH และ FTP เพียงเพื่อ 192.168.0.102 และ localhost และปฏิเสธอื่น ๆ ทั้งหมด เพิ่มสองบรรทัดนี้ใน /etc/hosts.deny
:
sshd, vsftpd: ทั้งหมด ทั้งหมด: ทั้งหมด
และบรรทัดต่อไปนี้ใน /etc/hosts.allow
:
sshd, vsftpd: 192.168.0.102, ท้องถิ่น
TCP Wrappers – ไฟล์ hosts.deny
# # hosts.deny ไฟล์นี้มีกฎการเข้าถึงที่ใช้ # ปฏิเสธการเชื่อมต่อกับบริการเครือข่ายที่ใช้ # ห้องสมุด tcp_wrappers หรือที่เคยเป็น # เริ่มต้นผ่าน xinetd ที่เปิดใช้งาน tcp_wrappers # # กฎในไฟล์นี้ยังสามารถตั้งค่าได้ # /etc/hosts.allow ด้วยตัวเลือก 'ปฏิเสธ' แทน # # ดู 'ชาย 5 hosts_options' และ 'ชาย 5 hosts_access' # สำหรับข้อมูลเกี่ยวกับไวยากรณ์กฎ # ดู 'man tcpd' สำหรับข้อมูลเกี่ยวกับ tcp_wrappers #sshd, vsftpd: ทั้งหมด ทั้งหมด: ALL
TCP Wrappers – hosts.allow File
# # hosts.allow ไฟล์นี้มีกฎการเข้าถึงที่ใช้ # อนุญาตหรือปฏิเสธการเชื่อมต่อกับบริการเครือข่ายที่ # ใช้ไลบรารี tcp_wrappers หรือที่เคยเป็นมา # เริ่มต้นผ่าน xinetd ที่เปิดใช้งาน tcp_wrappers # # ดู 'ชาย 5 hosts_options' และ 'ชาย 5 hosts_access' # สำหรับข้อมูลเกี่ยวกับไวยากรณ์กฎ # ดู 'man tcpd' สำหรับข้อมูลเกี่ยวกับ tcp_wrappers #sshd, vsftpd: 192.168.0.102,LOCAL
การเปลี่ยนแปลงเหล่านี้จะเกิดขึ้นทันทีโดยไม่จำเป็นต้องรีสตาร์ท
ในภาพต่อไปนี้ คุณจะเห็นผลของการลบคำ ท้องถิ่น
จากบรรทัดสุดท้าย: เซิร์ฟเวอร์ FTP จะไม่สามารถใช้งานได้สำหรับ localhost. หลังจากที่เราเพิ่มไวด์การ์ดกลับ บริการจะพร้อมใช้งานอีกครั้ง
เพื่อให้บริการทั้งหมดแก่โฮสต์ที่มีชื่อ example.com
, เพิ่มบรรทัดนี้ใน hosts.allow
:
ทั้งหมด: .example.com
และเพื่อปฏิเสธการเข้าถึง vsftpd ไปยังเครื่องบน 10.0.1.0/24, เพิ่มบรรทัดนี้ใน hosts.deny
:
vsftpd: 10.0.1
ในสองตัวอย่างสุดท้าย สังเกตว่า จุด ที่จุดเริ่มต้นและจุดสิ้นสุดของรายชื่อลูกค้า ใช้เพื่อระบุ “โฮสต์ทั้งหมดและ / หรือไคลเอนต์ที่ชื่อหรือ IP มีสตริงนั้น”
บทความนี้มีประโยชน์กับคุณหรือไม่? คุณมีคำถามหรือความคิดเห็นหรือไม่? อย่าลังเลที่จะแจ้งให้เราทราบโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง