Разрешить подключаться NFS-клиентам на сервере, закрытом PF

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1088
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Разрешить подключаться NFS-клиентам на сервере, закрытом PF

Непрочитанное сообщение iZEN » 2009-01-05 23:56:38

На серере запущен PF, и его основное правило гласит:
"Блокировать всё, что не разрешено":

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

block in on $int_if
На сервер запущен демон NFS и расшарены каталоги.
Клиенты не могут подключится по NFS к серверу, пока не уберёшь основную блокировку в PF.
Какие разрешающие правила нужно написать в pf.conf, чтобы клиенты могли делать:
* пинг сервера;
* подключать расшаренные каталоги по NFS.

Кто решил эту проблему для основного правила блокировки всего, что не разрешено, отпишитесь.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Хостинговая компания 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/


Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1088
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Re: Разрешить подключаться NFS-клиентам на сервере, закрытом PF

Непрочитанное сообщение iZEN » 2009-01-07 14:43:42

Ага. Сделал.

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

int_if="nfe0"
serveraddr="192.168.1.2"
# нормализовать все пакеты
scrub in all
#scrub in no-df
# блокировать всё, что не разрешено
block in on $int_if
int_net="192.168.1.0/16"
table <nfs> const { 192.168.1.33, 192.168.1.25, $int_net }
pass quick on lo0 all
# разрешить входящий ICMP (ping)
pass in on $int_if inet proto icmp all icmp-type 8 code 0
# разрешить исходящие соединения
pass out on $int_if proto { tcp, udp, icmp } all keep state
# разрешить запросы к серверу SSH откуда угодно
pass in on $int_if proto tcp from any to $int_if port ssh
# разрешить запросы к серверу POP3 только из локальной сети
pass in on $int_if proto tcp from $int_net to $int_if port pop3
# разрешить запросы к серверу SMTP
pass in on $int_if proto tcp from any to $int_if port smtp
# разрешить запросы к серверу HTTP/HTTPS
pass in on $int_if proto tcp from any to $int_if port { http, https }
# разрешить запросы к серверу DNS
pass in on $int_if proto { tcp, udp } from any to $int_if port domain
# разрешить запросы к серверу NFS и RPCBIND
pass in on $int_if proto { tcp, udp } from <nfs> to port { nfsd, rpcbind } modulate state
# mountd_flags="-p 883" в /etc/rc.conf
pass in on $int_if proto { tcp, udp } from <nfs> to port 883 modulate state
# rpc_lockd_flags="-p 884" в /etc/rc.conf
pass in on $int_if proto { tcp, udp } from <nfs> to port 884 modulate state
# rpc_statd_flags="-p 885" в /etc/rc.conf
pass in on $int_if proto { tcp, udp } from <nfs> to port 885 modulate state
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix