خادم 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.
إعدادات الأساليب لا توفر مصادقة باسم مستخدم. يعتمد الوصول على قاعدة المصدر الضيقة وحدودها الشبكية. هذا الترتيب مناسب فقط حين يحدد ذلك المصدر عميلاً مخولاً.
sockd -V -f /path/to/sockd.conf
تسمي بعض التوزيعات الملف التنفيذي danted. افحص الإعداد بالأمر المثبت قبل تشغيل الخدمة. طبّق قيود مصادر مطابقة في الجدار الناري، ثم اختبر الهدف المسموح وهدفاً تحت سيطرتك ينبغي رفضه.