Saya telah mendengus menginstal dan menjalankan dalam mode inline melalui NFQUEUE pada gateway lokal saya (seperti saya dapat berjalan di kamar sebelah dan menyentuhnya). Saya memiliki aturan berikut di /etc/snort/rules/snort.rules
:
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"ET CURRENT_EVENTS D-LINK Router Backdoor via Specific UA"; flow:to_server,established; content:"xmlset_roodkcableoj28840ybtide"; http_header; pcre:"/^User-Agent\x3a[^\r\n]*?xmlset_roodkcableoj28840ybtide/Hm"; reference:url,www.devttys0.com/2013/10/reverse-engineering-a-d-link-backdoor/; classtype:attempted-admin; sid:2017590; rev:2; metadata:created_at 2013_10_13, updated_at 2013_10_13;)
Aturan ini berkaitan dengan backdoor yang ditemukan di beberapa router DLink. Saya memilih aturan ini karena sepertinya mudah untuk diuji. Aturan itu sendiri ditambahkan oleh pullpork dari emergingthreats jadi saya menganggap sintaksis aturan itu benar.
Untuk pengujian, saya telah mengkonfigurasi gateway saya dengan lighttpd pada port 80 menghadap internet dan mengkonfirmasi bahwa itu dapat diakses. Kemudian, pada mesin jarak jauh, saya menjalankan perintah curl -A 'xmlset_roodkcableoj28840ybtide' 'http://<EXTERNAL_IP>'
. Ini segera mencetak respons dari lighttpd ke konsol dan keluar. Tidak ada peringatan mendengus yang dihasilkan di gateway.
Selain itu, netfilter tampaknya hanya memanfaatkan dua dari empat proses mendengus yang saya jalankan. Saya dapat melihat ini htop
ketika proses mendengus pada CPU 1 dan 2 mengembangkan beban berat ketika pengujian dengan bittorrent ... tetapi proses mendengus pada CPU 0 dan 3 tetap benar-benar idle.
Apakah metodologi pengujian saya salah? Atau apakah dengusan tidak memberitahukan kapan seharusnya (yaitu karena kesalahan konfigurasi)? Di mana saya akan melihat mengapa netfilter tidak menyeimbangkan lalu lintas antara keempat antrian?
Konfigurasi
Konfigurasi Snort / Netfilter Saya
Bagian spesifik yang relevan dari rantai netfilter saya adalah:
Chain wan-fw (1 references)
pkts bytes target prot opt in out source destination
25766 2960K smurfs all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID,NEW,UNTRACKED
4 1380 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpts:67:68
4267 246K tcpflags tcp -- * * 0.0.0.0/0 0.0.0.0/0
3820 550K ~comb0 all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED <<=== this one for established connections ====!
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED
937 79669 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02
13 506 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 /* Ping */
4 240 ~log0 tcp -- * * <remote_server> 0.0.0.0/0 tcp dpt:80 /* Tiphares Allowed In */ <<=== this one for new connections ====!
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type BROADCAST
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type ANYCAST
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type MULTICAST
21506 2454K NFLOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: up to 1/sec burst 10 mode srcip nflog-prefix "IPv4 wan-fw REJECT " nflog-threshold 1
24808 2878K reject all -- * * 0.0.0.0/0 0.0.0.0/0 [goto]
Chain ~log0 (1 references)
pkts bytes target prot opt in out source destination
4 240 NFLOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: up to 1/sec burst 10 mode srcip /* Tiphares Allowed In */ nflog-prefix "IPv4 HTTPTest NFQUEUE " nflog-group 1 nflog-threshold 1
4 240 NFQUEUE all -- * * 0.0.0.0/0 0.0.0.0/0 /* Tiphares Allowed In */ NFQUEUE balance 0:3 bypass cpu-fanout <<=== passes packets to one of 4 snort processes ====!
Chain ~comb0 (4 references)
pkts bytes target prot opt in out source destination
474K 196M NFQUEUE all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate ESTABLISHED NFQUEUE balance 0:3 bypass cpu-fanout <<=== all established connections from 'wan' are monitored by snort ====!
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
Kerutan tambahan:
Saya tidak yakin apakah ini terkait. Saya telah menemukan apa yang tampak sebagai sesuatu di gateway saya mengirim paket reset TCP ke IP di internet. Dan paket-paket ini tidak terkait dengan koneksi yang ada.
Mengingat bahwa ini terjadi ketika menggunakan bittorrent pada mesin di belakang gateway ini dan sebagian besar paket reset mencantumkan port torrent sebagai port sumber, satu-satunya hal yang masuk akal bagi saya adalah bahwa ini adalah pengiriman ulang yang mendengus ketika mengatur ulang sesuatu (ya? ).
Tapi saya menggunakan nfqueue daq ... jadi, jika itu mendengus, lalu mengapa mendengus mengirimkan paket-paket ini dengan cara yang dilihat netfilter sebagai koneksi baru daripada memasukkan paket langsung ke rantai netfilter dan menghubungkannya dengan yang ada koneksi yang diblokir? Dan juga, dengusan tidak diatur untuk menjatuhkan paket atau untuk mengirim ulang (hanya peringatan) ... jadi mengapa harus melakukan itu sejak awal? Karenanya mengapa saya tidak yakin ini adalah sesuatu yang dilakukan dengusan.
Informasi lainnya
Sesuai saran Lenniey, saya juga mengujinya curl -A 'asafaweb.com' http://server-ip
. Ini juga tidak menghasilkan peringatan. Saya memeriksa dua kali bahwa aturan untuk ini ada di file aturan saya. Ada dua:
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"ET POLICY ASafaWeb Scan User-Agent (asafaweb.com)"; flow:established,to_server; content:"User-Agent|3a| asafaweb.com|0d 0a|"; http_header; reference:url,asafaweb.com; classtype:network-scan; sid:2014233; rev:2; metadata:created_at 2012_02_16, updated_at 2012_02_16;)
dan
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"MALWARE-CNC User-Agent ASafaWeb Scan"; flow:to_server,established; content:"User-Agent|3A| asafaweb.com"; fast_pattern:only; http_header; metadata:policy balanced-ips alert, policy security-ips drop, ruleset community, service http; reference:url,asafaweb.com; classtype:network-scan; sid:21327; rev:7;)
Saya juga memperbarui konfigurasi saya. Yang saya unggah ternyata, dan sudah lama (menunjukkan ACCEPT bukan NFQUEUE untuk aturan http netfilter).
iptables
Output tidak pernah merupakan pilihan yang baik kecuali jika Anda secara khusus tertarik pada penghitung.iptables-save
lebih disukai sebagai gantinya jika Anda mengharapkan manusia untuk membacanyaJawaban:
"Dipecahkan" dalam obrolan.
Setelah men-debug hampir semua hal (iptables + NFQUEUE, systemd.service dan unit drop-in, peringatan mendengus, dll.), Masalahnya berasal dari cara pengujian dilakukan.
Biasanya, mendengus sebagai IDS / IPS inline itu sendiri tidak didefinisikan untuk diperiksa untuk lalu lintas yang mencurigakan, melainkan hanya HOME_NETs (alias subnet LAN lokal), tetapi tidak pada IP publiknya sendiri. Aturan asli diuji terhadap IP publik ini dan karenanya tidak menghasilkan peringatan, karena default untuk peringatan adalah sesuatu di sepanjang baris
EXTERNAL_NET any -> HOME_NET any
.sumber