Tergantung pada apa SSH diperlukan untuk, Anda mungkin dapat mencapai tujuan ini (untuk non-sepele) file dengan menggunakan IPTable untuk mengakhiri sesi jika ukuran paket lebih besar, katakanlah 1.400 byte. Ini berarti bahwa ssh interaktif sebagian besar akan berfungsi, tetapi segera setelah sesuatu mencoba mengirim paket 1500 byte - seperti scp seharusnya untuk file yang lebih besar daripada 1499 byte dengan asumsi MTU standar 1500, itu akan memutuskan koneksi.
Ini juga akan mencegah serangan "catting" yang Anda sebutkan.
Sayangnya ini berarti bahwa Anda mungkin memiliki masalah mengedit beberapa file dengan editor teks, jika layar perlu menggambar lebih dari 1400 karakter, atau jika Anda perlu menyimpan file yang panjang atau melakukan daftar direktori yang panjang.
Dalam kasus paling sederhana perintah untuk melakukan ini mungkin terlihat seperti
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff -j DROP
Kita dapat membuat ini bekerja lebih baik dengan menggabungkan cek panjang paket dengan ipt_recent, sehingga Anda mengizinkan jumlah paket lebih besar dari 1400 byte dalam jangka waktu yang ditetapkan (katakanlah 8 paket per 5 detik) - ini akan memungkinkan paket hingga 12k untuk tergelincir melalui, tetapi dapat memberi Anda interaktivitas yang Anda perlukan untuk mengedit file, dll. Anda dapat, tentu saja, mengubah jumlah paket.
Ini mungkin terlihat seperti
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --set
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --update --seconds 5 --hitcount 8 \
-j REJECT --reject-with tcp-reset
Contoh aturan di atas hanya melindungi dari unggahan scp seperti scp myfile.data remote.host:~
. Untuk melindungi tambahan terhadap unduhan scp seperti scp remote.host:~/myfile.data /local/path
, ulangi aturan di atas tetapi ganti --dport
dengan --sport
.
Seorang peretas yang cerdas dapat mengatasi keterbatasan ini dengan menetapkan MTU kurang dari 1400 pada mesinnya (atau memaksa mtu atau serupa). Selain itu, meskipun Anda tidak dapat membatasi ini untuk pengguna tertentu, Anda dapat membatasinya dengan IP dengan memodifikasi jalur iptables yang sesuai !!
Cheers, David Go