Saya perlu membatasi port mana saja yang dapat ' ssh -R
' diteruskan oleh pengguna dari jarak jauh .
Saya tahu tentang permitopen
opsi pada berwenang_kunci, tetapi seperti yang tertulis di halaman manual, itu hanya membatasi ssh -L
penerusan port lokal
Seperti yang dibahas di sini, pengguna akan mendapatkan yang sama netcat
atau serupa, tetapi dalam hal ini pengguna tidak memiliki akses shell
Saya juga menemukan utas ini yang berbicara tentang menggunakan selinux atau LD_PRELOAD
, tapi saya tidak pernah mengkonfigurasi selinux sebelumnya dan tidak dapat menemukan info tentang cara melakukannya dengan LD_PRELOAD
.
mungkin seseorang telah membuat patch untuk openssh untuk mengimplementasikannya?
EDIT: Saya sudah menemukan laporan bug ini jadi saya kira itu belum diterapkan
Jawaban:
Ini telah diimplementasikan dalam OpenSSH 7.8p1, yang dirilis pada 2018-08-24. Kutipan dari catatan rilis:
sumber
Ada opsi
no-port-forwarding
yang dapat Anda gunakan, yang mencegah semua penerusan porta. Hadir setidaknya pada OpenSSH 4.3p2 (CentOS 5.3 - mesin tertua yang dapat saya akses). Letakkan di tempat yang sama dengan yang Anda taruhpermitopen
.sumber
Tidak mungkin membatasi penggunaan ssh. Mungkin selinux atau iptables dapat digunakan untuk tujuan itu. Namun, ada strategi alternatif yang mungkin atau tidak sesuai dengan kebutuhan Anda. Gunakan penjilidan ke soket UNIX. Ini harus tersedia mulai dari openssh versi 6.8.
Saat menggunakan soket, Anda memiliki sistem file ACL (meskipun soket itu tergantung pada * nix) yang Anda inginkan dan Anda dapat menggunakannya untuk mencegah satu pengguna mengikat ke soket yang lain. Namun, itu tidak mencegah pengikatan ke port dengan cara apa pun, jadi tergantung pada kasus penggunaan Anda mungkin tidak membantu, tetapi mungkin port tidak masalah jika Anda dapat secara konsisten hanya menggunakan soket.
Dengan soket UNIX yang menangani file soket yang menggantung mungkin bermasalah karena penerbit terbalik mencoba menyambung kembali. Saya punya pertanyaan lain (dan jawaban) untuk masalah itu. Singkatnya, Anda mungkin juga ingin menggunakan
StreamLocalBindUnlink yes
:Bagaimana cara membersihkan SSH reverse tunnel socket setelah koneksi ditutup?
sumber
Gandakan: /superuser/516417/how-to-restrict-ssh-port-forwarding-without-denying-it
Sepertinya Anda dapat menggunakan yang berikut ini?
Sunting: Jadi di Server konfigurasi tambahkan yang berikut
sumber