Ping: sendmsg: errore dell'operazione non consentita dopo l'installazione di iptables su Arch GNU / Linux


15

Ieri ho ricevuto un nuovo computer come server di casa, un HP Proliant Microserver. Arch Linux installato su di esso, con la versione del kernel 3.2.12.

Dopo aver installato iptables (1.4.12.2 - la versione corrente AFAIK) e aver cambiato la net.ipv4.ip_forwardchiave in 1, e aver abilitato l'inoltro nel file di configurazione di iptables (e il riavvio), il sistema non può usare nessuna delle sue interfacce di rete. Il ping fallisce con

Ping: sendmsg: operation not permitted

Se rimuovo completamente iptables, la rete va bene, ma devo condividere la connessione Internet con la rete locale.

eth0 : scheda di rete integrata integrata sulla scheda madre (Broadcom NetXtreme BCM5723).

eth1 - NIC lan in uno slot pci-express (Intel 82574L Gigabit Network)

Dal momento che funziona senza iptables (il server può accedere a Internet e posso accedere con ssh dalla rete interna), presumo abbia a che fare con iptables. Non ho molta esperienza con iptables, quindi li ho usati come riferimento (ovviamente separati l'uno dall'altro ...):

wiki.archlinux.org/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

Sul mio server precedente, ho usato la guida revsys per configurare nat, ha funzionato come un incantesimo.

Qualcuno ha mai provato qualcosa del genere prima? Che cosa sto facendo di sbagliato?

Risposte:


23

Il messaggio di errore:

Ping: sendmsg: operation not permitted

significa che al tuo server non è consentito inviare pacchetti ICMP. È necessario consentire al server di inviare il traffico tramite una o più interfacce configurate. Puoi farlo tramite:

  1. Imposta i OUTPUTcriteri della catena su ACCEPTper consentire tutto il traffico in uscita dalla tua casella:

    sudo iptables -P OUTPUT ACCEPT
    
  2. Impostare il OUTPUTcriterio catena su DROPe quindi consentire in modo selettivo il tipo di traffico necessario.

Questo vale per tutte le catene, non solo per la OUTPUTcatena. INPUTchain controlla il traffico ricevuto dalla tua casella. FORWARDla catena si occupa del traffico inoltrato attraverso la casella.


Il ping era solo un esempio, non poteva inviare pacchetti udp, né pacchetti tcp ...
estol

Anche se si applica la stessa idea
Khaled,

Ho provato quello che hai detto, stessi risultati. Ottenuto le regole dal vecchio server, questo funziona parzialmente. Qualsiasi client può cercare nomi di dominio, anche in grado di eseguirne il ping, ma non può navigare sul Web. Ho installato un proxy come soluzione alternativa (poiché la connessione sul server va bene, proprio come la connessione al server) ma molti servizi non funzionano (Trillian, Skype) in questo modo.
estolo

Qual è il comando per impostare la politica della catena di output in modo che accetti ??
Joseph Astrahan,

4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Khaled

2

Per me, su Debian 9, mi ha aiutato solo a reinstallare ping:

apt-get install --reinstall iputils-ping 

Ha funzionato anche su CentOS 7 (aggiornamento del pacchetto in realtà yum upgrade iputils.x86_64), dopo aver clonato il sistema operativo "fisico" su una VM - non sono sicuro che sia importante.
yahol
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.