Saya tidak sengaja melarang koneksi SSH ke server jauh ... Apa selanjutnya?

61

Katakan lagi, kita semua membuat kesalahan , dan saya baru saja membuat satu.

Sejarah singkat: Saya melakukan beberapa hal di VPS (Debian) yang saya sewa, ketika saya melihat beberapa perilaku aneh. Menggunakan netstatperintah saya melihat koneksi yang tidak resmi melalui SSH. Saya tidak tahu harus berbuat apa, jadi saya memutuskan untuk menutup koneksi dengan menggunakan iptables:

iptables -A INPUT -p tcp --dport ssh -s IP -j DROP

Tetapi saya lelah, dan saya menulis

iptables -A INPUT -p tcp --dport ssh -j DROP

dan aku menendang diriku sendiri (dan semua orang) ...

Bagaimana cara saya memperbaikinya?

tomatoBeli
sumber
1
tidak, karena dia memblokir semua paket ssh di mesin. pada subnet yang salah konfigurasi, Anda hanya perlu tcpdump untuk alamat mac itu, dapatkan subnet itu pada arp-ing kemudian konfigurasikan nic virtual ke subnet yang sama dan bicaralah dengannya.
jfalcon alias Don Fanning
50
Yah, setidaknya Anda menghapus akses untuk individu yang tidak berwenang.
CVn
2
Untuk waktu berikutnya, mungkin pergantian orang mati akan berguna.
Wayne Conrad
2
Siapa tuan rumahmu Banyak host VM menawarkan konsol serial yang memungkinkan Anda SSH jika Anda tidak dapat dari lokasi yang jauh.
Jon

Jawaban:

60

Ada beberapa alternatif:

  • Lihat apakah mereka memiliki akses IPMI / "KVM" / konsol ke server yang memungkinkan Anda mengontrolnya seolah-olah Anda memiliki keyboard fisik yang terhubung dengannya.
  • Jika mereka tidak menawarkan itu, lihat apakah Anda dapat mem-boot VM ke CD pemulihan linux (beberapa penyedia menawarkan ini) dan kemudian perbaiki aturan firewall seperti itu dan kemudian boot seperti biasa.
  • Jika Anda tidak memiliki akses konsol, sebelum Anda boot ke pemulihan atau lampirkan volume ke VM lain (seperti dalam kasus Amazon, kredit jawaban pengguna 3550767), Anda dapat mencoba jawaban Ankh2054 untuk mem-boot ulang terlebih dahulu jika Anda belum menyimpan aturan ( kemungkinan karena Anda menendang diri sendiri sebelum Anda memiliki kesempatan untuk menyelamatkan). Gunakan panel kontrol atau minta seseorang untuk menghidupkannya menggunakan reset / poweroff yang tidak anggun (alias hard reboot atau hard shutdown) seandainya skrip init menyimpan aturan secara otomatis saat me-reboot dengan anggun (kredit @jfalcon, @joshudson).

    Timbang kelemahan ini (seperti data yang ditulis saat reboot mungkin hilang dan pemeriksaan sistem file mungkin diperlukan saat boot sehingga waktu boot yang lebih lama, meskipun penundaan itu mungkin kurang dari boot ke pemulihan).

G491
sumber
1
tergantung pada server vps, mungkin tidak ada akses jarak jauh yang bisa dia jangkau. sistem seperti vmware, kvm, xen, dll. memiliki konsol tetapi tidak disiapkan untuk konsumsi publik. menutup yang memungkinkan bentuk kontrol publik ini adalah openstack.
jfalcon alias Don Fanning
4
yang mengatakan, jika itu di ruang amazon / google, dia bisa mengambil snapshot drive dan me-mount-nya dari mesin virtual lain untuk melakukan perbaikan.
jfalcon alias Don Fanning
47

Jika Anda belum menyimpan aturan IPtables, Anda dapat mem - boot ulang server pada VPS (jika tersedia) dan aturan itu akan hilang.

Ankh2054
sumber
kecuali skrip init menyimpan iptables selama shutdown.
jfalcon alias Don Fanning
3
@ jfalcon: Itu sebabnya Anda dapat meminta mereka untuk menarik steker virtual.
joshudson
22
@ jfalcon Itu juga mengapa itu ide buruk untuk otomatis menyimpan pada shutdown ... membuat menyimpan keputusan sadar oleh sysadmin, bukan sesuatu yang dilakukan secara membabi buta oleh sistem.
CVn
@ joshudson: Anda harus memberi tahu monyet reboot apa yang harus dilakukan dan mematikan daya. Bukan hanya memulai shutdown.
jfalcon alias Don Fanning
@ MichaelKjörling: Filosofi ini juga salah. Ini adalah VPS sehingga kemungkinan besar ia mem-sandbox aplikasi-aplikasinya dan ia tidak memiliki kendali atas siapa yang menekan saklar daya. Dan Anda tidak tahu bagaimana hosting VPS mengkonfigurasi build mereka. Tidak ada yang salah dengan penghematan pada shutdown. Kesalahannya adalah kesalahannya. Langkah cerdas pertama-tama adalah menempatkan SSH pada port non-standar atau menggunakan fail2ban alih-alih bereaksi dengan reaksi panik.
jfalcon alias Don Fanning
30

Untuk itulah jalur bantuan yang dikelola manusia. Hubungi penyedia layanan, dan minta salah satu operatornya menghapus aturan untuk Anda.

RobertG
sumber
3

Cara umum untuk memperbaiki instance yang rusak adalah dengan mematikannya dan melampirkan volume root ke instance yang berfungsi. Anda kemudian dapat memasang volume di sana dan melihat log atau mengedit file konfigurasi. Anda kemudian dapat melepaskan volume dan memulainya dengan caranya sendiri.

pengguna3550767
sumber
2
Benar untuk VPS AWS; umumnya tidak benar.
MadHatter
@MadHatter Detail persisnya dapat bervariasi, tetapi jika penyedia VPS tidak menawarkan metode apa pun untuk mem-boot dengan gambar kerja yang diketahui dari mana Anda bisa memasang dan memperbaiki sistem file root Anda, maka saya berharap mereka keluar dari bisnis setelah pelanggan belajar tentang batasan itu.
kasperd
Biasanya, mereka melakukannya dengan menawarkan akses konsol, sehingga Anda dapat boot dalam mode pengguna tunggal, atau dari media penyelamat (biasanya diabstraksi sebagai ISO). Saya menyampaikan bahwa itu sebenarnya jauh lebih normal daripada cara AWS yang aneh dalam menangani masalah ini, di mana VPS kedua adalah (sementara) persyaratan.
MadHatter
@ MadHatter Yang mana dari dua pendekatan yang tampaknya aneh mungkin sangat tergantung pada apa yang paling Anda kenal. Dan kedua pendekatan itu menyelesaikan pekerjaan. Yang paling umum saya tidak bisa mengomentari, karena sejauh ini saya hanya perlu akses seperti itu pada penyedia VPS tunggal.
kasperd
@kasperd: Tidak, yang Anda gunakan bergantung pada dukungan penyedia VPS yang diberikan; ini bukan masalah pilihan. Jika Anda menggunakan AWS, Anda memasang volume pada VPS lain; jika Anda menggunakan penyedia VPS yang lebih normal, Anda mem-boot satu pengguna atau dari media cadangan. Saya tidak membuat poin ini menjadi kontol (well, tidak sepenuhnya) tetapi karena penting untuk menghargai bahwa seseorang harus mengetahui apa metode yang didukung penyedia layanan seseorang, kemudian menggunakannya. Mencoba menggunakan metode AWS dengan, katakanlah, Hetzner tidak akan berfungsi , karena satu vserver Hetzner tidak dapat melihat FS (afaik) orang lain.
MadHatter
3

Jawaban formal: buka panel manajemen VPS, dapatkan akses lokal (virtual KVM) entah bagaimana atau hubungi mereka.

Penjelasan langkah / aturan untuk mencegah jatuh lagi:

  1. Ada perubahan aturan ip, perutean, dan firewall yang mungkin memburuk dan memblokir akses Anda.
  2. dan itu berlaku untuk konfigurasi perangkat jaringan khusus juga, bukan hanya untuk VPS

Jadi, kecuali Anda adalah 100% yakin bahwa Anda dapat memulihkan .. saya sarankan untuk selalu membuat cara untuk me-reset konfigurasi jaringan ke keadaan sebelumnya .. seperti, sesi latar belakang terbuka dengan baik screen, nohupatau tmux, bahkan cronmungkin bekerja untuk ini, dan menambahkan iptables -Fatau cara lain yang diinginkan untuk mengatur ulang apa pun ke keadaan sebelumnya.

kagali-san
sumber