Bagaimana cara mendapatkan kembali akses SSH setelah dikunci oleh iptables?

10

TL: DR

Saya membuat perubahan pada konfigurasi iptables saya dan sekarang SSH menolak semua koneksi. Bisakah saya memperbaiki ini tanpa menghubungi perusahaan hosting saya?


Versi Panjang

Ok, ini kemungkinan besar 100% salahku sendiri ...

Dalam persiapan memindahkan situs web ke server khusus, kami mendapatkan mesin yang dihosting baru yang menjalankan CentOS 5.6. Mesin memiliki iptables yang cukup terkunci, hanya memungkinkan ssh (22) dan http (80) tetapi kami juga membutuhkannya untuk menerima FTP melalui port 20 dan 21.

Sore ini saya menambahkan baris ke iptables saya untuk menerima koneksi masuk ke port 20 dan 21. Awalnya itu tidak berfungsi karena ada reject allgaris di atas garis yang saya tambahkan untuk ftp. Jadi saya memindahkan garis itu ke bawah, menyimpan dan memulai ulang iptables dan ftp berfungsi.

2 jam kemudian, ketika saya mencoba terhubung lagi, port 22: Connection refused Sama untuk http.

Jadi saya tidak bisa sampai ke server melalui SSH, apakah ada cara saya dapat memperbaikinya tanpa menghubungi perusahaan hosting saya?

Jan Henckens
sumber

Jawaban:

13

Sayangnya tidak ada. Tidak, kecuali jika Anda memiliki beberapa antarmuka manajemen lain yang tersedia seperti konsol serial jarak jauh, iDRAC, iLO, dll. Kumpulkanlah pengalaman tersebut dan jangan lupa untuk menguji pengaturan sebelum Anda keluar nanti;)

Michael Lowman
sumber
12
Atau jika Anda bereksperimen dengan iptables, pastikan Anda menetapkan sementara tugas cron yang menyetel ulang pengaturan setiap 15 menit.
mailq
1
Pelajaran yang dipelajari :)
Jan Henckens
Bagaimana Anda mengaktifkan port SSH 22 menggunakan iDRAC?
terrid25
@ terrid25 Anda akan login menggunakan konsol serial mendengarkan pada port serial yang iDRAC memberi Anda akses. Anda kemudian dapat memperbaiki iptables dan berada di jalan gembira Anda. tentu saja, jika hal-hal out-of-band Anda tidak diatur dengan konsol jarak jauh dan Anda akan terjebak seperti teman Anda tanpa manajemen jarak jauh sama sekali.
Michael Lowman
7

Dengan asumsi Anda masih dapat ftp ke server, dan Anda dapat masuk sebagai root melalui ftp (tidak mungkin dan biasanya keliru) ke dalam lingkungan non-chroot (dll):

Letakkan file di /etc/cron.d dengan konten ini:

* * * * * root /sbin/service iptables stop 
Mark Wagner
sumber
Ini membantu saya, karena saya dapat menghubungkan citra pemulihan dan mengakses sistem file dari jarak jauh.
Daniel W.
0

Sesuai instruksi ini , Anda juga dapat menambahkan:

scripts2/doautofixer?autofix=iptablesflush

... ke url WHM Anda. Saya melakukan itu dan berakhir dengan URL:

https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush

Ini mengatur ulang iptables saya dan semuanya baik-baik saja dengan dunia lagi. :)

coderama
sumber
0

Di CentOS Anda memiliki file /etc/sysconfig/iptablesjika Anda tidak memilikinya di sana, Anda dapat membuatnya hanya dengan menggunakan iptables-saveuntuk membuang aturan saat ini yang ditetapkan ke dalam file.

iptables-save > /etc/sysconfig/iptables

Untuk memuat file yang Anda tidak perlu me-restart mesin, Anda dapat menggunakan iptables-restore

iptables-restore < /etc/sysconfig/iptables
Janus Rokkjær
sumber