گرمای تابستان — همه‌چیز آب می‌شود، حتی قیمت‌های ما.−25%−۲۵٪ روی هر پلن سالانه، تا ۳۱ اوتدیدن پلن‌ها
EQVPS

ufw شما را بیرون از VPS خودتان قفل کرد؟ بدون نصب مجدد برگردید

31 مرداد 1405 · 4 دقیقه مطالعه · EQVPS Team

برای هر کسی که نخستین‌بار سرور خودش را می‌گرداند یک آیین گذر هست: تصمیم می‌گیرید فایروال بگذارید، چند فرمان ufw تایپ می‌کنید، enable را می‌زنید — و ترمینال ساکت می‌شود. SSH رفت. چیزی را خراب نکردید و هک هم نشدید. فقط در را قفل کردید، با خودتان بیرون از آن.

این برای مدیران کاربلد هم پیش می‌آید. هفتهٔ پیش دقیقاً برای یکی از مشتریان ما رخ داد، برای همین دارم می‌نویسم. خبر خوب: در کمتر از یک دقیقه کاملاً بازیابی‌شدنی است، و نیازی به نصب مجدد یا از دست دادن حتی یک فایل ندارید. راهش این است.

سروری که پشت دیوار فایروال مهر و موم شده، با پنجرهٔ کنسولی درخشان به‌عنوان راه بازگشت

واقعاً چه اشتباهی پیش آمد

ufw (Uncomplicated Firewall) به‌طور پیش‌فرض همهٔ ورودی را رد می‌کند. لحظه‌ای که ufw enable را اجرا می‌کنید، هر چیزی که صراحتاً اجازه نداده‌اید انداخته می‌شود — از جمله همان نشست SSH که در آن نشسته‌اید. اگر یادتان رفت اول پورت SSH را ufw allow کنید، به‌محض اثرگذاری قانون، اتصال خودتان را بریده‌اید.

این نسخهٔ کلاسیک است. دو مورد دیگر هم مردم را گیر می‌اندازد:

در هر حال خود سرور خوب است — در حال اجرا، دیسک سالم، و برنامه‌تان هنوز پشت دیوار زمزمه می‌کند. این صرفاً یک مشکل دسترسی شبکه است. و دقیقاً به همین دلیل رفعش آسان است.

حرکت اشتباه: نصب مجدد

نخستین انگیزه اغلب این است که «پس سرور را ریست می‌کنم و از صفر شروع می‌کنم». نکنید — برای این نه. نصب مجدد همه‌چیز را پاک می‌کند تا یک SSH سالم پس بگیرد، حال آنکه چیزی که SSH را بسته فقط یک فرمان فایروال است که در ده ثانیه بازش می‌گردانید. مثل این است که چون در ورودی را قفل کرده‌اید خانه را آتش بزنید.

نصب مجدد وقتی درست است که بخواهید صفحه‌ای سفید داشته باشید. برای قفل‌شدن ufw، مثل کشتن مگس با توپ است.

حرکت درست: کنسول وب

هر VPS آبرومندی یک کنسول خارج از باند به شما می‌دهد — راهی به ماشین که نه از SSH می‌گذرد و نه حتی از پشتهٔ شبکه. در EQVPS این همان دکمهٔ Console در صفحهٔ سرور شماست. کنسول سریال است: فقط متن، مستقیم به ماشین مجازی وصل، درست مثل نمایشگر و صفحه‌کلید. قانون فایروال هیچ قدرتی بر آن ندارد، چون ترافیک شبکه نیست.

دکمهٔ Console در صفحهٔ مدیریت سرور در EQVPS

رویش کلیک کنید، با اعتبارنامهٔ root وارد شوید (یا اگر در دسترس ندارید، رمز را در پنل آشکار کنید) — و روی ماشین هستید، با فایروال یا بی آن.

حالا خرابی را برگردانید. سریع‌ترین راه:

sudo ufw disable

این فایروال را خاموش می‌کند و قوانین شما را نگه می‌دارد، تا بعد از رفع اشتباه دوباره فعالش کنید. SSH فوراً برمی‌گردد.

اگر ترجیح می‌دهید کل فایروال را نیندازید، فقط پورتی را که جا انداختید باز کنید:

sudo ufw allow 22
sudo ufw status numbered

status numbered ارزش دیدن دارد: ترتیب قوانین را نشان می‌دهد — همان‌جا که حالت‌های «۲۲ را اجازه دادم و باز هم مسدود است» پنهان‌اند. اگر deny بالای allow شما نشسته، با sudo ufw delete <شماره> حذفش کنید.

تلهٔ NAT که تقریباً هیچ راهنمایی به آن اشاره نمی‌کند

اگر روی طرح NAT هستید، اینجا تله‌ای هست. با SSH از یک پورت بالا وارد می‌شوید — چیزی مثل 20266 — پس غریزهٔ طبیعی ufw allow 20266 است. این هیچ کاری نمی‌کند.

در NAT، آن پورت بیرونی به پورت ۲۲ داخل ماشین مجازی فوروارد می‌شود. ufw داخل ماشین مجازی اجرا می‌شود و همیشه فقط ۲۲ را می‌بیند. پس قانونی که واقعاً نیاز دارید این است:

sudo ufw allow 22

۲۰۲۶۶ را اجازه دهید و به اتصالی که هنوز خراب است خیره می‌مانید و می‌پرسید چرا. ۲۲ را اجازه دهید و داخل هستید. همین منطق برای هر سرویس: پورتی را اجازه دهید که پروسه داخل ماشین به آن گوش می‌دهد، نه پورت فوروارد‌شده‌ای که از بیرون با آن وصل می‌شوید.

چطور دیگر هرگز این کار را نکنید

رفعش یک دقیقه طول می‌کشد، اما بهتر است اصلاً به آن نیاز نیفتد. دو عادت:

پیش از فعال‌سازی، پورت SSH خود را اجازه دهید. همیشه به این ترتیب:

sudo ufw allow 22
sudo ufw enable

برعکس انجامش دهید و باز به کنسول برمی‌گردید.

هنگام تغییر قوانین فایروال، یک نشست SSH دوم را باز نگه دارید. دو بار وارد شوید. تغییرات را در یک پنجره انجام دهید؛ اگر SSH مرد، دیگری هنوز زنده است تا درستش کند. ترفندی قدیمی که هر بار نجاتتان می‌دهد.

و اگر ماشینی تازه برپا می‌کنید، سیاههٔ امنیت VPS تازهٔ ما ufw را به ترتیب درست پوشش می‌دهد — همراه با کلیدهای SSH و آن چند چیز دیگری که در ده دقیقهٔ اول واقعاً مهم‌اند.

جمع‌بندی

قفل‌شدن ufw ترسناک به نظر می‌رسد و تقریباً هیچ است. سرور هرگز نرفته بود؛ فقط به دری نیاز دارید که هیچ فایروالی نتواند ببندد — کنسول وب — و یک فرمان. ufw disable و کنسول را در جیب داشته باشید، دفعهٔ بعد پیش از فعال‌سازی پورتتان را اجازه دهید، و این چیز دیگر هرگز شما را به عرق نمی‌اندازد.

سؤالات متداول

ufw را فعال کردم و حالا SSH وصل نمی‌شود. سرور از دست رفت؟

نه. سرور کاملاً سالم کار می‌کند — فقط در را از داخل قفل کردید. داده‌هایتان دست‌نخورده است. کنسول وب را در پنل باز کنید (بدون SSH وارد می‌شود) و `sudo ufw disable` را اجرا کنید؛ دوباره داخل هستید. نیازی به نصب مجدد نیست.

چرا فعال کردن ufw، SSH مرا قطع کرد؟

ufw به‌طور پیش‌فرض همهٔ ترافیک ورودی را رد می‌کند، و اگر بدون اجازه‌دادن به پورت SSH خود آن را فعال کنید، نشست خودتان قطع می‌شود. رایج‌ترین شکل قفل‌کردن خود همین است. همیشه `ufw allow <پورت-ssh>` پیش از `ufw enable`.

اگر اصلاً نتوانم با SSH وارد شوم، ufw را چطور درست کنم؟

از کنسول وب خارج از باند (کنسول سریال) در پنل استفاده کنید — نه از SSH می‌گذرد و نه حتی از پشتهٔ شبکه، پس هیچ قانون فایروالی نمی‌تواند آن را مسدود کند. وارد شوید، سپس `sudo ufw disable` (سریع‌ترین) یا برای اصلاح قانون مشخص `sudo ufw allow <پورت>`.

روی VPS با NAT کدام پورت را در ufw اجازه دهم؟

پورت ۲۲ را اجازه دهید، نه پورت بیرونی را. در طرح NAT از طریق پورت بالایی مثل ۲۰۲۶۶ وصل می‌شوید، اما آن به پورت ۲۲ داخل ماشین مجازی فوروارد می‌شود. ufw داخل ماشین مجازی اجرا می‌شود و فقط ۲۲ را می‌بیند. اجازه‌دادن به ۲۰۲۶۶ کاری نمی‌کند — ۲۲ را اجازه دهید.

آیا `ufw reset` امن‌تر از `ufw disable` است؟

`disable` فقط فایروال را خاموش می‌کند و قوانین‌تان را نگه می‌دارد — سریع‌ترین راه بازگشت. `reset` همهٔ قوانین را به پیش‌فرض پاک می‌کند. برای بازیابی از `disable` استفاده کنید و بعد قوانین را با دقت دوباره بیفزایید. `reset` فقط وقتی مجموعه‌قوانین آشفته‌ای است که می‌خواهید حذفش کنید.

← بازگشت به وبلاگ← پلن‌ها و قیمت‌ها

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.