Samba服务和FTP服务
Samba服务
作用:Unix、Linux文件共享服务,Windows和Linux跨平台共享服务
SMB协议和CIFS协议实现文件共享(Windows下微软私有的协议)
Samba服务配置:
系统基础配置
1.修改计算机名称 2.配置IP地址 3.配置或关闭防火墙 4.关闭selinux
安装Samba及相关软件包
软件包有下面6个最后一个为主包
samba-common-3.6.9-164.el6.x86_64(提供服务端和客户端所使用的的数据包括语法检查命令testparm)
samba-client-3.6.9(客服端)
samba4-libs-4.0.0-58.el6.rc4.x86_64(库包)
samba-winbin-clients-3.6.9-164.el6.rc4.x86_64(支持Windows功能)
samba-winbin-3.6.9-164.el6.x86_64(支持Windows功能)
samba-3.6.9-164.el6.x86_64(服务端)
安装之后生成smbd(文件共享访问)和nmbd(主机名解析)两个应用程序
Samba的脚本:/etc/init.d/smb(启动服务可以是/etc/init.d/smb start)
Samba的端口:
nmbd:137,138 NetBIOS协议 smbd:139(SMB协议) 445(CIFS协议)
默认路径安装之后一般samba服务的配置文件位置在:/etc/samba/smb.conf
在最后添加配置如下图:
格式为:
[global]
全局选项
[homes]
共享选项
[printers]
共享选项
[共享目录]
共享选项
安全模式选项详解
security
关于安全等级有四种:
share:用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码
smb.conf配置文件参数
[global]
与主机名相关的设置
workgroup = lalala:工作组名称
netbios name = bababa:主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
serverstring = this is a test samba server:说明性文字,内容无关紧要
与登录文件有关的设置
log file = /var/log/samba/log.%m:日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
max log size = 50:日志文件最大的大小为50Kb
与密码相关的设置
security = share:表示不需要密码,可设置的值为share、user和server
passdb backend = tdbsam:打印机加载方式
load printer = no:不加载打印机
共享资源设置方面:将旧的注释掉,加入新的
先取消[homes]、[printers]的项目,添加[temp]项目如下
[test]
comment = Temporary file space:简单的解释,内容无关紧要
path = /tmp:实际的共享目录
writable = yes:是否用户能否写入
browseable = yes:可以被所有用户浏览到资源名称,
guest ok = yes:可以让用户随意登录
valid users = zhangsan,lisi,wangwu
write list = zhangsan
注意:samba服务的启动为service smb satrt和service nmb start
用户名密码验证访问共享
1.创建系统用户
2.添加系统用户为共享用户
pdbedit -a -u 【用户名】(添加用户为共享用户)
pdbedit -L(查询已存在的共享用户)
samba用户管理命令
注意:在smb.conf配置文件中security的值要改为user
smbpasswd 【选项】【用户名】
-h:显示命令的帮助信息。
-a:添加用户。
-d:禁用某个用户。
-e:启用某个用户。
-n:设置用户密码为空。
-x:删除某个用户
用户映射(添加虚拟用户登录,让别人不知道自己账户名)
在/etc/samba/smbusers里面进行配置
在/etc/samba/smb.conf的配置文件下全局配置中添加username map = /etc/samba/smbusers
最后登录成功进去
注意:还可以进行访问地址的限制,只允许哪个地址对共享文件进行访问
[global]
hosts allow(允许)
hosts deny(拒绝)
测试:
smbclicent -L(查询网上邻居的数据信息)
smbclicent -U zhangsan //192.168.1.16/mount
挂载使用共享
mount -o username=zhangsan //192.168.1.16/mount /test
FTP文件传输服务(实现文件的上传和下载)
常用端口:
21端口(用于发送FTP命令信息)
20端口(不一定使用,用于上传下载数据)
文本模式(纯文本类文件)、二进制模式(图片、程序、语音等)
/etc/vsftpd/vsftpd.conf默认配置项如下图:
ftp各配置项
匿名用户 | |
annonymous_enable=YES | 是否允许匿名访问 |
anon_umask=022 | 设置匿名用户所上传文件的默认权限掩码值 |
anon_root=/var/ftp | 设置匿名用户的FTP根目录{缺省为/var/ftp/} |
anon_upload_enable=YES | 是否允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 是否允许匿名用户有创建目录的写入权限 |
anon_other_write_enable=YES | 是否允许匿名用户有其他写入权限,如对文件改名,覆盖及删除文件 |
anon_max_rate=0 | 限制匿名用户的最大传输速率{0为无限,单位为字节/秒 |
本地用户 | |
local_enable=YES | 是否允许本地系统用户访问 |
loacl_umask=022 | 设置本地用户所上传文件的默认权限掩码值 |
local_root=/var/ftp | 设置本地用户的FTP根目录 |
chroot_local_user=YES | 是否将FTP本地用户禁锢在宿主目录中 |
local_max_rate=0 | 限制本地用户的最大传输速率{0为无限制} |
全局配置 | |
listen=YES | 是否独立运行的方式监听服务 |
listen_address=0.0.0.0 | 设置监听ftp服务的IP地址 |
listen_port=21 | 设置监听的FTP服务的端口号 |
write_enable=YES | 启用任何形式的写入权限{如上传。删除文件等}都需要开启此项 |
download_enable=YES | 是否允许下载文件{建立仅限于浏览,上传的FTP服务器时可设为NO} |
dirmessage_enable=YES | 用户切换进入目录时显示.message文件{如果存在内容} |
xferlog_enable=YES | 启用xferlog日志,默认记录到/var/log/xferlog |
xferlog_std_format=YES | 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式 |
connect_from_port_20=YES | 允许服务器主动模式{从20建立数据连接} |
pasv_enable=YES | 允许被动模式连接 |
pasv_max_port=24600 | 设置于被动模式的服务器最大端口号 |
pasv_min_port=24500 | 设置用于被动模式的服务器最小端口号 |
pam_service_name=vaftp | 设置用于用户认证的PAM文件位置{/etc/pam.d/目录中对应的文件名 |
userlist_enable=YES | 是否启用user_list用户列表文件 |
userlist_deny=YES | 是否禁止user_list列表文件中的用户账户 |
max_client=0 | 最多允许多少个客户端同时连接 {0为无限制} |
max_per_ip=0 | 对来自同一个IP地址的客户端,最多允许多少个并发连接{0无限制} |
tcp_wrappers=YES | 是否启用TCP_Wrappers主机访问控制 |
ftp用户验证配置:(可直接使用本地用户登录)
创建本地用户:useradd
虚拟用户登录访问ftp配置步骤:
1.建立虚拟ftp账号的数据库文件
vim users.list
在vim里面编辑users.list文件进行编辑
注意:里面编写单数行为账号,双数号为密码
db_load转换users.list文件为users.db
命令:db_load -T -t hash -f users.list users.db
注意:把这两个文件权限设置成600要不然会出错
2.创建虚拟账号映射的系统账号
useradd -s /sbin/nologin vip
vim /etc/vsftpd/vsftpd.conf
3.建立支持虚拟用户的PAM认证文件
新建并使用vim编辑/etc/pam.d/vsftpd.s(默认是vsftpd,没有后缀)
修改的如下图:
4.虚拟账号数据库文件添加到主配置文件
guest_enable=YES
guest_username=vip
蓝色是修改项红色圈上的是新添加项
如果需要给虚拟用户增加权限
添加user_config_dir=/etc/vsftpd/vip(需要去创建一个目录然后里面去创建名字为虚拟用户名的文件,在文件里面添加权限)
如下图:
最后给/etc/vsftpd/vip文件权限
chomd 755 /etc/vsftpd/vip
5.重启服务
6.测试