GNU/Linux >> Linux Esercitazione >  >> Linux

Procedura:Risoluzione dei problemi di base di IPtables

Introduzione

In questo articolo, discutiamo alcuni passaggi di base che puoi eseguire per risolvere i problemi che potresti riscontrare con l'esecuzione delle regole di iptables in modo che eseguano ciò che potresti desiderare che facciano.

Prerequisiti

Server che esegue CentOS 6.x (o qualsiasi distribuzione di Linux)

iptables installato e configurato (per la configurazione di base, vedere Configurazione file di base IPTables)

Risoluzione dei problemi di base di IPtables

Un'utile aggiunta alla creazione delle regole di iptables è l'impostazione della registrazione. La registrazione utilizza una destinazione speciale nella casella degli strumenti di iptables che invia l'output selezionato ai file di registro del sistema operativo (dmesg o systemd).

Sulla riga di comando:

sudo iptables -A INPUT -j LOG --log-prefix DROPPED-INGRESS-

Oppure, nel tuo file /etc/sysconfig/iptables:

Esempio di sintassi di registrazione

Decomprimiamo la sintassi:

* '-A INPUT ' aggiunge questa regola alla fine della catena INPUT. Ricorda, l'ordine delle regole è importante, quindi se inserisci questa regola dopo una regola che elimina o rifiuta il traffico, non verrà mai utilizzata. Maggiori informazioni su questo quando discutiamo del --log-prefix sotto.

* '-j LOG ' salta al LOG obbiettivo. Questo obiettivo è uno speciale chiamato obiettivo "non terminante". A differenza dei target più comunemente usati (come ACCEPT , DROP o REJECT ), questo non impedisce a iptables di analizzare ulteriori regole. Quindi, quando questa regola viene invocata, registra il pacchetto (e può eseguire opzioni aggiuntive, se specificate nelle opzioni successive), quindi continua a valutare le regole nella stessa catena fino a quando non raggiunge una regola di corrispondenza con una destinazione di terminazione o fino a quando supera l'ultima regola della catena e segue l'obiettivo predefinito.

* '--log-prefix DROPPED-INGRESS- ' aggiunge la stringa "DROPPED-INGRESS-" a ciascuna voce di registro. Questa aggiunta può essere utile per filtrare o cercare in un lungo file di registro. Il "--log-prefix L'opzione ” può richiedere una stringa di massimo 256 caratteri. Poiché questa regola è la regola finale in questo INPUT catena, questo registrerà qualsiasi pacchetto che non corrisponde a nessuna delle regole di cui sopra e verrà gestito con la politica predefinita (in questo caso, DROP ).

Se vuoi vedere quali delle tue regole vengono invocate (e, forse altrettanto importante, quali non lo sono), puoi dare un'occhiata ai tuoi contatori di pacchetti e di traffico. Usa '-v ‘ opzione per ‘iptables ' comando per mostrare i contatori (e anche alcune informazioni aggiuntive):

sudo iptables -vL INPUT

o

sudo iptables -nvL INPUT

L'output di uno di questi comandi verrà visualizzato sulle colonne di sinistra per i contatori di pacchetti e byte per ciascuna regola. Il '-L ' opzione indica che vogliamo che le regole siano elencate (nota che questa particolare opzione è in maiuscolo). Il '-n ' indica che non vogliamo risolvere gli IP nei loro nomi host (negli elenchi più lunghi questa risoluzione inversa dei nomi può causare un sovraccarico del server non necessario e rendere la risoluzione dei problemi fastidiosamente lenta). Puoi usare ogni flag separatamente (-n -v -L , es.) o insieme, come sopra, ma attenzione:la ‘L ' deve essere l'ultimo poiché cerca un ulteriore input sotto forma del nome della catena da elencare (se non viene specificato nulla, l'impostazione predefinita è elencare tutte le catene nella tabella dei filtri).

iptables -nvL INPUT Output

Nota qui che ho un pacchetto che soddisfa la mia regola ssh allow-all e diversi che colpiscono il primo allow RELATED/ESTABLISHED regola (questo corrisponderebbe alla mia sessione ssh in questo server). Posso anche vedere che le mie regole per consentire il traffico ssh dall'intervallo 192.168.50.0/24 non hanno risultati. Quindi, ad esempio, se qualcuno mi ha detto che non può accedere a questo server da quell'intervallo, potrei vedere che i suoi tentativi non sono nemmeno arrivati ​​a questo server.

È del tutto possibile che i contatori di byte dei pacchetti aumentino abbastanza in alto che i valori vengano abbreviati con una "K", "M" o anche "G" alla fine, corrispondenti rispettivamente a 1000, 1.000.000 o 1.000.000.000. Se desideri comunque visualizzare i conteggi non abbreviati, includi "-x ' bandiera:

sudo iptables -nvxL INPUT

Se preferisci non avere a che fare con numeri di conteggio grandi, puoi azzerare (zero) i tuoi conteggi con '-Z ' comando (di nuovo, nota che questo flag è in maiuscolo). Puoi azzerare i conteggi per tutte le catene, una catena specifica o per una riga specifica in una catena. Rispettivamente:

sudo iptables -Z
sudo iptables -Z INPUT
sudo iptables -Z INPUT 1

L'ultimo esempio azzererebbe solo i contatori per la riga numero 1 in INPUT catena.

I contatori verrebbero anche ripristinati ogni volta che ricarichi iptables (sia dal riavvio del server che dall'esecuzione del servizio sudo iptables reload). Tuttavia, questi non sono i modi ideali per portare a termine questo compito.

Potresti anche voler ottenere un esame più in tempo reale dei tuoi contatori iptables. Ecco dove il "watch Il comando ' è utile. 'Watch ' ci permette di ripetere gli stessi comandi e di guardare l'output ogni tanto (l'impostazione predefinita è ogni 2 secondi).

sudo watch iptables -nvL INPUT

Mentre 'watch ' stesso non richiede l'accesso sudo, se il comando che guarderai lo fa, puoi anteporre 'sudo ‘ a ‘watch ' comando per avere il privilegio di root per il comando che desideri guardare. Inoltre, se desideri reindirizzare l'output guardato tramite qualcosa come "grep ', ti consigliamo di mettere l'intera stringa di comando tra virgolette singole:

sudo watch 'iptables -nvL INPUT | grep tcp'

Per uscire da "watch ', premere <Ctrl-C> .

Scopri di più sui nostri servizi di hosting VPS e sui server privati ​​virtuali.


Linux
  1. Come svuotare le regole di iptables

  2. Come svuotare le regole di iptables

  3. Linux – Routing tramite Iptables?

  4. CentOS / RHEL 6:come salvare le regole di iptables

  5. Come aprire la porta in Linux

Come installare Iptables su CentOS 7

Come configurare iptables Firewall in Linux

Procedura:Linux Generale – IPTable di base tramite riga di comando

Procedura:Configurazione di base del file IPTables

Come configurare un Firewall su Jelastic Cloud

Come migrare le regole di CentOS/RHEL 6 iptables su CentOS/RHEL 7 firewalld