На нашем подчиненном сервере NIS у нас есть /etc/sysconfig/network
Я установил
YPSERV_ARGS="-p 944"
YPXFRD_ARGS="-p 945"
и OTHER_YPBIND_OPTS="-p 3000"
в /etc/ypbind.conf
и YPPASSWDD_ARGS="--port 946"
в /etc/sysconfig/yppasswdd
Но на главном сервере при запуске make -C /var/yp
и отладка включена на firewalld, порт назначения (DPT) всегда меняется. Это всегда UDP.
kernel: FINAL_REJECT: IN=eno3 OUT= MAC=00:0a:f7:e1:f8:6c:00:0a:f7:e1:d3:71:08:00 SRC=nis-slave DST=nis-master LEN=76 TOS=0x00 PREC=0x00 TTL=64 ID=59404 DF PROTO=UDP SPT=1003 DPT=676 LEN=56
Также в новом /etc/nfs.conf
у нас есть:
[lockd]
port=4002
udp-port=4002
[mountd]
port=4003
[nfsd]
port=2049
port=4001
outgoing-port=4004
И журналы на подчиненном сервере показывают: ypxfr_callback call: RPC: Unable to receive; errno = No route to host
Остановка firewalld и все хорошо. Так какой сервис использует UDP?
Древние YP / NIS совсем не дружелюбны к брандмауэрам. Он буквально предшествует широкому использованию межсетевых экранов хоста. Как вы заметили, он ожидает, что сможет связываться с произвольными портами. Большинство протоколов за последние 20 лет больше этого не делают и работают на предсказуемых (или, по крайней мере, настраиваемых) портах.
В качестве обходного пути, если у вас есть только один IP-адрес, вы можете просто добавить его в trusted
зона в firewalld, и весь трафик с этого IP-адреса будет разрешен. (Источники также могут быть заданы диапазоном CIDR или MAC-адресом.)
firewall-cmd --zone=trusted --add-source=10.193.35.1 [--permanent]
согласны с тем, что НИС древний, не используйте его, если в этом нет необходимости.
Для NFS вот пример, который я беру из SLES 11.4 /etc/sysconfig/nfs
Имейте в виду, что все может немного отличаться, учитывая версию NFS и дистрибутив Linux, который вы используете. Но номера портов, которые вам нужно открыть в брандмауэре, как минимум MOUNTD_PORT
и SM_NOTIFY_OPTIONS
и STATD_PORT
и LOCKD_TCPPORT
и LOCKD_UDPPORT
в дополнение к портам для службы NFS, которые обычно 111 и 2049 для TCP и UDP.
для custom_number_1
к custom_number_4
используйте что-то выше 1024, все ниже 1024 - зарезервировано для привилегированных услуг. Очевидно, вы не хотите выбирать число, которое конфликтует с какой-либо другой службой, диапазон 1024..9999, который вы можете использовать, но в качестве личного предпочтения я установил значение выше 10 000. Диапазон> = 49152 считается динамический диапазон я не думаю, что вам следует выбирать; что произойдет, если вы не настроите NFS (скажите, что использовать), тогда он будет выбирать их динамически, и это будет какой-то номер порта> = 49152 и каждый раз будет другим, потому что он динамичный... и почему у вас могут возникнуть проблемы, потому что брандмауэр будет блокировать все эти порты, и вы никогда не узнаете, что они будут из-за того, что NFS выбирает их динамически.
тот динамический выбор номеров портов, который вы описываете для NIS, одна и та же сделка; служба не была полностью настроена, поэтому вещи, которые были оставлены пустыми или заданы по умолчанию или выбирались динамически = каждый раз по-разному = нет возможности правильно настроить или использовать брандмауэр.
## Path: Network/File systems/NFS server
## Description: number of threads for kernel nfs server
## Type: integer
## Default: 4
## ServiceRestart: nfsserver
#
# the kernel nfs-server supports multiple server threads
#
USE_KERNEL_NFSD_NUMBER="4"
## Path: Network/File systems/NFS server
## Description: use fixed port number for mountd
## Type: integer
## Default: ""
## ServiceRestart: nfsserver
#
# Only set this if you want to start mountd on a fixed
# port instead of the port assigned by rpc. Only for use
# to export nfs-filesystems through firewalls.
#
MOUNTD_PORT="custom_number_1"
## Path: Network/File systems/NFS server
## Description: GSS security for NFS
## Type: yesno
## Default: yes
## ServiceRestart: nfs nfsserver
#
# Enable RPCSEC_GSS security for NFS (yes/no)
#
NFS_SECURITY_GSS="no"
## Path: Network/File systems/NFS server
## Description: NFSv4 protocol support
## Type: yesno
## Default: yes
## ServiceRestart: nfs nfsserver
#
# Enable NFSv4 support (yes/no)
#
NFS4_SUPPORT="no"
## Path: Network/File systems/NFS server
## Description: NFSv4 server minor version
## Type: integer
## Default: 0
## ServiceRestart: nfsserver
#
# Select NFSv4 minor version for server to support (0, 1).
# If '1' is selected, both NFSv4.0 and NFSv4.1 will be supported.
NFS4_SERVER_MINOR_VERSION="0"
## Path: Network/File systems/NFS server
## Description: Network Status Monitor options
## Type: string
## Default: ""
#
# If a fixed port should be used to send reboot notification
# messages to other systems, that port should be given
# here as "-p portnumber".
#
SM_NOTIFY_OPTIONS="-p custom_number_2"
## Path: Network/File systems/NFS server
## Description: Always start NFS services
## Type: yesno
## Default: no
## ServiceRestart nfs
#
# Always start NFS services (gssd, idmapd), not only if
# there are nfs mounts in /etc/fstab. This is likely to be
# needed if you use an automounter for NFS.
#
NFS_START_SERVICES=""
## Path: Network/File systems/NFS server
## Description: Port rpc.statd should listen on
## Type: integer
## Default: ""
## ServiceRestart: nfsserver
#
# Statd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
STATD_PORT="custom_number_3"
## Path: Network/File systems/NFS server
## Description: Hostname used by rpc.statd
## Type: string
## Default: ""
## ServiceRestart: nfsserver
#
# statd will normally use the system hostname in status
# monitoring conversations with other hosts. If a different
# host name should be used, as can be useful with fail-over
# configurations, that name should be given here.
#
STATD_HOSTNAME=""
## Path: Network/File systems/NFS server
## Description: TCP Port that lockd should listen on
## Type: integer
## Default: ""
## ServiceRestart: nfsserver
#
# Lockd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
# lockd opens a UDP and a TCP port. This setting only affect
# the TCP port.
LOCKD_TCPPORT="custom_number_4"
## Path: Network/File systems/NFS server
## Description: UDP Port that lockd should listen on
## Type: integer
## Default: ""
## ServiceRestart: nfsserver
#
# Lockd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
# lockd opens a UDP and a TCP port. This setting only affect
# the UDP port.
LOCKD_UDPPORT="custom_number_4"
## Path: Network/File systems/NFS server
## Description: Lease time for NFSv4 leases
## Type: integer
## Default: ""
#
# Set the lease time for the NFSv4 server. This allows new locks
# to be taken sooner after a server restart, so it is useful for
# servers which need to recover quickly after a failure, particularly
# in fail-over configurations. Reducing the lease time can be a
# problem is some clients connect over high latency networks.
# The default is 90 seconds. A number like 15 might be appropriate
# in a fail-over configuration with all clients on well connected
# low latency links.
NFSV4LEASETIME=""
## Path: Network/File systems/NFS server
## Description: Alternate mount point for rpc_pipefs filesystem
## Type: string
## Default: ""
#
# In a high-availabilty configuration it is possible that /var/lib/nfs
# is redirected so some shared storage and so it is not convenient to
# mount the rpc_pipefs filesystem at /var/lib/nfs/rpc_pipefs. In that
# case an alternate mount point can be given here.
RPC_PIPEFS_DIR=""
## Path: Network/File systems/NFS server
## Description: Options for svcgssd
## Type: string
## Default: ""
#
# Normally svcgssd does not require any option. However in a
# high-availabilty configuration it can be useful to pass "-n"
# to guide the choice of default credential. To allow for that
# case or any other requiring options ot svcgssd, they can
# be specified here.
SVCGSSD_OPTIONS=""
## Path: Network/File systems/NFS server
## Description: Extra options for nfsd
## Type: string
## Default: ""
#
# This setting allows extra options to be specified for NFSD, such as
# -H <shared_hostname> in a high-availability configuration.
NFSD_OPTIONS=""
## Path: Network/File systems/NFS server
## Description: Extra options for gssd
## Type: string
## Default: ""
#
# Normally gssd does not require any options. In some circumstances,
# -n, -l or other options might be useful. See "man 8 rpc.gssd" for
# details. Those options can be set here.
GSSD_OPTIONS=""
## Path: Network/File systems/NFS server
## Description: Extra options for mountd
## Type: string
## Default: ""
#
# Normally mountd does not require any options. In some circumstances,
# -n, -t, -g or other options might be useful. See "man 8 rpc.mountd" for
# details. Those options can be set here.
# -p or -N should be set using MOUNTD_PORT or NFS4_SUPPORT rather than
# this option.
MOUNTD_OPTIONS=""
## Path: Network/File systems/NFS server
## Description: Avoid DNS lookups for kerberos principal
## Type: yesno
## Default: no
## ServiceRestart: gssd
#
# Avoid DNS lookups when determining kerberos identity
# of NFS server (yes/no)
# "yes" is safest, but "no" might be needed to preserve
# correct behaviour at sites that don't use
# Fully Qualified Domain Names when mounting NFS Shares.
#
NFS_GSSD_AVOID_DNS="no"