У мене працює Ubuntu 11.10 - налаштування NFS для спільного використання каталогу серед багатьох інших серверів. Які порти потрібно відкрити на брандмауері?
У мене працює Ubuntu 11.10 - налаштування NFS для спільного використання каталогу серед багатьох інших серверів. Які порти потрібно відкрити на брандмауері?
Відповіді:
$ rpcinfo -p | grep nfs
Порт 111 (TCP і UDP) і 2049 (TCP і UDP) для сервера NFS.
Існують також порти для кластера та статусу клієнта (порт 1110 TCP для першого та 1110 UDP для другого), а також порт для менеджера блокування NFS (порт 4045 TCP та UDP). Тільки ви можете визначити, які порти потрібно дозволити, залежно від того, які сервіси потрібні перехресним шлюзом.
grep nfs, але я припинив греп, щоб дізнатися, що 111 для portmapper. Також добре знати! (і як ви вже згадали, необхідне)
На додаток до 111 для portmapper та 2049 для nfs, вам потрібно дозволити порт mountd та, можливо, rquotad, lockd та statd, і все це може бути динамічним. Цей чудовий посібник із безпеки NFS рекомендує змінити сценарії запуску та конфігурації модуля ядра, щоб змусити їх використовувати статичні порти.
На додаток до вище посібника, в якому є розділ про брандмауери , дивіться мою відповідь на інше запитання щодо загартовування NFS.
RPCMOUNTDOPTS="--port 34567"а потім перезапустіть sysctl --systemі/etc/init.d/nfs-kernel-server restart
На цій сторінці я знайшов корисні вказівки щодо своєї проблеми, але дотримуватися рецепту було нелегко. Отже ось мій рецепт.
TL; DR - потрібно дозволити як порти nfs (111, 2049), так і порт монтажу після виправлення.
Інструкції:
gksudo gedit /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=--manage-gidsRPCMOUNTDOPTS="--port 33333"Або будь-який інший номер порту.
тепер спробуйте скинути nfs за допомогою:
sudo service nfs-kernel-server restart
І перевірити, чи допомогло це використання:
rpcinfo -p | grep "tcp.*mountd"
Для мене цього було недостатньо, але повний перезапуск вирішив проблему.
( кредит )
(1) видаліть старі правила, зробіть це вручну або скиньте, якщо це єдине використання брандмауера:
sudo ufw reset
sudo ufw enable
(2) додати порти nfs & mountd
sudo ufw allow in from 10.0.0.1/20 to any port 111
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333
(Змініть місцеві IP-адреси або " any" замість 10.0.0.1/20)
Це все, що там є.
sudo service nfs-config restartперед перезапуском заповідника nfs-kernel-serverбуде добре.
systemctl, це systemctl restart nfs-kernel-server.service.
sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333далі (добре, дві набряклі петлі) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333. Примітка порту 33333 вказана на наведеному вище прикладі. Ви можете використовувати інший порт, як свідчить відповідь.
Це дасть список усіх портів, які використовуються всіма програмами, пов'язаними з NFS:
rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq
З FERM можна використовувати Backticks для отримання портів від rpcinfo, наприклад:
Сервер:
proto tcp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
Клієнт:
proto udp {saddr ($SERVER) {ACCEPT;}} # NFS
(Якщо ви збираєтесь використовувати лише TCP, тоді вам потрібна лише proto tcpчастина).
Для записів мені довелося додати дозволи для портів 111, 2049 І 1048 для конфігурації, коли доля NFS експортується сервером Windows 2008 R2, а клієнтами є Ubuntu 12.04.4.
Я сподіваюся, що це комусь допоможе.