Назад | Перейти на главную страницу

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

Вчера я получил новый компьютер в качестве домашнего сервера - 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-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, работало отлично.

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

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

Ping: sendmsg: operation not permitted

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

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

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

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

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

apt-get install --reinstall iputils-ping 

Если вы поддерживаете правильный набор iptables, вам необходимо разрешить исходящий пинг:

# Allow outgoing ping
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT