إعداد خادم fwknop
يحافظ تفويض الحزمة الواحدة من fwknop على إغلاق SSH إلى أن تصل حزمة UDP واحدة مشفّرة ومصادَق عليها. توضّح هذه الخطوات كيفية إعداده على خادم Debian أو Ubuntu؛ اختبره من كمبيوتر أولًا، ثم أضف المفاتيح نفسها إلى Secret Knock.
1. التثبيت وإنشاء المفاتيح
ثبّت الخادم والعميل، ثم أنشئ زوج مفاتيح. احتفظ بالمخرجات: يُضاف المفتاحان نفسيهما إلى access.conf وإلى Secret Knock.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. السماح بـ SSH لحزم SPA
يحدد access.conf ما الذي يمكن أن تفتحه حزمة صالحة ومدة فتحه.
SOURCE ANY
OPEN_PORTS tcp/22
KEY_BASE64 <output of fwknop --key-gen>
HMAC_KEY_BASE64 <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT 30 3. إبلاغ fwknopd بمكان الاستماع
يلتقط fwknopd الحزم على واجهة شبكة؛ ولا يحتاج إلى منفذ مفتوح. عيّن واجهة الشبكة التي يستخدمها خادمك.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. إغلاق SSH افتراضيًا
أبقِ جلسة SSH مفتوحة أثناء تنفيذ ذلك، واختبر من اتصال ثانٍ قبل تسجيل الخروج. يُدرج fwknopd سلسلته الخاصة في أعلى INPUT ويضيف فيها ACCEPT محدد المدة لكل حزمة صالحة.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. الاختبار، ثم إضافة الباب
أعد تشغيل fwknop-server، وأرسل حزمة من جهاز آخر واتصل:
# from another machine: request SSH for the address the server sees (-R)
fwknop -A tcp/22 -R -D server.example.com \
--key-base64-rijndael "<KEY_BASE64>" --key-base64-hmac "<HMAC_KEY_BASE64>"
ssh [email protected] - 1في Secret Knock: باب جديد › ابدأ من قالب › fwknop، أدخل المضيف، والصق مخرجات fwknop --key-gen باستخدام «لصق المفاتيح».
- 2اطرق؛ يعرض الباب «الباب موارب» عندما يستجيب المنفذ 22.
- 3شغّل fwknopd -f -v على الخادم إذا لم يحدث ذلك — يسرد دليل استكشاف الأخطاء وإصلاحها الأسباب المعتادة.
جميع الأمثلة على GitHub → كل إعدادات التكوين في هذه الصفحة، جاهزة للنسخ: github.com/mobilcomm/secretknock-examples (ملك عام).
أسئلة
هل يحتاج fwknopd إلى منفذ مفتوح؟
لا. يقرأ الحزم من واجهة الشبكة، لذا يمكن أن يظل منفذ SPA مغلقًا في جدار الحماية؛ ما دامت الحزمة تصل إلى الخادم.