在我们的从 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 地址给出。)同意NIS是古老的,如果没有必要就不要使用它。
对于NFS,这里是我从 SLES 11.4 中获取的一个示例。
/etc/sysconfig/nfs
请注意,鉴于您使用的 NFS 版本和 linux 发行版,情况可能会略有不同。但是您需要在防火墙中打开的端口号至少是MOUNTD_PORT
andSM_NOTIFY_OPTIONS
andSTATD_PORT
and andLOCKD_TCPPORT
以及LOCKD_UDPPORT
NFS 服务的端口(对于 TCP 和 UDP 通常是 111 和 2049)。为了
custom_number_1
使用custom_number_4
高于 1024 的值,低于 1024 的任何值都保留用于特权服务。您不想选择与其他服务明显冲突的数字,您可以使用范围 1024..9999,但作为个人喜好,我将我的设置设置为 10,000 以上。范围 >= 49152 是我认为您不应该选择的动态范围;如果您不配置 NFS(告诉它要使用什么)会发生什么情况,然后它会动态选择它们,它将是一些端口号 >= 49152 并且每次都会有所不同,因为它是动态的......以及为什么你会遇到问题,因为防火墙将阻止所有这些端口,并且您永远不会知道它们会是什么,因为 NFS 会动态选择它们。您为 NIS 描述的端口号的动态选择,同样的处理;该服务未完全配置,因此保留为空白或默认或动态选择的内容=每次都不同=无法正确配置或使用防火墙。