Ping: sendmsg: błąd operacji niedozwolony po zainstalowaniu iptables na Arch GNU / Linux

15

Wczoraj dostałem nowy komputer jako mój serwer domowy, HP Proliant Microserver. Zainstalowałem na nim Arch Linux z jądrem w wersji 3.2.12.

Po zainstalowaniu iptables (1.4.12.2 - aktualna wersja AFAIK) i zmianie net.ipv4.ip_forwardklucza na 1 oraz włączeniu przekazywania w pliku konfiguracyjnym iptables (i ponownym uruchomieniu) system nie może używać żadnego z interfejsów sieciowych. Ping kończy się niepowodzeniem

Ping: sendmsg: operation not permitted

Jeśli całkowicie usunę iptables, praca w sieci będzie w porządku, ale muszę udostępnić połączenie internetowe sieci lokalnej.

karta sieciowa eth0 - wan zintegrowana z płytą główną (Broadcom NetXtreme BCM5723).

eth1 - lan NIC w gnieździe pci-express (Intel 82574L Gigabit Network)

Ponieważ działa bez iptables (serwer może uzyskać dostęp do Internetu, a ja mogę zalogować się za pomocą ssh z sieci wewnętrznej), zakładam, że ma to coś wspólnego z iptables. Nie mam dużego doświadczenia z iptables, więc wykorzystałem je jako odniesienie (oczywiście oddzielne od siebie ...):

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

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

Na poprzednim serwerze użyłem przewodnika revsys, aby skonfigurować nat, działało jak urok.

Czy ktoś wcześniej czegoś takiego doświadczył? Co ja robię źle?

estol
źródło

Odpowiedzi:

23

Komunikat o błędzie:

Ping: sendmsg: operation not permitted

oznacza, że ​​twój serwer nie może wysyłać pakietów ICMP. Musisz zezwolić swojemu serwerowi na wysyłanie ruchu przez jeden lub więcej skonfigurowanych interfejsów. Możesz to zrobić przez:

  1. Ustaw OUTPUTzasady łańcucha, aby ACCEPTzezwolić na cały ruch wychodzący z Twojego urządzenia:

    sudo iptables -P OUTPUT ACCEPT
    
  2. Ustaw OUTPUTzasady łańcucha na, DROPa następnie zezwalaj selektywnie na rodzaj potrzebnego ruchu.

Dotyczy to wszystkich łańcuchów, nie tylko OUTPUTłańcucha. INPUTłańcuch kontroluje ruch odbierany przez twoje urządzenie. FORWARDłańcuch zajmuje się ruchem przekazywanym przez skrzynkę.

Khaled
źródło
Ping był tylko przykładem, nie mógł wysyłać pakietów udp ani pakietów tcp ...
estol
Mimo to obowiązuje ten sam pomysł
Khaled
Próbowałem tego, co powiedziałeś, te same wyniki. Mam reguły ze starego serwera, to częściowo działa. Każdy klient może wyszukiwać nazwy domen, nawet je pingować, ale nie może przeglądać Internetu. Zainstalowałem proxy jako obejście (ponieważ połączenie na serwerze jest w porządku, podobnie jak połączenie z serwerem), ale wiele usług nie działa w ten sposób (Trillian, Skype).
estol
Jakie jest polecenie, aby ustawić zasady łańcucha wyjściowego na akceptację?
Joseph Astrahan
4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Khaled
2

Dla mnie w Debianie 9 pomógł mi tylko ponowna instalacja ping:

apt-get install --reinstall iputils-ping 
David Ferenczy Rogožan
źródło
Pracował również nad CentOS 7 (faktycznie aktualizacja pakietu yum upgrade iputils.x86_64), po klonowaniu „fizycznego” systemu operacyjnego na maszynę wirtualną - nie jestem pewien, czy to ma znaczenie.
yahol