เซิร์ฟเวอร์ SOCKS5 แบบจำกัดสิทธิ์ด้วย Dante
ตั้งค่า Dante 1.4.4 ให้มีตัวรับที่ระบุชัด ไคลเอนต์ที่อนุญาตหนึ่งเครื่อง และปลายทางหนึ่งแห่ง พร้อมแยกกฎสองขั้นตอน
Dante ตรวจสิทธิ์สองครั้ง กฎไคลเอนต์รับต้นทางที่เข้ามา ส่วนกฎ SOCKS อนุญาตปลายทางและคำสั่งที่ร้องขอ ตัวอย่าง Dante 1.4.4 นี้ให้ไคลเอนต์หนึ่งเครื่องเข้าถึงปลายทางที่ควบคุมได้หนึ่งแห่งบนพอร์ต 443
บัญชีบริการและที่อยู่
สร้างบัญชีเฉพาะที่มีสิทธิ์ต่ำ หากการติดตั้งยังไม่ได้ให้มา:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin danteproxy
ตัวตนทั้งสองใช้บัญชีนี้ได้กับการตั้งค่าด้านล่างซึ่งใช้พอร์ตสูงและรายการต้นทางที่อนุญาต หากใช้การยืนยันตัวตนด้วยรหัสผ่านหรือฟีเจอร์ที่ต้องมีสิทธิ์พิเศษ ต้องทบทวนค่าพวกนี้ใหม่ เปลี่ยนที่อยู่ตัวอย่างในเอกสารทั้งหมดก่อนใช้
logoutput: stderr
internal: 192.0.2.10 port = 1080
external: 192.0.2.10
clientmethod: none
socksmethod: none
user.privileged: danteproxy
user.unprivileged: danteproxy
client pass {
from: 198.51.100.27/32 to: 192.0.2.10/32 port = 1080
log: connect error
}
socks pass {
from: 198.51.100.27/32 to: 203.0.113.20/32 port = 443
command: connect
log: connect error
}
internal เลือกตัวรับการเชื่อมต่อฝั่งไคลเอนต์ ส่วน external เลือกที่อยู่ขาออก เซิร์ฟเวอร์ที่มีอินเทอร์เฟซเดียวใช้ที่อยู่ที่ได้รับจัดสรรเดียวกันสำหรับทั้งสองค่าได้ จะใช้ชื่ออินเทอร์เฟซเมื่อเหมาะสมก็ได้ แต่ให้ตรวจว่าชื่อนั้นขยายเป็นที่อยู่ใดบ้าง
นโยบายนี้อนุญาตอะไร
กฎแรกรับต้นทางที่ระบุเข้าสู่ตัวรับ กฎที่สองอนุญาตเฉพาะ CONNECT ไปเป้าหมายที่ระบุ คำขอที่ไม่ตรงกฎยังถูกบล็อก รวมถึง BIND และ UDP ASSOCIATE
ค่า method ไม่ให้การยืนยันตัวตนด้วยชื่อผู้ใช้ สิทธิ์เข้าถึงขึ้นกับกฎต้นทางที่จำกัดแคบและขอบเขตเครือข่าย วิธีนี้เหมาะเฉพาะเมื่อที่อยู่ต้นทางนั้นระบุไคลเอนต์ที่ได้รับอนุญาตได้
sockd -V -f /path/to/sockd.conf
บางดิสทริบิวชันตั้งชื่อไฟล์เรียกใช้ว่า danted ตรวจการตั้งค่าด้วยคำสั่งที่ติดตั้งไว้ก่อนเริ่มบริการ ใช้ข้อจำกัดต้นทางที่สอดคล้องกันในไฟร์วอลล์ แล้วทดสอบทั้งเป้าหมายที่อนุญาตและเป้าหมายที่ควบคุมได้ซึ่งควรถูกปฏิเสธ