GNU/Linux >> Linux Esercitazione >  >> Linux

Procedura:Linux generale – IPtables in generale

Introduzione

IPTables è un firewall che è già installato o può essere installato su una qualsiasi delle nostre distribuzioni Linux per il nostro servizio Cloud. IPTables viene utilizzato per configurare catene di regole di filtro pacchetti e applicare le catene di regole integrate o definite dall'utente per il server. IPTables ha componenti principali che coinvolgono Tabelle , Obiettivi e Opzioni .

Tabelle

Le tabelle in IPTables vengono utilizzate per separare i pacchetti nella loro categoria corrispondente. L'ordinamento delle tabelle dipende dai moduli caricati dal sistema e da dove corrisponde il pacchetto. Al momento, ci sono cinque tabelle distinte da utilizzare. Sono filtro , nativo , mangiare , grezzo e sicurezza . Per la maggior parte, l'uso di base di IPTables coinvolgerà solo il filtro tavolo. Se stai eseguendo un routing interno o una rete più complicata, ti concentrerai sull'utilizzo anche delle altre tabelle. Questa pagina passerà solo al filtro tipo regole.

filtro – Questa è la tabella di base come è stato menzionato ed è in genere la tabella predefinita. Questa tabella è composta dalle catene di regole ACCEPT, FORWARD, OUTPUT.

nat – Questa tabella viene utilizzata per i pacchetti che creeranno nuove connessioni. Come instradare un IP pubblico su un IP privato. È costituito dalle catene di regole PREROUTING, POSTROUTING e OUTPUT.

mangiare – Questa tabella viene utilizzata per modificare il modo in cui vengono gestiti i pacchetti. È costituito dalle catene di regole INPUT, FORWARD, OUTPUT, PREROUTING e POSTROUTING.

grezzo – Questa tabella viene utilizzata per configurare le esenzioni dal rilevamento della connessione con la destinazione NOTRACK. Si compone di PREROUTING e OUTPUT.

sicurezza – Questa tabella è per le regole MAC (Mandatory Access Control). È composto da INGRESSO, AVANTI e USCITA

Obiettivi

Gli obiettivi sono definiti come il valore per la catena di regole che stai creando. Possono contenere i valori ACCETTO , DROP , CODA o RESO . Questi valori indicano alla regola come procedere con un pacchetto che corrisponde alla regola.

ACCETTO – Questo è abbastanza semplice e significa consentire il passaggio del pacchetto al tuo server.

DROP – Anche abbastanza semplice in quanto significa negare il pacchetto al tuo server.

CODA – Questo obiettivo significa passare il pacchetto nello spazio utente in modo che un utente possa definire cosa farne.

RITORNO – Questo target interrompe l'elaborazione della catena corrente e le dice di riprendere l'elaborazione alla regola successiva della catena precedente.

Opzioni

Ci sono un sacco di opzioni disponibili per l'uso di IPTables. Elencheremo alcuni dei più comuni che vedrai.

-A, –append – Aggiunge la tua regola a una catena.

-L, –list [catena] – Questo elencherà tutte le regole nella catena che hai specificato. Se non fornisci una catena, elencherà tutte le regole.

-F, –flush [catena] – Questo rimuoverà tutte le catene e le regole nella catena data. Se non fornisci una catena, verranno rimosse tutte le regole e le catene attualmente in esecuzione.

-h – Questo fornisce un output di tutte le opzioni che puoi fare.

-p, –protocollo protocollo – Questo è il protocollo dei pacchetti. Questi possono essere TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, tutti, numeri equivalenti a questi o iniziare con un ! per invertire il controllo del protocollo.

-s, –indirizzo di origine[/mask][,…] – Un indirizzo di origine. Può essere l'IP, l'intervallo IP tramite netmask, il nome di rete o il nome host.

-d, –indirizzo di destinazione[/mask][,…] – Un indirizzo di destinazione. Stesso formato di –s.

-m, –match match – Un modulo di estensione che verifica una proprietà.

–dport[s] [port# ][,…] – Un porto che stai cercando. –dports viene utilizzato per specificare più di uno separato da virgola. Quando usi –dports assicurati di impostare -m come multiporta. Per specificare un intervallo di porte, utilizza un :come 1000:1100 che sarebbero le porte 1000-1100.

-j, –jump target – Questa è l'opzione che ti permette di specificare il target per la tua regola.

-i, –in-interface name – Specifica un'interfaccia su cui deve essere ricevuto il pacchetto.

-o, –out-interface name – Specifica un'interfaccia su cui il pacchetto lascerà.

-v, –verbose – Fa in modo che il comando list mostri i nomi delle interfacce, le opzioni delle regole e tutte le maschere. Mostra anche i contatori di pacchetti e byte.

Utilizzo ed esempi

Qui mostreremo alcuni usi ed esempi di base. Una tipica regola di IPTables tenderà a seguire questi formati. Assicurati che tutte le tue regole siano state eseguite sopra COMMIT poiché viene utilizzato per terminare un tavolo. Le regole per un altro tavolo seguiranno la loro fine COMMIT.

Per consentire il traffico stabilito:

-A INGRESSO -m corrispondenza –state ESTABLISHED,RELATED -j ACCEPT

In uso questo sarebbe:

-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

Per consentire porte specifiche.

-A INPUT -p protocollo -m corrispondenza –dport porta -j ACCETTO

In uso, un esempio potrebbe essere:

-A INGRESSO -p tcp -m tcp –dport 80 -j ACCEPT

Oppure

-A INPUT -p tcp -m multiporta –dports 80,443 -j ACCEPT

Ciò consentirebbe il traffico web attraverso la porta 80 (nel secondo esempio, anche la porta 443). Non è tutto ciò che puoi fare. Puoi anche aggiungere quanto segue come negli esempi seguenti.

-A INGRESSO -s IPADDR -p tcp -m tcp –dport 22 -j ACCETTO

Ciò consente solo l'indirizzo IP (IPADDR ) che specifichi tramite la tua porta 22 (ssh.) Puoi utilizzare qualsiasi forma di indirizzo IP consentita dall'opzione -s.

-A INGRESSO -p tcp -m tcp –dport 22 -j DROP

Seguendo il passo con l'esempio sopra, questo eliminerà tutto il traffico TCP che viaggia verso la tua porta SSH. È una buona regola empirica avere sempre le regole DROP in fondo all'elenco delle regole ACCEPT nella catena. Ad esempio:

-A INGRESSO … -j ACCETTA

-A INGRESSO … -j ACCETTA

-A INGRESSO … -j ACCETTA

-A INGRESSO … -j DISCESA

-A AVANTI … -j ACCETTO

-A AVANTI … -j ACCETTO

-A AVANTI … -j ACCETTO

-A AVANTI… -j CADUTA

-A USCITA … -j ACCETTA

-A USCITA … -j ACCETTA

-A USCITA … -j ACCETTA

-A USCITA … -j DROP

Puoi anche definire gli obiettivi (come ACCEPT o DROP) nella parte superiore delle tue IPTables per il comportamento predefinito. Quando si tratta di una nuova installazione di IPTables, vedi sempre il comportamento predefinito (definito nella parte superiore dove elenca INPUT, FORWARD e OUTPUT) come ACCEPT. Una buona regola pratica per la sicurezza è cambiarla in DROP e creare regole solo per le porte o il traffico che si desidera consentire. Cambialo solo se sei sicuro di aver fatto le eccezioni di cui hai bisogno.

Inoltre, in cima a una tabella, puoi definire i tuoi obiettivi. Supponiamo che tu abbia quanto segue nella parte superiore di IPTables:

*filtro

:CADUTA INGRESSO [0:0]

:FORWARD DROP [0:0]

:CADUTA USCITA [0:0]

IMPEGNA

Ora, poiché abbiamo bloccato tutto, iniziamo con l'aggiunta dei nostri obiettivi come:

*filtro

:CADUTA INGRESSO [0:0]

:FORWARD DROP [0:0]

:CADUTA USCITA [0:0]

:APP – [0:0]

:MyNewTarget – [0:0]

IMPEGNA

Ora puoi creare una catena di regole di tipo personalizzato come quella di seguito.

*filtro

:CADUTA INGRESSO [0:0]

:FORWARD DROP [0:0]

:CADUTA USCITA [0:0]

:APP – [0:0]

:MyNewTarget – [0:0]

-A APP -p tcp -m multiporta –dports 30:40,50:80 -j ACCEPT

-A INGRESSO -s IPADDR -j Il mio nuovo obiettivo

-A MyNewTarget -j APP

IMPEGNA

Ora quello che abbiamo fatto in precedenza è creare nuovi target, APP e MyNewTarget e assegnare loro opzioni e target. Quello che fa l'ultima regola (sopra COMMIT), è se la connessione proviene dal tuo IP di origine e sta tentando di raggiungere le porte 30-40 o 50-80, consentilo! È tutto definito nella catena sopra. Questo livello di personalizzazione non è veramente necessario a meno che tu non stia utilizzando più host o utilizzi porte che ti ritrovi a ripetere e desideri più una scorciatoia o una "scorciatoia" per scrivere le regole. Ad esempio, qualsiasi nuova regola di cui hai bisogno proveniente da quell'IP di origine, ora puoi semplicemente utilizzare MyNewTarget.

Tutto sommato, IPTables fornisce molta personalizzazione delle regole e ti consente di gestire il modo in cui il tuo server gestisce il traffico in entrata, in uscita e interno. Alcune regole possono essere confuse e difficili da seguire, ma non c'è dubbio sull'utilità che forniscono alla stabilità del server.


Linux
  1. Come usare BusyBox su Linux

  2. Come installare Python su Linux

  3. Come uso cron in Linux

  4. Linux – Routing tramite Iptables?

  5. Come aprire la porta in Linux

Come installare PSAD su Ubuntu Linux

Come configurare iptables Firewall in Linux

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

Procedura:Risoluzione dei problemi di base di IPtables

Come proteggere un firewall Linux con le regole IPtables

Come configurare un firewall sul tuo server Linux