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?

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ę.


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 

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.