(/ etc / sysconfig / iptables) “La personalizzazione manuale di questo file non è consigliata.” Perché?


20

Modifica questo file direttamente

/etc/sysconfig/iptables 

può risparmiarmi così tanti mal di testa così tanto tempo e così via ...

eppure in cima al file dice ..

Manual customization of this file is not recommended.

ecco il '/ etc / sysconfig / iptables' appena arrivato con un nuovissimo server cloud centos 6.4.

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

per aprire la porta 80 posso semplicemente clonare la linea ..

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

e quindi cambiare "22" in "80", quindi salvare questo file e riavviare l'intero sistema.

questo aprirà la porta 80 per me.

questa è un'operazione piuttosto semplice. eppure il file dice che la modifica manuale non è consigliata.

perché dovrei seguire il consiglio?

Risposte:


18

Perché lo strumento chiamato system-config-firewall(o è fratello basato su ncurses system-config-firewall-tui) gestisce questo file. Ogni volta che usi questo strumento per creare nuove regole iptables, lo sovrascriverà /etc/sysconfig/iptables.

Manpage correlata: 28.1.16. / etc / sysconfig / iptables-config

Questo è il motivo per cui non è raccomandato, ma non è proibito . Il modo migliore per salvare le tue regole usando CentOS o qualsiasi altra EL versione 6 è usare il servizio iptables dopo aver aggiunto alcune regole in memoria:

# service iptables save

Domanda correlata: Perché iptables non recupera informazioni da / etc / sysconfig / iptables su centOs?

Motivi per non modificare questo file ( /etc/sysconfig/iptables) direttamente:

  • Perché è un file generato automaticamente. Il suo contenuto proviene dallo script / daemon /etc/init.d/iptables.
  • Alcune azioni come il ripristino o l'arresto del demone iptables possono provocare la perdita di dati, poiché sovrascriveranno il file. Variabili interessanti su questo argomento: IPTABLES_SAVE_ON_STOP=""e IPTABLES_SAVE_ON_RESTART=""all'interno del /etc/sysconfig/iptables-configfile. Forse, la regolazione di questi renderà /etc/init.d/iptablespersistenti le tue modifiche .
  • Perché la documentazione lo diceva. Red Hat avvisa che questo è il metodo migliore per utilizzare la propria infrastruttura firewall.

Una soluzione alternativa a questa "sovrascrittura delle regole del mio firewall" mindf *** è quella di disabilitare totalmente quegli script e fare affidamento su un metodo personalizzato di gestione del firewall, come quello esposto dai goldilock .


Questo suona più come un argomento contro il mix e la corrispondenza modificando direttamente il file e aggiungendo regole usando lo system-config-firewallstrumento. Puoi espandere il motivo per cui è male modificare il file al posto di usare lo strumento?
Michelle,

Aggiunte informazioni aggiuntive. Grazie per la punta @Michelle

8

eppure in cima al file dice ..

Hmmm, è strano. Nella parte superiore della mia dice:

# Manual customization of this file is strongly encouraged.

Qualcuno deve averlo cambiato;) E in effetti lo ha persino spostato in /etc/sysconfigmodo da non essere "auto-personalizzato" dal gestore dei pacchetti o altro;);)

Penso che il punto qui in generale con tali file di configurazione sia se non sai cosa stai facendo, non farlo. A volte c'è anche l'avvertimento che il file viene sovrascritto occasionalmente dal sistema. Questo potrebbe essere il gestore dei pacchetti sugli aggiornamenti, anche se a volte il PM noterà che un file è stato modificato manualmente e non lo sovrascriverà, o ne salverà una copia, ecc. E potrebbe essere qualche altro strumento responsabile di questa configurazione in particolare (vedi la risposta di nwildner ).

Parte del "sapere cosa stai facendo" è essere consapevoli di angoli come questo. Ho anche personalizzato il servizio init per iptables in modo da utilizzare una posizione diversa per il file di configurazione e, cosa più importante: sono l'unico che usa questo computer.

Presumendo che ci siano altre persone con accesso root, non lo farei su un server di cui sono responsabile, a meno che non ci fosse una ragione migliore di "Preferisco così", perché probabilmente causerà confusione e farà venire il mal di testa a qualcun altro ad un certo punto. Ma se sei l'unico utente e nessun altro dipende dal sistema, allora sei libero di fare quello che vuoi. Il mio "metodo preferito" per la configurazione del firewall è simile al seguente:

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currentviene creato all'avvio copiando /etc/iptables(che il servizio iptables è configurato per caricare inizialmente). In questo modo posso modificare le cose al volo mantenendo un punto di riferimento da cui parte il sistema.

Il che ci porta a un punto importante, se vuoi scherzare con le configurazioni che contengono questo tipo di avviso: crea sempre prima una copia di backup dell'originale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.