Linux NFS服务&samba&ftp

NFS介绍

network file system 网络文件系统,将文件共享给其他客户端挂载使用

nfs只能做linux之间的共享

特点

(1)提供透明文件访问以及文件传输

(2)容易扩充新的资源或软件,不需要改变现有的工作环境

(3) 高性能,可灵活配置

安装配置

安装软件: nfs-utils.x86_64 1:1.3.0-0.68.el7.2

配置文件: /etc/exports

启动服务: systemctl restart rpcbind;systemctl start nfs

端口: 2049

[root@nfsserver ~]# mkdir /nfs_dir

[root@nfsserver ~]# echo 123 > /nfs_dir/aa.txt

[root@nfsserver ~]# vim /etc/exports

/nfs_dir *(ro) # * 所有主机; ro read only

/nfs_dir 192.168.206.0/24(ro)     #授权网段

/nfs_dir 192.168.206.10/24(ro)    #授权ip

/nfs_dir 192.168.206.10/24(ro) 172.17.206.0/24(rw)   #授权ip和网段


[root@nfsserver ~]# systemctl restart rpcbind

[root@nfsserver ~]# systemctl restart nfs

客户端:

[root@client ~]# showmount -e 192.168.206.20 查看服务端共目录
Export list for 192.168.206.20:
/nfsdir *

[root@client ~]# yum install nfs-utils

[root@client ~]# mount -t nfs 192.168.206.20:/nfs_dir/ /mnt

[root@client mnt]# cat /mnt/aa.txt

123

客户端可以读写

方法1:

客户端可以读写
方法1:
[root@nfsserver ~]# vim /etc/exports
/nfs_dir *(rw)

[root@client ~]# touch /mnt/bb.txt
touch: 无法创建"/mnt/bb.txt": 权限不够



[root@nfsserver ~]# chmod o+w /nfs_dir/


[root@client ~]# touch /mnt/bb.txt

方法2:

[root@nfsserver ~]# vim /etc/exports

/nfs_dir *(rw,no_root_squash,sync)

#no_root_squash 挂载没有root用户身份切换

#sync 同步写 async 异步写

二.NAS

1) vim /etc/rc.local

[root@client ~]# mount -t nfs 192.168.206.20:/nfs_dir /mnt/



2)[root@client ~]# vim /etc/fstab

192.168.206.20:/nfs_dir /mnt nfs defaults 0 0



3).[root@client ~]# vim /etc/auto.master

/nfsdir /etc/auto.nfsdir

[root@client ~]# vim /etc/auto.nfsdir

test -fstype=nfs 192.168.206.20:/nfs_dir

二.samba

samba既可以linux之间,有linux给windows提供存储

软件安装: samba.x86_64 0:4.10.16-15.el7_9.rpm   #yum install -y samba

samba-client.x86_64 0:4.10.16-15.el7_9.rpm

配置文件: /etc/samba/smb.conf

启动服务: systemctl restart smb

匿名方式共享

[root@smbserver ~]# vim /etc/samba/smb.conf
security = user

security = user
map to guest = bad user  #匿名访问

[smb_dir]   
        comment = test smb  #描述 共享目录作用
        path = /smb_dir #真实共享路径
        writable = yes   #是否可写
        browseable = yes    #是否可见
        public = yes #公共共享
        guest ok = yes   #来宾用户

[root@smbserver ~]# mkdir /smb_dir

[root@smbserver ~]# systemctl restart smb

客户端

[root@smbclient ~]#  yum install -y samba-client

[root@smbclient ~]# smbclient -L //192.168.10.250
Enter SAMBA\root's password:   #匿名登陆没有密码直接回车就行
Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        smb_dir         Disk      test smb
        IPC$            IPC       IPC Service (Samba 4.10.16)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

登录

[root@smbclient ~]# smbclient //192.168.206.20/smb_dir
Enter SAMBA\root's password:   #无密码直接回车
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Mon Nov 22 10:35:30 2021
  ..                                  D        0  Mon Nov 22 10:35:30 2021

                17811456 blocks of size 1024. 14982044 blocks available





不能写.添加权限
[root@smbserver ~]# chmod o+w /smb_dir/

客户端挂载:

[root@nfsserver ~]# yum install cifs-utils
[root@nfsserver ~]# mount -t cifs //192.168.10.250/smb_dir /mnt

windows
地址栏:  \\192.168.206.20

用户方式共享:

[user_dir]

comment = test smb user

path = /user_dir

writable = yes

valid users = robin tong @test



[root@smbserver ~]# mkdir /user_dir

[root@smbserver ~]# chmod o+w /user_dir/

[root@smbserver ~]# systemctl restart smb

[root@smbserver ~]# useradd robin

[root@smbserver ~]# useradd zorro

[root@smbserver ~]# smbpasswd -a robin

[root@smbserver ~]# smbpasswd -a zorro 添加samba用户

[root@smbserver ~]# smbpasswd -x zorro 删除samba用户

查询smb用户

[root@smbserver ~]# pdbedit -L

robin:1000:

tong:1003:

测试:

查询

[root@smbclient ~]# smbclient -L //192.168.10.250

[root@smbclient ~]# smbclient -U robin%123 //192.168.10.250/user_dir

[root@smbclient ~]# mount -o username=robin,password=123 //192.168.10.250/user_dir /mnt/

robin可写,tong和test组成员只读

[user_dir]

comment = test smb user

path = /user_dir

write list = robin

valid users = robin tong @test

robin只读,tong和test组成员读写

[user_dir]

comment = test smb user

path = /user_dir

writable = yes

read list = robin

valid users = robin tong @test

自动挂载

一.3种方式挂载smb 匿名 和 user模式

1) vim /etc/rc.local

mount -t cifs -o username=boss,password=123 //192.168.206.20/hr /mnt/

2)[root@client /]# vim /etc/fstab

//192.168.206.20/hr /mnt cifs username=king,password=123 0 0

3)[root@client /]# vim /etc/auto.master

/smb /etc/auto.smb

[root@client /]# vim /etc/auto.smbdir

test -fstype=cifs,username=king,password=123 ://192.168.206.20/hr

三.ftp

ftp: file transfer protocol 文件传输协议

vsftpd: 服务名

lftp: 客户端名

软件安装: vsftpd-3.0.2-29.el7_9.x86_64.rpm

lftp-4.4.8-12.el7_8.1.x86_64.rpm

配置文件: /etc/vsftpd/vsftpd.conf

启动服务: systemctl restart vsftpd

端口: 被动模式 21 随机端口 端口模式: 21 20

服务器数据目录: /var/ftp/ (该目录全必须是755)

匿名模式

[root@nfsserver ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 匿名模式开启

write_enable=YES 可以写

anon_upload_enable=YES 允许上传

anon_mkdir_write_enable=YES 允许创建

anon_umask=022 允许上传文件下载

anon_max_rate=20000 限制现在速度20KB

anon_root=/ftp #更改数据目录




mkdir /ftp
mkdir /ftp/pub
chmod o+x /ftp/pub
[root@nfsserver ~]# lftp 192.168.206.20
lftp 192.168.206.20:~> ls
-rw-r--r--    1 0        0            2307 Aug 19 06:16 passwd
drwxr-xr-x    2 0        0               6 Jun 09 16:15 pub
lftp 192.168.206.20:/> get passwd   #下载文件
2307 bytes transferred
lftp 192.168.206.20:/> mirror pub/  #下载目录
Total: 1 directory, 0 files, 0 symlinks
lftp 192.168.206.20:~> lcd /tmp/   #本地系统切换目录
lftp 192.168.206.20:/> cd pub
lftp 192.168.206.20:/pub> put /root/distroy.sh   #上传文件
lftp 192.168.206.20:/pub> mirror -R /boot/ #上传目录
lftp 192.168.206.20:/> exit

用户模式

[root@nfsserver ~]# useradd luci

[root@nfsserver ~]# useradd tong

[root@nfsserver ~]# passwd luci

[root@nfsserver ~]# passwd tong



[root@nfsserver ~]# lftp -u luci,123 192.168.206.20

[root@nfsserver ~]# lftp -u tong,123 192.168.206.20



[root@client ftp]# vim /etc/vsftpd/vsftpd.conf

local_enable=YES

write_enable=YES

local_umask=022

local_max_rate=40000

local_root = #修改本地用户登录位置

不允许本地用户随意切换目录

[root@client ftp]# vim /etc/vsftpd/vsftpd.conf

allow_writeable_chroot=YES #允许可以写的情况下 开启chroot

chroot_local_user=YES #限制所有用户都不能切换到其他目录



chroot_list_enable=YES #白名单

chroot_list_file=/etc/vsftpd/chroot_list 写入该列表的用户可以切换目录



[root@client ftp]# vim /etc/vsftpd/vsftpd.conf

allow_writeable_chroot=YES #允许可以写的情况下 开启chroot

chroot_local_user=NO #不限制用户都不能切换到其他目录



chroot_list_enable=YES #黑名单

chroot_list_file=/etc/vsftpd/chroot_list 写入该列表的用户不可以切换目录

控制用户登录

写入该文件的用户不能登录ftp

[root@client ~]# vim /etc/vsftpd/ftpusers



登录的黑白名单

黑名单

userlist_enable=YES

userlist_deny=YES



/etc/vsftpd/user_list 写入该文件用户不能登录



白名单

userlist_enable=YES

userlist_deny=NO



/etc/vsftpd/user_list 写入该文件用户可以登录,否则不能登录

vsftpd的工作模式

端口模式:21: 控制端口 控制客户端与服务器建立连接    20:数据端口  建立连接后传输数据

Linux NFS服务&samba&ftpLinux NFS服务&samba&ftp

 

默认: 服务器两种模式都是开放的,由客户端选择链接模式

客户端配置文件:/etc/lftp.conf

set ftp:passive-mode off 主动模式

set ftp:passive-mode on 被动模式 默认注释 默认被动

虚拟帐号:

1.建立用户数据库文件

vim /etc/vsftpd/vipuser.txt

user111

pass111

user222

pass222

2.安装数据库转换工具

yum install libdb-utils

db_load -T -t hash -f /etc/vsftpd/vipuser.txt /etc/vsftpd/vsftpd_vipuser.db

如果需要添加先账号 需要重新转换用户文件

3.建立验证模式文件

# mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# vim /etc/pam.d/vsftpd

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vipuser

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vipuser

4.建立一个所有虚拟用户使用的系统用户

# useradd -d /home/vsftp virtual

# chmod 755 /home/vsftp

5.修改配置文件启用虚拟用户

[root@client ~]# vim /etc/vsftpd/vsftpd.conf

guest_enable=YES # 开启虚拟用户功能

guest_username=virtual # 指定虚拟用户使用的系统用户

pam_service_name=vsftpd # 以/etc/pam.d/验证模式文件名相同

[root@client ~]# systemctl restart vsftpd

客户端测试登陆

lftp -u user111,pass111 192.168。206.20

lftp -u user222,pass222 192.168.206.20

为虚拟用户设置不同权限

方法一.

虚拟用户使用与本地用户相同权限

virtual_use_local_privs=YES

虚拟用户使用与匿名用户相同权限

virtual_use_local_privs=NO

方法二.

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftp_user_conf

mkdir /etc/vsftpd/vsftp_user_conf

[root@client nfs]# cat /etc/vsftpd/vsftp_user_conf/user111

write_enable=NO

local_max_rate=20000

local_root=/nfs

[root@client nfs]# cat /etc/vsftpd/vsftp_user_conf/user222

local_max_rate=100000

local_root=/nfs

 

上一篇:FileZilla 搭建FTP服务器服务端和客户端


下一篇:靶机简单渗透测试