errore nf_conntrack nei log

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

errore nf_conntrack nei log

Messaggio da conraid »

Ho un firewall come segue (sono anni che uso lo stesso, sicuramente ci sarebbe da cambiarlo anche perché ho regole per programmi che non uso più (amsn, gnomemeeting, etc...))

Codice: Seleziona tutto

#!/bin/bash

modprobe nf_conntrack nf_conntrack_helper=0
modprobe nf_conntrack_ftp
modprobe nf_conntrack_irc

IPTABLES=$(which iptables)
EXT=wlan0
INT=eth0
LAN_IP="192.168.0.50"
LAN_IP_RANGE="192.168.0.0/24"
LAN_IFACE="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"

fw_start() {
    $IPTABLES -F
    $IPTABLES -t mangle -F
    $IPTABLES -t nat -F
    $IPTABLES -X

    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP
    $IPTABLES -P OUTPUT ACCEPT

    $IPTABLES -A INPUT -m conntrack --ctstate INVALID -j DROP
    $IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    $IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset 
    #$IPTABLES -A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j LOG --log-prefix "New not syn:"
    $IPTABLES -A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

    $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -d $LO_IP -j ACCEPT
    $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -d $LAN_IP_RANGE -j ACCEPT
    $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -d $LAN_IP_RANGE -j ACCEPT

    $IPTABLES -A INPUT -p icmp --icmp-type 8 -m length --length 128:65535 -j DROP
    $IPTABLES -A INPUT -m limit -p tcp ! -s $LAN_IP_RANGE --dport 0:1024 -j LOG --log-prefix "Bad packet not from LAN"

    $IPTABLES -A INPUT -p tcp --dport 222 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --sport 53 -j ACCEPT
    $IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT

    $IPTABLES -A INPUT -p tcp --dport 6891 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 6892 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 1863 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 1720 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 1503 -j ACCEPT
    $IPTABLES -A INPUT -p udp --dport 1720 -j ACCEPT
    $IPTABLES -A INPUT -p udp --dport 1503 -j ACCEPT

    #$IPTABLES -A INPUT -p tcp --dport 30000:30010 -j ACCEPT
    #$IPTABLES -A INPUT -p udp --dport 5000:5016 -j ACCEPT
    #$IPTABLES -A INPUT -p udp --dport 5020:5023 -j ACCEPT

    $IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
    $IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT
    $IPTABLES -A INPUT -p udp --dport 4673 -j ACCEPT
    $IPTABLES -A INPUT -p tcp --dport 4661 -j ACCEPT
    $IPTABLES -A INPUT -p udp --dport 4665 -j ACCEPT

    $IPTABLES -A INPUT -p tcp --dport 6881:6889 -j ACCEPT

    $IPTABLES -A INPUT -p tcp --dport 32836 -j ACCEPT
}

fw_stop() {
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT
}

fw_drop() {
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
}

case "$1" in
    start)
        fw_start
        ;;
    stop)
        fw_stop
        ;;
    restart)
        fw_stop
        sleep 1
        fw_start
        ;;
    status)
        $IPTABLES -L -n -v
        ;;
    drop)
        fw_drop
        ;;
    *)
        echo " Firewall personale, usare con le opzioni:"
        echo " start   - Attiva il Firewall"
        echo " stop    - Disattiva il Firewall"
        echo " restart - Riavvia il Firewall"
        echo " drop    - Blocca ogni connessione"
        echo " status  - Mostra lo stato del Firewall"
        exit 1
esac
exit 0
ultimamente (sospetto dal 4.19) mi compare questo messaggio nei log

Codice: Seleziona tutto

nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based  firewall rule not found. Use the iptables CT target to attach helpers instead.
Ora se non ricordo male questo messaggio compariva quando si usava il vecchio "-m state --state" al posto del "nuovo" --ctstate.
Ma ora cosa può essere adesso?


p.s.
se avete suggerimenti per migliorarlo ben vengano

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: errore nf_conntrack nei log

Messaggio da rik70 »

In pratica stai caricando gli 'helper' per il tracking delle connessioni ftp e irc - ma ti servono? -

Codice: Seleziona tutto

modprobe nf_conntrack_ftp
modprobe nf_conntrack_irc
però l'assegnazione automatica dell'helper negli ultimi kernel di default è disabilitata - e tu lo specifichi col parametro

Codice: Seleziona tutto

nf_conntrack_helper=0
Devi perciò assegnarlo tu manualmente nella tabella row, tipo:

Codice: Seleziona tutto

iptables -v -A OUTPUT -t raw -p tcp -j CT --helper irc
iptables -v -A OUTPUT -t raw -p tcp -j CT --helper ftp
Tieni presente che molto probabilmente è meglio specificare anche la --dport tcp - per FTP è 21, per IRC(??) - e a seconda dei casi forse devi aggiungere le medesime regole anche nella catena PREROUTING.

Alternative:
- riabilitare l'assegnazione automatica dell'helper fino a quando sarà possibile

Codice: Seleziona tutto

modprobe nf_conntrack nf_conntrack_helper=1
- non caricare i relativi moduli irc e ftp.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: errore nf_conntrack nei log

Messaggio da conraid »

No che non mi servono, sicuramente erano frutto di prove di tempo fa (irc soprattutto, ftp non credo di averlo mai abilitato nei miei pc).

Grazie della spiegazione.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: errore nf_conntrack nei log

Messaggio da rik70 »

conraid ha scritto:No che non mi servono, sicuramente erano frutto di prove di tempo fa (irc soprattutto, ftp non credo di averlo mai abilitato nei miei pc).

Grazie della spiegazione.
P.s.
No, le porte non è necessario specificarle.

Faccio un esempio:

- aggiungo una regola che "rifiuta" in ingresso connessioni tcp NEW sulle porte ftp e ssl:

Codice: Seleziona tutto

iptables -v -A INPUT -p tcp -d 192.168.1.121 -m conntrack --ctstate NEW -m multiport --dports 21,22 -j REJECT --reject-with tcp-reset
- aggiungo la regola per l'helper ftp:

Codice: Seleziona tutto

iptables -v -A OUTPUT -t raw -p tcp -j CT --helper ftp
- ora un portscan su ssl e ftp che dovrebbe fare da "trigger":

Codice: Seleziona tutto

nmap -p 21,22 192.168.1.121
L'output di dmesg è "pulito".

Ora "pulisco" la catena OUTPUT della tabella raw:

Codice: Seleziona tutto

iptables -v -t raw -F OUTPUT
rifaccio il portscan

Codice: Seleziona tutto

nmap -p 21,22 192.168.1.121
e stavolta dmesg restituisce:

Codice: Seleziona tutto

[ 1117.815330] nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based  firewall rule not found. Use the iptables CT target to attach helpers instead.
:thumbright:
Ultima modifica di rik70 il sab 3 nov 2018, 14:15, modificato 1 volta in totale.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: errore nf_conntrack nei log

Messaggio da conraid »

E infatti dopo aver provato nmap eccolo

Codice: Seleziona tutto

# nmap -p 21,22 192.168.0.50
Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-03 13:55 CET
Nmap scan report for blankstar.home.local (192.168.0.50)
Host is up (0.00011s latency).

PORT   STATE  SERVICE
21/tcp closed ftp
22/tcp closed ssh

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

# dmesg
[...]
[18556.475117] nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based  firewall rule not found. Use the iptables CT target to attach helpers instead.
Ma mi serve in uscita? Tieni presente che in questa macchina ho solo ssh sulla 222 per la rete locale e niente altro aperto, tranne appunto qualche programma che ne ga bisogno all'occorrenza (amule, torrent, etc...). Anche il DNS che prima usavo per la rete locale ora non lo uso più, avendo solo il notebook.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: errore nf_conntrack nei log

Messaggio da rik70 »

Mah... secondo me, come dicevi anche tu, ti conviene non caricare i 2 moduli per l'helper irc e ftp visto che non te ne fai niente.

Edit:
Altrimenti questa regola che hai nel firewall

Codice: Seleziona tutto

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset 
ti fa da "trigger" ogni volta che per caso ricevi un pacchetto tcp con i flag specificati su porte ftp e/o irc - immagino eh, non prenderla per buona.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: errore nf_conntrack nei log

Messaggio da rik70 »

PP.SS.
rik70 ha scritto:Altrimenti questa regola che hai nel firewall

Codice: Seleziona tutto

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset
ti fa da "trigger" ogni volta che per caso ricevi un pacchetto tcp con i flag specificati su porte ftp e/o irc - immagino eh, non prenderla per buona.
Confermo:

Codice: Seleziona tutto

iptables -v -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW -j REJECT --reject-with tcp-reset

Codice: Seleziona tutto

iptables -v -t raw -A OUTPUT -p tcp -j CT --helper irc # nota: il comando carica in automatico il modulo nf_conntrack_irc
Siccome non ricordo quali sono le porte di default del protocollo irc, faccio:

Codice: Seleziona tutto

nmap -p 6000-7000 192.168.1.121
Vediamo:

Codice: Seleziona tutto

dmesg:
[...]
Eliminiamo la regola che assegna l'helper irc:

Codice: Seleziona tutto

iptables -v -t raw -D OUTPUT -p tcp -j CT --helper irc
Portscan di prima:

Codice: Seleziona tutto

nmap -p 6000-7000 192.168.1.121
dmesg:

Codice: Seleziona tutto

nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based  firewall rule not found. Use the iptables CT target to attach helpers instead.
A questo punto è svelato l'arcano :thumbright:

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: errore nf_conntrack nei log

Messaggio da conraid »

In prarica senza regole specifiche i moduli son di default disabilitati anche se caricati, e danno quel log?

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: errore nf_conntrack nei log

Messaggio da rik70 »

conraid ha scritto:In prarica senza regole specifiche i moduli son di default disabilitati anche se caricati, e danno quel log?
Sì, immagino che sia così.
In pratica, se i moduli helper sono caricati e c'è una regola nella tabella filter che utilizza l'estensione conntrack, questa può innescare l'assegnazione automatica dell'helper,
che però fallisce, essendo disabilitata di default.
A questo punto il log del kernel restituisce quell'errore/avviso che ci dice che dobbiamo farlo noi a mano, agendo nella tabella 'raw' come abbiamo visto sopra.

Rispondi