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, работало как шарм.

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

Ответы:


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) после клонирования «физической» операционной системы на виртуальную машину - не уверен, имеет ли это значение.
Яхол
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.