栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux就该这么学第18天(vsftpd、tftp、samba)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux就该这么学第18天(vsftpd、tftp、samba)


【第18天】
vsftpd----very secure ftp
dnf install vsftpd
主配置文件:/etc/vsftjpd/vsftpd.conf

umask-----反掩码 文件–666 目录—777

端口号:21–控制端口 20–传输数据
三种验证模式:
1、匿名公开模式
使用的目录:/var/ftp
anonymous_enable=YES
anon_uamsk=022
anon_upload_enable=YES---------上传文件权限
anon_mkdir_write_enable=YES--------新建文件权限
anon_other_write_enable=YES------其他的写入权限(复制,粘贴,剪切)
1)匿名公开使用的目录:/var/ftp
chmod -R 777 /var/ftp
2)SElinux:
getsebool -a | grep ftp
setsebool -P ftpd_anon_write=on
setsebool -P ftpd_full_access=on
2、本地用户模式:
使用的目录:本地用户的家目录
local_enable=YES
local_uamsk=022
write_enable=YES

禁止名单:/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
userlist_deny=YES
userlist_enable=YES
pam_service_name=vsftpd

3、虚拟用户模式:
使用的目录:映射用户的家目录

anonymous_enable=NO 禁止匿名开放模式
local_enable=YES 允许本地用户模式
guest_enable=YES 开启虚拟用户模式
guest_username=virtual 指定虚拟用户账户
pam_service_name=vsftpd.vu 指定PAM文件
allow_writeable_chroot=YES 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求(牢笼机制)
user_config_dir=/etc/vsftpd/vuser_dir-----针对不同的虚拟用户设置不同的权限
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim lisi---------为空则使用虚拟用户的默认权限(啥都没)

为什么能访问本机用户与密码?
pam模块:—可插拔式认证模块
应用程序通过pam提供的api可访问鉴别模块层

新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

创建虚拟用户:
vim /etc/vsftpd/vuser.list
账号
密码
账号
密码

加密:
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db

建立映射用户:
useradd virtualuser

建立映射关系:
chmod -Rf 722 /home/virtualuser
guest_username=virtual 指定虚拟用户账户

创建pam模块:
[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

-----------------------------简单文件传输协议 TFTP 69/udp
dnf isntall tftp-server tftp xinetd
使用的目录:/var/lib/tftpboot
tftp----太简单了,所以说有些服务没有(如:ls)
xinetd---------守护程序,发起程序,带动并配置tftp服务
vim /etc/xinetd.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

重启xinetdtftp服务
systemctl restart tftp
systemctl enable tftp
systemctl restart xinetd
systemctl enable xinetd
firewall-cmd --zone=public --permanent --add-port=69/udp
success
firewall-cmd --reload
success

登陆后使用的目录:/var/lib/tftpboot

tftp命令中可用的参数以及作用

参数 作用
? 帮助信息
put 上传文件
get 下载文件
verbose 显示详细的处理信息
status 显示当前的状态信息
binary 使用二进制进行传输
ascii 使用ASCII码进行传输
timeout 设置重传的超时时间
quit 退出

------------------------------------------------------SAMBA文件共享服务
SMB(Server Messages Block,服务器消息块)协议
1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。

Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

dnf install samba samba-client
vim /etc/samba/smb.conf
[global]
workgroup = SAMBA-----工作组–“网上邻居”
security = user ------验证模式:1、share 2、user 3、domain 4、server
passdb backend = tdbsam

security参数代表用户登录Samba服务时采用的验证方式。总共有4种可用参数。
share:代表主机无须验证密码。这相当于vsftpd服务的匿名公开访问模式,比较方便,但安全性很差。
user:代表登录Samba服务时需要使用账号密码进行验证,通过后才能获取到文件。这是默认的验证方式,最为常用。
domain:代表通过域控制器进行身份验证,用来限制用户的来源域。
server:代表使用独立主机验证来访用户提供的密码。这相当于集中管理账号,并不常用。

在最早期的RHEL/CentOS系统中,Samba服务使用的是PAM(可插拔认证模块)来调用本地账号和密码信息,后来在5、6版本中替换成了用smbpasswd命令来设置独立的Samba服务账号和密码。到了RHEL 7/8版本,则又进行了一次改革,将传统的验证方式换成使用tdbsam数据库进行验证。这是一个专门用于保存Samba服务账号密码的数据库,用户需要用pdbedit命令进行独立的添加操作,下文中会有实战演示。

----------------配置共享资源
参数 作用
[database] 共享名称为database,----访问时使用
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享目录为/home/database
public = no 关闭“所有人可见”
writable = yes 允许写入操作

第1步:创建用于访问共享资源的账户信息。

     用于pdbedit命令的参数以及作用

参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表

pdbedit -a -u linuxprobe
new password:此处输入该账户在Samba服务数据库中的密码
retype new password:再次输入密码进行确认

第2步:创建用于共享资源的文件目录。
[root@linuxprobe ~]# mkdir /home/database
[root@linuxprobe ~]# chown -Rf linuxprobe:linuxprobe /home/database
[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /home/database
[root@linuxprobe ~]# restorecon -Rv /home/database
Relabeled /home/database from unconfined_u:object_r:user_home_dir_t:s0 to unconfined_u:object_r:samba_share_t:s0

第3步:设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。

getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on

第4步:在Samba服务程序的主配置文件中,根据表12-2所提到的格式写入共享信息。
[root@linuxprobe ~]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[database]--------共享名称,访问时用的也是这个
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes

第5步:Samba服务程序的配置工作基本完毕。Samba服务程序在Linux系统中的名字为smb,所以重启smb服务并加入到启动项中,保证在重启服务器后依然能够为用户持续提供服务。

[root@linuxprobe ~]# systemctl restart smb
[root@linuxprobe ~]# systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.

访问:smbclient -U linuxprobe -L 192.168.10.10

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号