Halaman manual UFW menyebutkan bahwa ia dapat mengatur pembatasan iptables untuk saya:
ufw mendukung pembatasan kecepatan koneksi, yang berguna untuk melindungi terhadap serangan masuk brute-force. ufw akan menolak koneksi jika alamat IP telah mencoba untuk memulai 6 atau lebih koneksi dalam 30 detik terakhir. Lihat http://www.debian-administration.org/articles/187 untuk detailnya. Penggunaan umum adalah:
ufw limit ssh/tcp
Sayangnya ini semua dokumentasi yang bisa saya temukan. Saya ingin tetap menggunakan UFW, dan tidak menggunakan perintah iptables yang lebih rumit (untuk menjaga hal-hal "tidak rumit").
Bagaimana saya menggunakan ufw untuk membatasi semua lalu lintas masuk (jadi tidak keluar) pada port 80 hingga 20 koneksi per 30 detik? Bagaimana cara saya menonaktifkan pembatasan kecepatan untuk port 30000 hingga 30005? Apakah pembatasan nilai diaktifkan secara default untuk semua port?
iptable
, jika ya maka iptable adalah backend dari ufw.Seperti yang disebutkan pada posting sebelumnya, Anda dapat menyesuaikan aturan pengguna. Saya membutuhkan batas kecepatan koneksi smtp saya hingga 12 koneksi dalam 6 detik. Saya menambahkan aturan seperti yang ditunjukkan di bawah ini terlebih dahulu. Catatan: ini menambahkan aturan batas yang memperbolehkan 6 dalam 30 detik secara default
dan saya mengedit /lib/ufw/user.rules (saya menyimpan salinan kustom dari file ini dengan banyak tweak lainnya) seperti yang ditunjukkan di bawah ini ...
sumber
batas nilai dapat dengan diubah pada file aturan ufw yang dapat ditemukan /lib/ufw/user.rules. secara default tidak ada batasan yang diaktifkan untuk semua port. Anda harus menambahkan setiap port secara manual atau dengan mengedit file user.rules.
sumber
Penting untuk menunjukkan kemungkinan konsekuensi yang tidak diinginkan dari penggunaan fitur LIMIT ufw.
Misalkan satu menempatkan batas selimut pada port 22 / tcp sebagai aturan ufw pertama:
dengan asumsi bahwa koneksi yang beroperasi di bawah batas masih dapat difilter dengan mengikuti aturan ufw dan akhirnya kebijakan default "deny (incoming)".
Setidaknya untuk ufw 0,35, asumsi itu akan salah. Sebenarnya logika LIMIT IN segera menerima input apa pun yang tidak ditolak oleh kriteria batas.
Dalam psuedocode, logika LIMIT adalah
if CONDITION then DENY else ACCEPT
sedangkan aturan ufw lain tampaknya memiliki logika:
if CONDITION then (DENY|ACCEPT) else continue to next rule
.Saya pribadi menemukan bahwa menjadi perilaku tak terduga untuk ufw LIMIT, yang hanya saya temukan dengan secara tak terduga menemukan banyak upaya masuk port 22 dalam file log sistem yang seharusnya tidak pernah terjadi karena disaring oleh aturan ufw lainnya.
Rincian konfirmasi perilaku
Baris kode iptables yang relevan yang disisipkan oleh ufw adalah sebagai berikut:
Daftar di atas dapat dibuat dengan
Dua baris pertama berturut-turut
ufw-user-input
dapat dikonfirmasisumber