openEuler\银河麒麟\UOS等国产操作系统固定NFS端口和安全加固——筑梦之路

操作系统版本说明:

华为欧拉操作系统openEuler 22.03 lts

银河麒麟V10

这里以这两个操作系统为例,其他国产操作系统类似,比如UOS。

这两个操作系统已经自带安装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

上面两张截图也说明了为何在银河麒麟系统下使用黑白名单的方式不生效,因此需要使用其他方法进行安全加固。

# 使用防火墙进行安全加固

# 比如有3台主机 192.168.100.100-192.168.100.102允许访问NFS 192.168.100.103不允许访问
# 这里使用富规则

# 第一步 开放NFS端口 

firewall-cmd --permanent --zone=public --add-port=111/tcp
firewall-cmd --permanent --zone=public --add-port=2049/tcp
firewall-cmd --permanent --zone=public --add-port=20001-20004/tcp
firewall-cmd --permanent --zone=public --add-port=111/udp
firewall-cmd --permanent --zone=public --add-port=2049/udp
firewall-cmd --permanent --zone=public --add-port=20001-20004/udp

# 第二步 添加富规则


firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="111" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.101" port protocol="tcp" port="111" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.102" port protocol="tcp" port="111" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="2049" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.101" port protocol="tcp" port="2049" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.102" port protocol="tcp" port="2049" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="tcp" port="20001-20004" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.101" port protocol="tcp" port="20001-20004" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.102" port protocol="tcp" port="20001-20004" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="udp" port="111" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="udp" port="2049" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.100" port protocol="udp" port="20001-20004" accept'

其他两台类似

# 拒绝103访问

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="tcp" port="111" reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="tcp" port="2049" reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="tcp" port="20001-20004" reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="udp" port="111" reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="udp" port="2049" reject'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.100.103" port protocol="udp" port="20001-20004" reject'

firewall-cmd --reload

参考资料:

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

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
要在Linux电脑上安装银河麒麟(Deepin)和通信UOS(Ubuntu Kylin)双系统,可以按照以下步骤进行操作: 1. 准备安装介质:下载银河麒麟和通信UOS的安装镜像文件(ISO文件),可以从官方网站下载。 2. 创建启动盘:使用一个空白的USB闪存驱动器,使用工具(如Rufus、Etcher等)将银河麒麟和通信UOS的ISO文件写入USB驱动器,创建可供启动的安装介质。 3. 调整分区:在Linux电脑上,如果已经有一个操作系统(如Windows)安装在硬盘上,需要调整硬盘上的分区来为新的系统腾出空间。可以使用磁盘管理工具(如GParted)来调整分区。 4. 启动安装:将创建好的启动盘插入电脑,并重新启动电脑。在启动时,按下相应的按键(通常是F12、F10、F2等)进入引导菜单,选择从USB启动。 5. 安装银河麒麟:按照银河麒麟的安装向导进行操作,选择合适的语言、时区、键盘布局等选项,并指定要安装的分区。按照提示完成安装过程。 6. 安装通信UOS:重启电脑,再次进入启动盘。按照通信UOS的安装向导进行操作,选择合适的选项,并指定要安装的分区。按照提示完成安装过程。 7. 完成双系统安装:安装完通信UOS后,双系统安装就完成了。在重启电脑时,会显示一个引导菜单,让您选择要启动的操作系统。 请注意,在进行双系统安装之前,请务必备份重要的数据,并确保已经理解和熟悉了双系统安装的风险和注意事项。此外,具体的操作步骤可能会因不同的硬件和软件配置而有所差异,可以参考相应的官方文档或社区资源来获取更详细的指导。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值