วิธี จำกัด การเข้าถึงอินเทอร์เน็ตสำหรับผู้ใช้เฉพาะบน LAN โดยใช้ iptables ใน Linux


11

สมมติว่ามีผู้ใช้สองคนบน LAN, A และ B ฉันจะ จำกัด ผู้ใช้ A จากการเข้าถึงอินเทอร์เน็ตโดยใช้กฎ iptables และบันทึกกฎเพื่อให้หลังจากรีบูตพวกเขายังคงมีประสิทธิภาพ สมมติว่าฉันต้องการอนุญาตการเข้าถึงของผู้ใช้ในบางครั้ง; ฉันจะเปิดใช้งานอีกครั้งได้อย่างไร ฉันใช้ Ubuntu Linux 10.04 มันจะดีถ้าใครแสดงวิธีการทำจากบรรทัดคำสั่งเพราะฉันมักจะเข้าสู่เครื่องโดยใช้การเข้าสู่ระบบในท้องถิ่น

คำตอบ:


17

ฉันคิดว่าผู้ใช้ A และ B กำลังใช้เครื่อง Linux เดียวกันกับที่คุณเป็นผู้ดูแลระบบ (ยังไม่ชัดเจนจากคำถามของคุณหาก A และ B มีคอมพิวเตอร์เป็นของตัวเองซึ่งเป็นผู้ดูแลระบบของมันเป็นปัญหาที่แตกต่างอย่างสิ้นเชิง)

คำสั่งต่อไปนี้จะป้องกันผู้ใช้ที่มี uid 1234 จากการส่งแพ็กเก็ตบนอินเตอร์เฟสeth0:

iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP

ฉันขอแนะนำให้อ่านคู่มือ iptables ของ Ubuntuเพื่อทำความคุ้นเคยกับเครื่องมือพื้นฐาน (และดูหน้า man สำหรับสิ่งขั้นสูงเช่นตาราง mangle)

ผู้ใช้จะยังคงสามารถเรียกใช้ ping ได้ (เนื่องจากเป็น setuid root) แต่ไม่สามารถทำอะไรได้อีก ผู้ใช้จะยังคงสามารถเชื่อมต่อกับพร็อกซีในพื้นที่ได้หากพร็อกซีนั้นเริ่มต้นโดยผู้ใช้รายอื่น

หากต้องการลบกฎนี้ให้เพิ่ม-Dคำสั่งด้านบน

ในการทำให้กฏถาวรให้เพิ่มลงใน/etc/network/if-up.d/my-user-restrictions(ทำให้เป็นสคริปต์ที่สามารถเรียกทำงานได้เริ่มต้นด้วย#!/bin/sh) หรือใช้iptables-save(ดูคู่มือUbuntuสำหรับข้อมูลเพิ่มเติม)


ขอบคุณมาก. และใช่สมมติฐานของคุณเป็นจริง ตามคำตอบของคุณและคู่มือ Ubuntu ที่กล่าวถึงก็คือวิธีที่ถูกต้องในการทำสิ่งต่าง ๆ ถ้าฉันต้องการให้สิทธิ์การเข้าถึง ssh ของผู้ใช้ที่ จำกัด (บางครั้งฉันต้องการเข้าสู่ระบบโดยใช้บัญชีของเขาผ่าน ssh): iptables -t mangle -A OUTPUT - o eth0 -m owner - uid-owner 1234 -p tcp --dport ssh -j ยอมรับ iptables -t mangle -A เอาท์พุท -o eth0 -m เจ้าของ - uid-owner 1234 -j DROP ฉันวางกฎเหล่านั้นไว้ใน ไฟล์ดังกล่าวและสิ่งต่าง ๆ ดูเหมือนจะทำงานได้ดี
Marwan Tanager

@ Marwan ฉันคิดว่าถูกต้อง โปรดทราบว่าหากคุณอนุญาตการเข้าถึง ssh คุณจะอนุญาตให้มีสิ่งใดที่สวยมากเนื่องจาก ssh สามารถปรับเปลี่ยนโปรโตคอลอื่น ๆ
Gilles 'หยุดชั่วร้าย'

0

ฉันจะไม่ใช้ iptables สำหรับสิ่งนี้

ฉันถือว่า A และ B เกี่ยวข้องกับ IP คงที่ ClientA และ ClientB ฉันคิดว่า Internet-Proxy ของคุณคือ ServerI (Ubuntu-Server ของคุณ?)

ดังนั้นฉันจะเพิ่มรายการการกำหนดเส้นทางปฏิเสธ / วางจาก ClientA ไปยัง ServerI

ฉันไม่ได้ใช้ Ubuntu - ดังนั้นฉันไม่สามารถบอกคุณได้ว่าไฟล์กำหนดค่าใดที่จะใช้เพื่อทำให้การตั้งค่านั้นเป็นแบบถาวร (รอดชีวิตจากการรีบูต)

บางทีบางคนสามารถเพิ่มรายละเอียดนั้นได้?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.