דילוג לתוכן
Secret Knock

הגדרת שרת 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
Debian / Ubuntu

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
/etc/fwknop/access.conf

3. הגדירו ל-fwknopd היכן להאזין

fwknopd לוכד חבילות בממשק רשת; הוא אינו זקוק ליציאה פתוחה. הגדירו את הממשק שבו השרת משתמש.

# /etc/fwknop/fwknopd.conf
PCAP_INTF               eth0;
PCAP_FILTER             udp port 62201;
MAX_SPA_PACKET_AGE      120;
/etc/fwknop/fwknopd.conf

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
iptables

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]
ממחשב עם fwknop-client
  1. 1ב-Secret Knock: דלת חדשה › התחלה מתבנית › fwknop, הזינו את המארח והדביקו את הפלט של fwknop --key-gen באמצעות ״הדבקת מפתחות מ-fwknop --key-gen״.
  2. 2בצעו דפיקה; הדלת מציגה דלת פתוחה מעט כאשר יציאה 22 עונה.
  3. 3הפעילו fwknopd -f -v בשרת אם לא — במדריך לפתרון בעיות מפורטות הסיבות הנפוצות.

כל הדוגמאות ב-GitHub → כל התצורות בדף זה, מוכנות להעתקה: github.com/mobilcomm/secretknock-examples (נחלת הכלל).

שאלות

האם fwknopd זקוק ליציאה פתוחה?

לא. הוא קורא חבילות מממשק הרשת, ולכן יציאת ה-SPA יכולה להישאר סגורה בחומת האש; החבילה רק צריכה להגיע לשרת.

מדריכים להגדרה שלך