openEuler或银河麒麟固定NFS端口和安全加固——筑梦之路

操作系统版本说明:

华为欧拉操作系统openEuler 22.03 lts

银河麒麟V10

这两个操作系统已经自带安装nfs-utils,虽然和centos  redhat  fedora红帽系列的操作系统都是使用yum包管理器,但是nfs-utils相关依赖有所区别,关于红帽系列的如何固定NFS服务的端口,请参考前面的博客文章:

CentOS 7 NFS服务搭建以及防火墙设置(服务 端口两种方式)——筑梦之路_筑梦之路的博客-CSDN博客_centos nfs 端口

NFS服务固定端口和安全加固——筑梦之路_筑梦之路的博客-CSDN博客_nfs服务端口

这里其实也是根据上面第二个博客来操作,由于是国产化操作系统适配,特别提出来,再次将过程步骤记录一下。

-------------------------------------------以下内容以openEuler为例,银河麒麟v10类似

# 查看nfs-utils是否已安装,未安装需要安装

rpm -qa | grep nfs

nfs-utils-help-2.5.4-4.oe2203.x86_64
nfs-utils-2.5.4-4.oe2203.x86_64

# 查看服务状态 和 默认监听的端口

systemctl status nfs rpcbind


rpcinfo -p


# 修改配置,固定NFS端口

vi  /etc/services
#添加注释
#mountd          20048/tcp               # NFS mount protocol
#mountd          20048/udp               # NFS mount protocol
#rquotad         875/tcp                         # rquota daemon
#rquotad         875/udp                         # rquota daemon

#添加自定义端口配置
rquotad         30001/tcp
rquotad         30001/udp
lockd           30002/tcp
lockd           30002/udp
mountd          30003/tcp
mountd          30003/udp
statd           30004/tcp
statd           30004/udp

# 重启服务,进行验证

systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
systemctl restart rpcbind

rpcinfo -p


# 以上还有随机端口,未修改到的则进行下一步

vi  /etc/nfs.conf

#在原来的标签下添加内容
[lockd]
port=30002
udp-port=30002
[statd]
port=30004

再次重启服务进行验证无误即可

 

 

关于华为欧拉操作系统和银河麒麟V10操作系统固定NFS端口方面的资料比较少,而相关社区也没有有用的解决方案,特此做个记录。

防火墙设置:

# 服务方式

# 让防火墙通过NFS服务
firewall-cmd --permanent --add-service=nfs  

# 通过rpc服务(如果不开启,rpcinfo就不能扫描)
firewall-cmd --permanent --add-service=rpc-bind  

# 通过mountd服务(如果不开启,不能远程showmount) 
firewall-cmd --permanent --add-service=mountd   
 
#重载
firewall-cmd --reload

# 端口方式

firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=2049/udp
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
 
firewall-cmd --permanent --add-port=30001-30004/tcp
firewall-cmd --permanent --add-port=30001-30004/udp
firewall-cmd --reload

# 安全加固 设置黑白名单
 
思路:通过系统白名单和nfs配置来进行加固
 
1.修改nfs配置
cat /etc/exports
 
data 192.168.47.0/255.255.255.0(rw,sync,no_root_squash)
 
此处表示允许192.168.47.0/24这个网段访问,其他不允许访问
 
#重载配置
exportfs -avr
 
2.添加访问白名单和黑名单
 
cat /etc/hosts.allow
 
mountd:192.168.47.
rpcbind:192.168.47.:allow
portmap:192.168.47.
lockd:192.168.47.
rquotad:192.168.47.
statd:192.168.47.
#本机
portmap:127.0.0.1
lockd:1127.0.0.1
rquotad:127.0.0.1
statd:127.0.0.1
mountd:127.0.0.1
rpcbind:127.0.0.1:allow
 
 
192.168.47. 表示此网段可访问
 
cat /etc/hosts.deny
 
mountd:ALL
rpcbind:ALL:deny
statd:ALL
portmap:ALL
lockd:ALL
rquotad:ALL
 
 
3.验证
 
192.168.47网段机器访问:
 
rpcinfo server-ip
 
showmount -e server-ip
 
192.168.10网段机器访问:
rpcinfo server-ip
 
showmount -e server-ip
 
此处获取不到nfs的信息,也不能挂载即成功加固
iptables版本的防火墙设置

#开放NFS端口111 2049 tcp/udp
iptables -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 111 -j ACCEPT
#NFS固定的其他端口30001-30004
iptables -A INPUT -p tcp -m tcp --dport 30001:30004 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 30001:30004 -j ACCEPT

------------------------------------

关于安全加固,使用黑白名单的方式,某些操作系统不生效的原因:

hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。

查看某服务(如ssh)是否应用了libwrapped库文件的方法是:

# ldd /usr/sbin/sshd |grep libwrap.so.0

参考资料:

hosts.allow、hosts.deny配置不生效的解决方法 - 码农教程

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/126756015#comments_26697831