Cara Mengaktifkan IPtables TRACE Target pada Debian Squeeze (6)

11

Saya mencoba menggunakan target TRACE dari IPtables tetapi sepertinya saya tidak bisa mendapatkan informasi jejak apa pun yang dicatat. Saya ingin menggunakan apa yang dijelaskan di sini: Debugger untuk Iptables .

Dari pria iptables untuk TRACE:

   This target marks packes so that the kernel will log every  rule  which
   match  the  packets  as  those traverse the tables, chains, rules. (The
   ipt_LOG or ip6t_LOG module is required for the  logging.)  The  packets
   are   logged   with   the   string   prefix:  "TRACE:  tablename:chain-
   name:type:rulenum " where type can be "rule" for plain  rule,  "return"
   for  implicit  rule at the end of a user defined chain and "policy" for
   the policy of the built in chains.
   It can only be used in the raw table.

Saya menggunakan aturan berikut: iptables -A PREROUTING -t raw -p tcp -j TRACEtetapi tidak ada yang ditambahkan di / var / log / syslog atau /var/log/kern.log!

Apakah ada langkah lain yang hilang? Apakah saya mencari di tempat yang salah?

sunting

Meskipun saya tidak dapat menemukan entri log, target TRACE tampaknya sudah diatur dengan benar karena penghitung paket bertambah:

# iptables -L -v -t raw
Chain PREROUTING (policy ACCEPT 193 packets, 63701 bytes)
 pkts bytes target     prot opt in     out     source               destination
  193 63701 TRACE      tcp  --  any    any     anywhere             anywhere

Chain OUTPUT (policy ACCEPT 178 packets, 65277 bytes)
 pkts bytes target     prot opt in     out     source               destination

edit 2

Aturan iptables -A PREROUTING -t raw -p tcp -j LOG tidak mencetak informasi paket ke / var / log / syslog ... Mengapa TRACE tidak berfungsi?

bernie
sumber
1
hanya gagang pada program python (yang juga disebut iptables-trace :). Ketika mulai itu menambahkan aturan TRACE dengan kondisi tertentu ke dalam menjalankan iptables, mem-parsing dan menampilkan output yang diformat untuk menghasilkan output TRACE sampai program dihentikan (yang menghapus aturan TRACE dari iptables). Akan mencoba ini segera ...
chris

Jawaban:

8

Lari:

modprobe ipt_LOG

Itu memperbaikinya bagi saya.

Gido Bruno
sumber
Terima kasih, itu berhasil! Log tersedia di / var / log / syslog atau /var/log/kern.log
bernie
14

Sepertinya (yaitu berfungsi untuk saya) dengan kernel baru ini diperlukan (untuk IPv4):

modprobe nf_log_ipv4
sysctl net.netfilter.nf_log.2=nf_log_ipv4

kredit:

akostadinov
sumber
Ini adalah yang bekerja untuk saya di Ubuntu 16.04 (kernel 4.4.0-21-generic)
Ash Berlin-Taylor
Sayangnya modinfo nf_log_ipv4deskripsi hanya mengatakan: "Netfilter paket IPv4 logging". Beberapa deskripsi dapat meningkatkan jawabannya: Apa yang tepatnya dilakukan sysctl?
U. Windl
8

Saya menemukan bahwa saya perlu melakukan kedua jawaban sebelumnya, dalam urutan ini:

sudo modprobe ipt_LOG
sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Berikut adalah beberapa hal yang saya temukan di sepanjang jalan.

Anda bisa mendapatkan daftar penebang yang valid (bersama dengan penebang yang saat ini dipilih) dengan yang berikut:

cat /proc/net/netfilter/nf_log

Angka-angka di sini mewakili nomor keluarga protokol, sebagaimana didefinisikan dalam /usr/include/bits/socket.h. 2 adalah AF_INET(itu IPv4), dan 10 adalah AF_INET6(IPv6).

mavit
sumber
2

Ini berhasil untuk saya sudo sysctl net.netfilter.nf_log.2=ipt_LOG

Nikolay Bryskin
sumber