Ping: sendmsg: Operation nicht erlaubt Fehler nach der Installation von iptables unter Arch GNU / Linux

15

Gestern habe ich einen neuen Computer als Heimserver bekommen, einen HP Proliant Microserver. Installierte Arch Linux mit der Kernel-Version 3.2.12.

Nach der Installation von iptables (1.4.12.2 - die aktuelle Version AFAIK) und dem Ändern des net.ipv4.ip_forwardSchlüssels auf 1 und dem Aktivieren der Weiterleitung in der iptables-Konfigurationsdatei (und dem Neustart) kann das System keine seiner Netzwerkschnittstellen verwenden. Ping schlägt fehl mit

Ping: sendmsg: operation not permitted

Wenn ich iptables vollständig entferne, ist das Netzwerk in Ordnung, aber ich muss die Internetverbindung für das lokale Netzwerk freigeben.

eth0 - wan NIC auf dem Motherboard integriert (Broadcom NetXtreme BCM5723).

eth1 - LAN-NIC in einem PCI-Express-Steckplatz (Intel 82574L Gigabit Network)

Da es ohne iptables funktioniert (der Server kann auf das Internet zugreifen und ich kann mich mit ssh aus dem internen Netzwerk anmelden), gehe ich davon aus, dass es etwas mit iptables zu tun hat. Ich habe nicht viel Erfahrung mit iptables, also habe ich diese als Referenz verwendet (natürlich voneinander getrennt ...):

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

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

Auf meinem vorherigen Server habe ich die revsys-Anleitung verwendet, um nat einzurichten, und es hat wie ein Zauber funktioniert.

Hat jemand so etwas schon einmal erlebt? Was mache ich falsch?

estol
quelle

Antworten:

23

Die Fehlermeldung:

Ping: sendmsg: operation not permitted

bedeutet, dass Ihr Server keine ICMP-Pakete senden darf. Sie müssen Ihrem Server erlauben, Datenverkehr über eine oder mehrere der konfigurierten Schnittstellen zu senden. Sie können dies tun, indem Sie:

  1. Stellen Sie die OUTPUTKettenrichtlinie so ein, ACCEPTdass der gesamte ausgehende Datenverkehr von Ihrer Box zugelassen wird:

    sudo iptables -P OUTPUT ACCEPT
    
  2. Setzen Sie die OUTPUTKettenrichtlinie auf DROPund erlauben Sie dann selektiv die Art des Verkehrs, den Sie benötigen.

Dies gilt für alle Ketten, nicht nur für die OUTPUTKette. INPUTchain steuert den von Ihrer Box empfangenen Datenverkehr. FORWARDchain befasst sich mit dem durch die Box weitergeleiteten Verkehr.

Khaled
quelle
Ping war nur ein beispiel, konnte weder udp-
pakete
Auch wenn die gleiche Idee gilt
Khaled
Versuchte, was du gesagt hast, die gleichen Ergebnisse. Bekam die Regeln vom alten Server, das funktioniert teilweise. Jeder Client kann nach Domain-Namen suchen, sie sogar pingen, aber nicht im Web surfen. Ich habe einen Proxy als Workaround installiert (da die Verbindung auf dem Server in Ordnung ist, genau wie die Verbindung zum Server), aber viele Dienste funktionieren auf diese Weise nicht (Trillian, Skype).
Estol
Was ist der Befehl, um die Ausgabekettenrichtlinie auf Akzeptanz zu setzen?
Joseph
4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Khaled
1

Für mich unter Debian 9 hat es nur geholfen, Folgendes neu zu installieren ping:

apt-get install --reinstall iputils-ping 
Dawid Ferenczy Rogožan
quelle