Ping: sendmsg: помилка операції не допущена після встановлення iptables в Arch GNU / Linux


15

Вчора я отримав новий комп’ютер як свій домашній сервер, HP Proliant Microserver. На ньому встановлено Arch Linux з версією ядра 3.2.12.

Після встановлення iptables (1.4.12.2 - поточна версія AFAIK) та зміни net.ipv4.ip_forwardключа на 1 та включення переадресації у файл конфігурації iptables (та перезавантаження) система не може використовувати жоден із своїх мережевих інтерфейсів. Пінг не вдається

Ping: sendmsg: operation not permitted

Якщо я повністю видаляю iptables, мережеві роботи добре, але мені потрібно поділитися з’єднанням з Інтернетом до локальної мережі.

eth0 - WAN інтегрований NIC на материнську плату (Broadcom NetXtreme BCM5723).

eth1 - lan NIC в слоті експрес-pci (гігабітна мережа Intel 82574L)

Оскільки він працює без iptables (сервер може отримати доступ до Інтернету, і я можу увійти за допомогою ssh з внутрішньої мережі), я припускаю, що це має щось спільне з iptables. У мене немає великого досвіду роботи з iptables, тому я використовував їх як довідкові (окремо один від одного, звичайно ...):

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

revsys.com/writings/quicktips/nat.html

howtoforge.com/nat_iptables

На своєму попередньому сервері я використовував посібник revsys, щоб налаштувати nat, працював як шарм.

Хтось раніше переживав щось подібне? Що я роблю неправильно?

Відповіді:


23

Повідомлення про помилку:

Ping: sendmsg: operation not permitted

означає, що вашому серверу заборонено надсилати пакети ICMP. Потрібно дозволити вашому серверу надсилати трафік через один або кілька налаштованих інтерфейсів. Ви можете зробити це:

  1. Встановіть OUTPUTполітику ланцюга, ACCEPTщоб дозволити весь вихідний трафік з вашого вікна:

    sudo iptables -P OUTPUT ACCEPT
    
  2. Встановіть OUTPUTполітику ланцюга на, DROPа потім дозвольте вибірково потрібний тип трафіку.

Це стосується всіх ланцюгів не тільки OUTPUTланцюга. INPUTланцюг контролює трафік, отриманий вашою коробкою. FORWARDланцюгові операції з трафіком, що передається через коробку


Пінг був лише прикладом, не міг надсилати udp-пакети, ані пакети tcp ...
estol

Незважаючи на те, що застосовується та ж ідея
Халед

Перепробував те, що ви сказали, такі самі результати. Отримав правила зі старого сервера, це частково працює. Будь-який клієнт може шукати доменні імена, навіть здатний їх просканувати, але не може переглядати Інтернет. Я встановив проксі як спосіб вирішення (оскільки з'єднання на сервері є нормальним, як і підключення до сервера), але багато сервісів не працює (Trillian, Skype) таким чином.
estol

Яка команда встановити політику вихідного ланцюга для прийняття ??
Йосиф Астрахан

4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Халед

2

Мені на Debian 9 це допомогло просто перевстановити ping:

apt-get install --reinstall iputils-ping 

Також працював над CentOS 7 (фактично оновлення пакета yum upgrade iputils.x86_64), після клонування "фізичної" операційної системи до VM - не впевнений, чи це має значення.
yahol
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.