Ping: sendmsg: операция не разрешена, ошибка после установки iptables в Arch GNU / Linux

15

Вчера в качестве домашнего сервера я получил новый компьютер - микросервер HP Proliant. На нем установлен 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, встроенная в материнскую плату (Broadcom NetXtreme BCM5723).

eth1 - сетевой адаптер в слоте pci-express (Intel 82574L Gigabit Network)

Поскольку он работает без 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, работало как шарм.

Кто-нибудь испытывал что-то подобное раньше? Что я делаю неправильно?

ESTOL
источник

Ответы:

23

Сообщение об ошибке:

Ping: sendmsg: operation not permitted

означает, что вашему серверу не разрешено отправлять ICMP-пакеты. Вам необходимо разрешить серверу отправлять трафик через один или несколько настроенных интерфейсов. Вы можете сделать это:

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

    sudo iptables -P OUTPUT ACCEPT
    
  2. Установите OUTPUTполитику цепочки DROPи затем разрешите выборочно тип трафика, который вам нужен.

Это относится ко всем цепям, а не только к OUTPUTцепочке. INPUTЦепочка контролирует трафик, полученный вашей коробкой. FORWARDЦепочка занимается трафиком, перенаправленным через ящик.

Халед
источник
Ping был просто примером, не мог отправлять пакеты udp или tcp ...
estol
Хотя та же самая идея применима
Халед
Пробовал, что вы сказали, те же результаты. Получил правила со старого сервера, это частично работает. Любой клиент может искать доменные имена, даже может пинговать их, но не может просматривать веб-страницы. В качестве обходного пути я установил прокси-сервер (так как соединение с сервером в порядке, как и соединение с сервером), но многие службы не работают (Trillian, Skype) таким образом.
Эстол
Какую команду установить политику цепочки вывода для принятия ??
Джозеф Астрахань
4
@JosephAstrahan:sudo iptables -P OUTPUT ACCEPT
Халед
2

Мне, на Debian 9, это помогло просто переустановить ping:

apt-get install --reinstall iputils-ping 
Давид Ференци Рогожан
источник
Также работал на CentOS 7 (собственно обновление пакета yum upgrade iputils.x86_64) после клонирования «физической» операционной системы на виртуальную машину - не уверен, имеет ли это значение.
Яхол