إخفاء SSH خلف الطرق على المنافذ
يجمع منفذ SSH المفتوح محاولات تسجيل الدخول من جميع أنحاء الإنترنت. يُبقي الطرق على المنافذ المنفذ مغلقًا إلى أن تثبت أنك تعرف سرًا، ثم يفتحه لعنوانك فقط لبضع ثوانٍ.
باستخدام knockd وnftables
أسقِط اتصالات SSH افتراضيًا ولا تقبلها إلا من العناوين الموجودة في مجموعة لها مهلة. يضيف knockd عنوان الطرق إلى تلك المجموعة؛ ويزيله nftables عند انتهاء المهلة، بينما تستمر جلسة SSH القائمة في العمل.
table inet filter {
set knocked4 {
type ipv4_addr
flags timeout
}
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
tcp dport 22 ip saddr @knocked4 accept
}
} قسم knockd الذي يملأ المجموعة:
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s } افصل الوصول الدائم
إذا كنت تسمح أيضًا لبعض العناوين بشكل دائم، فأبقِها في مجموعة منفصلة بلا مهلة. لا تؤدي إضافة عنوان موجود بالفعل في مجموعة ذات مهلة إلى إعادة ضبط مهلته، لذا قد يؤدي خلط نوعَي الإدخالات في مجموعة واحدة إلى منعك من الوصول عند انتهاء المؤقت.
أو استخدم fwknop
إن fwknop SPA أقوى من التسلسل: حزمة واحدة مشفرة ومصادَق عليها لا يمكن إعادة استخدامها. راجع دليل fwknop.
من iPhone إلى SSH
- 1المس مطولًا مطرقة الباب النحاسية. يتحقق Secret Knock من أن المنفذ 22 يستجيب ويعرض المدة التي يبقى فيها مفتوحًا.
- 2يفتح «فتح SSH» تطبيق SSH لديك باستخدام رابط ssh:// للخادم.
- 3يعيد خيار «إبقاء الباب مفتوحًا أثناء ظهور شاشته» الطرق قبل وقت قصير من انتهاء فترة الفتح، بينما يكون الباب ظاهرًا على الشاشة.
جميع الأمثلة على GitHub → كل إعدادات التكوين في هذه الصفحة، جاهزة للنسخ: github.com/mobilcomm/secretknock-examples (ملك عام).
أسئلة
هل يحل هذا محل مفاتيح SSH؟
لا. يُخفي الطرق على المنافذ الخدمة؛ احرص أيضًا على استخدام مفاتيح SSH قوية وتعطيل تسجيلات الدخول بكلمة المرور.