Nie znalazłem na ten temat dokumentu, więc zacznijmy jeden.
Na hoście CentOS 7.1 przejrzałem Linuksconfig HOW-TO , w tym firewall-cmd
wpisy, i mam system plików do eksportu.
[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
interfaces: enp5s0
sources: 192.168.10.0/24
services: dhcpv6-client ipp-client mdns ssh
ports: 2049/tcp
masquerade: no
forward-ports:
rich rules:
[root@<server> ~]# showmount -e localhost
Export list for localhost:
/export/home/<user> *.localdomain
Jednak jeśli jestem showmount
od klienta, nadal mam problem.
[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Skąd mam pewność, że jest to problem z zaporą? Łatwo. Wyłącz zaporę ogniową. Po stronie serwera:
[root@<server> ~]# systemctl stop firewalld
A po stronie klienta:
[root@<client> ~]# showmount -e <server>.localdomain
Export list for <server>.localdomain:
/export/home/<server> *.localdomain
Uruchom ponownie zaporę ogniową. Po stronie serwera:
[root@<server> ~]# systemctl start firewalld
A po stronie klienta:
[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
Chodźmy do miasta, dostosowując polecenia iptables z serwera NH RHEL 6 - JAK ...
[root@ ~]# firewall-cmd \
> --add-port=111/tcp \
> --add-port=111/udp \
> --add-port=892/tcp \
> --add-port=892/udp \
> --add-port=875/tcp \
> --add-port=875/udp \
> --add-port=662/tcp \
> --add-port=662/udp \
> --add-port=32769/udp \
> --add-port=32803/tcp
success
[root@<server> ~]# firewall-cmd \
> --add-port=111/tcp \
> --add-port=111/udp \
> --add-port=892/tcp \
> --add-port=892/udp \
> --add-port=875/tcp \
> --add-port=875/udp \
> --add-port=662/tcp \
> --add-port=662/udp \
> --add-port=32769/udp \
> --add-port=32803/tcp \
> --permanent
success
[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
interfaces: enp5s0
sources: 192.168.0.0/24
services: dhcpv6-client ipp-client mdns ssh
ports: 32803/tcp 662/udp 662/tcp 111/udp 875/udp 32769/udp 875/tcp 892/udp 2049/tcp 892/tcp 111/tcp
masquerade: no
forward-ports:
rich rules:
Tym razem otrzymuję nieco inny komunikat o błędzie od klienta:
[root@<client> ~]# showmount -e <server>.localdomain
rpc mount export: RPC: Unable to receive; errno = No route to host
Wiem, że jestem na dobrej drodze. To powiedziawszy, dlaczego nigdzie nie mogę znaleźć ostatecznego samouczka na ten temat? Nie mogłem być pierwszą osobą, która to wymyśliła!
Jakie firewall-cmd
wpisy mi brakuje?
Och, jeszcze jedna uwaga. Moje /etc/sysconfig/nfs
pliki na kliencie CentOS 6 i serwerze CentOS 7 są jak dotąd niezmodyfikowane. Wolałbym nie zmieniać ich (i utrzymywać!), Jeśli to w ogóle możliwe.
systemctl enable rpcbind
isystemctl start rpcbind
, firewall-cmd powiedział miError: INVALID_SERVICE: rpcbind
. Wkrótce zdałem sobie sprawę, że w tym kontekście potrzebuje odrobiny! Czy to naprawdę ta sama usługa?Po skonfigurowaniu serwera NFS powinniśmy włączyć i uruchomić trzy usługi:
A także zezwól na te usługi w zaporze serwera:
źródło
Właśnie to znalazłem - i działa, gdy problem polega na tym, że SELinux blokuje odczyt ~ / .ssh / uprawniony_ kluczy podczas logowania! Po pierwsze, upewnij się, że plik ~ / .ssh / Author_keys jest poprawnie wypełniony, a jego uprawnienia i uprawnienia do folderu są ustawione poprawnie. Jeśli następnie uruchomisz „setenforce 0” na docelowym hoście SSH i jesteś w stanie zalogować się na tym hoście bez podawania hasła, ale nie możesz tego zrobić po wprowadzeniu „setenforce 1” na tym samym hoście docelowym, następujące problemy mogą rozwiązać problem:
ref: https://cassjohnston.wordpress.com/2015/06/12/selinux-nfs-home-directories/
źródło
Używam nfsv4 i działa dobrze z tymi liniami, zakładając, że twoja strefa jest „publiczna” i używasz domyślnych portów 2049 i 4001
źródło