[NFS] разрешаем nfs на ipfw

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

[NFS] разрешаем nfs на ipfw

Непрочитанное сообщение Gloft » 2008-12-13 21:28:57

На сервере FreeBSD 7.0-RELEASE
Он же маршрутизатор, он же nfs сервер, он же фаервол.
Никак немогу заставить работать nfs.
В конфиге ipfw правила записаны до правил nat-а.

Код: Выделить всё

#  nfsd
${FwCMD} add allow tcp from any to ${IpIn} 2049 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 2049 via ${LanIn}
# portmapper
${FwCMD} add allow tcp from any to ${IpIn} 111 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 111 via ${LanIn}
# mount
${FwCMD} add allow tcp from any to ${IpIn} 745,747 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 745,747 via ${LanIn}
Если смотреть по ipfw show, то колличество пакетов
по ним практически нет, только на порт 111 и все.
На всякий случай приведу все правила.
Правло "все для всех" тоже не помогает.
Точно знаю что из-за nat-а.

Код: Выделить всё

#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="em1"
LanIn="em0"
IpOut="Х.Х.Х.Х"
IpIn="Р.Р.Р.Р"
NetMask="24"
NetIn="Р.Р.Р.Р"

# Сбрасываем все правила
${FwCMD} -f flush

# проверяем соответствует ли пакет динамическим правилам
#${FwCMD} add check-state

# закрываем дыры и уязвимости
${FwCMD} add deny tcp from any to any 135,445

# разрешаем трафик через внутренний интнрфейс
${FwCMD} add allow ip from any to any via lo0

#  nfsd
${FwCMD} add allow tcp from any to ${IpIn} 2049 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 2049 via ${LanIn}
# portmapper
${FwCMD} add allow tcp from any to ${IpIn} 111 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 111 via ${LanIn}
# mount
${FwCMD} add allow tcp from any to ${IpIn} 745,747 via ${LanIn}
${FwCMD} add allow udp from any to ${IpIn} 745,747 via ${LanIn}

# запрещаем ssh через внешний интерефейс
${FwCMD} add deny tcp from any to ${IpOut} 22 via ${LanOut}

# запрещаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}

# запрещаем широковещательные пакеты
${FwCMD} add deny icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny icmp from any to 255.255.255.255 out via ${LanOut}

# перенаправляем весь трафик через NAT
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

${FwCMD} add allow ip from any to any

${FwCMD} add deny ip from any to any

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: [NFS] разрешаем nfs на ipfw

Непрочитанное сообщение f_andrey » 2008-12-13 21:58:19

Gloft писал(а):На сервере FreeBSD 7.0-RELEASE
Он же маршрутизатор, он же nfs сервер, он же фаервол.
Никак немогу заставить работать nfs.
может стоит открыть еше

Код: Выделить всё

nfsd-status     1110/tcp   #Cluster status info
nfsd-keepalive  1110/udp   #Client status info
ну или поглядеть в лог что там ему еше надо, логи собственно для этого и пишутся :oops:
да кстати думаю

Код: Выделить всё

${FwCMD} add allow ip from any to any
только в целях отладки, иначе у вас выйдет скорее всего решето.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: [NFS] разрешаем nfs на ipfw

Непрочитанное сообщение Gloft » 2008-12-14 0:37:37

Да пробовал и эти порты, результат тотже.
Тоесть никакого.
По ним ни одно правило не срабатывает.
Логи смотрел.
На клиенте, при монтировании пишет ошибки по тайм ауту.
На сервере все в /var/log/messages пусто.
С предпоследним правилом все должно работать в любом случае.
Но ожидания не оправдываются.
Вот только при исключении правил с натом все начинает работать в соответствии с политикой фаервола.
Если ставить первым правилом

Код: Выделить всё

${FwCMD} add allow ip from any to any via ${LanIn}
То это преблему не решает, а если его заменить на

Код: Выделить всё

${FwCMD} add allow ip from any to any
то все работает.
Я совсем запутался.

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: [NFS] разрешаем nfs на ipfw

Непрочитанное сообщение zingel » 2008-12-15 10:07:38

Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
hodok
мл. сержант
Сообщения: 125
Зарегистрирован: 2008-08-29 8:32:02
Откуда: Саратовская область
Контактная информация:

Re: [NFS] разрешаем nfs на ipfw

Непрочитанное сообщение hodok » 2008-12-17 13:08:25

Когда столкнулся с проблемой nfs на ipfw то для тестирования написал вот такие правила:

Код: Выделить всё

${FwCMD} add 301 allow udp from any to any 2049 via ${LanOut}
${FwCMD} add 302 allow tcp from any to any 2049 via ${LanOut}
${FwCMD} add 303 allow udp from any to any 3333 via ${LanOut}
${FwCMD} add 304 allow tcp from any to any 3333 via ${LanOut}
${FwCMD} add 305 allow udp from any to any 111 via ${LanOut}
${FwCMD} add 306 allow tcp from any to any 111 via ${LanOut}
${FwCMD} add 307 allow udp from any to any 747 via ${LanOut}
${FwCMD} add 308 allow tcp from any to any 745 via ${LanOut}
Машина имеет один интерфейс, запуск nfs сервера прописан в rc.conf:

Код: Выделить всё

portmap_enable="YES"
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -n 4"
#nfs_reserved_port_only="YES"
mountd_flags="-r -p 3333"
По результатам ipfw show оставил только следующие:

Код: Выделить всё

${FwCMD} add 301 allow udp from any to any 2049 via ${LanOut}
${FwCMD} add 303 allow udp from any to any 3333 via ${LanOut}
${FwCMD} add 304 allow tcp from any to any 3333 via ${LanOut}
${FwCMD} add 305 allow udp from any to any 111 via ${LanOut}
по остальным портам ничего не ходит.
Может это конечно не безопасно, но все находится в стадии тестирования. Пытаюсь найти оптимальный вариант.

Fluoresziert
проходил мимо

[NFS] разрешаем nfs на ipfw

Непрочитанное сообщение Fluoresziert » 2022-05-06 11:46:05

И вот спустя много лет, наконец-то правильный ответ: nfs сервер использует UDP порт 111 для ответа. Соответственно клиенту в правилах файиервола необходимо разрешить это входящее соединение. Конкретно для ipfw это выглядит так:

ipfw -q add 10000 allow udp from any 111 to me in via ${wanif}
разрешить все входячие UDP с любых IP, с порта 111, на все мои порты, на всех IP интерфейсах, которые висят на железяке/vlan'е ${wanif}

Соответственно клиенту должны быть разрешены исходящие соединения

ipfw -q add 9999 allow ip from ${wanip} to any out via ${wanif}
разрешить все исходящие протоколы, с моего конкретного IP интерфейса ${wanip} который висит на железяке/vlan ${wanif}, на любые IP, любые порты

После этого клиент сможет примонтировать NFS шару.