FTP:File Transfer Protocol文件传输协议,是大多数网页浏览器和文件管理器都能够支持的文件传输协议,它的历史据今天已经整整40年的时间,是一种基于明文认证的协议。它的整个传输过程通过建立两个链接来实现。一种为数据链接,在有数据传输是才会建立,端口20;另一种为控制链接,用于指令的传输,这个链接一直保持,端口20;

数据的传输模式也有两种:一种为服务器从接口主动链接客户端,叫做主动模式;另一种为现有客户端发出请求再建立链接进行数据传输。数据传输的格式同样分为两种:二进制码和ASCII码。

FTP用户服务类型有匿名用户、本地用户和虚拟用户。匿名用户指不用输入账号密码或是使用ftp用户ftp密码进行登录;本地用户指的是本地主机用户登录,但是一般不推荐此种方式进行登录,因为本地用户登录容易遭到黑客使用缓冲区溢出从而提升至root权限;虚拟用户是较为稳妥的登录方式,它由多个虚拟用户映射一个本地用户的机制来实现,虚拟用户使用对应虚拟用户密码来访问,从而实现与本地用户分离的目的。

下面详细介绍构建基于虚拟用户的vsftpd服务器

1.安装vsftpd

yum install vsftpd 

2.调整主配置文件

vim /etc/vsftpd/vsftpd.conf   

local_enable=   

#本机用户可登陆,使用本机用户来登陆ftp服务器  

write_enable=YES               

#是否登陆可创建文件  

anon_upload_enable=YES   

#是否允许上传文件  

dirmessage_enable=YES   

message_file=/var/ftp/message   

#定义欢迎信息  

idle_connection_timeout=300   

#空闲超时断开时间  

data_connection_timeout=120   

#数据连接超时断开时间  

chroot_list_enable=YES   

chroot_list_file=/etc/vsftpd/chroot_list    #具体的限制列表  

#是否显示用户活动范围仅限于其家目录  

chown_upload=YES   

chown_username=                  

#将上传文件属主改变成”=“后用户

3.Ftp服务SSL加密的启用

ssl加密启用后将原来的明文传输加密

vim    /etc/vsftpd/vsftpd.conf   

#配置文件中加入  

ssl_enable=YES   

ssl_tlsv1=YES   

ssl_sslv2=YES   

ssl_sslv3=YES   

allow_anon_ssl=NO   

force_local_data_ssl=YES   

force_local_logins_ssl=YES   

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem   

rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key 

4.建立虚拟FTP用户的账号数据库文件

yum install -y db4-utils   

#安装转换虚拟用户软件包  

vim /etc/vsftpd/vusers.list   

mike   

123   

john   

456   

#编辑虚拟用户账号密码  

db_load -T -t hash -f vusers.list vusers.db   

#生成数据文件  

11. chmod 600 vuser.*   

12.#chown root vuser.* 

#更改权限属主

在使用 db_load 命令时,“-f”选项用于指定用户名/密码列表文件,“-T”选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件,“-t hash”选项指定读取数据文件的基本方法。关于db_load命令的详细说明可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件

5.创建FTP根目录以及虚拟用户映射的系统用户

mkdir /var/ftproot   

useradd -d    /var/ftproot -s /sbin/nologin virtual       

#vsftpd虚拟用户需要有一个对应的系统用户帐号(该帐号无需设置密码及登录Shell),该用户帐号的宿主目录作为所有虚拟用户登录后的共同FTP根目录  

chmod 755 /var/ftproot   

#去掉写权限

6.创建支持虚拟用户的PAM认证文件

vim /etc/pam.d/vsftpd.vu   

#%PAM-1.0 

auth             required         pam_userdb.so db=/etc/vsftpd/vusers   

account        required         pam_userdb.so db=/etc/vsftpd/vusers   

#PAM配置文件(名称可以自行定义)主要用于为程序提供用户认证控制,vsftpd服务使用的默认PAM配置文件为/etc/pam.d/vsftpd,可以参考该文件的格式建立新的PAM配置文件,用于虚拟用户认证控制  

7.在vsftpd.conf 中添加支持配置

vim /etc/vsftpd/vsftpd.conf   

guest_enable=YES   

guest_username=virtual   

pam_service_name=vsftpd.vu   

#在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的所有虚拟用户对应到同一系统用户帐号virtual。并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu

8.为个别虚拟用户建立独立的配置文件

user_config_dir=/etc/vsftpd/vusers_dir   

#在vsftp.conf文件中添加  

mkdir /etc/  vsftpd/vusers_dir   

cd     /etc/  vsftpd/vusers_dir   

#为用户mick jhon建立独立的配置文件  

touch mike   

#配置文件与用户名相同     

vim mike   

anon_upload_enable=YES   

anon_mkdir_write_enable=YES 

9.重新加载vsftp配置

sevice vsftpd reload 

 

Samba服务器搭建

samba一款实现安装unix系列操作系统与安装Windows主机之间文件共享的开源软件,它基于SMB/CIFS、NetBIOS等多个协议,在两种OS的文件共享间架起了一座桥梁。通过samba的共享使得Windows用户可以像访问普通Windows下文件夹那样访问unix目录。

下面就谈一谈Samba的服务的搭建

1.samba服务的安装

yum list samba*   

#查看相关samba相关的rpm其中samba-client、samba、samba-swat是我们假设服务所需要用到的  

yum install -y samba-swat samba samba-client   

#安装samba客户端服务器端和swat

2.samba服务的配置

vim /etc/samba/smb.conf   

#samba的主配置文件  

[global]全局控制文件   

workgroup=WORKGROUP               #工作组    

server string=TEST                      #注释信息  

security=user                 

passdb backend = tdbsam             #指使用哪中凡是存放密码  

cups options=raw                        #定义打印的方式  

[homes]控制是否能够访问家目录的   

comment= home directory             #说明信息  

browserable=no                           #非属主是否能够查看当前目录内容  

writable=yes                               #是否可写  

[printer]控制打印机   

guest ok=no                               #打印机是否公开;是否支持来宾账号打印  

security=user                   

这个选项比较重要它定义samba的安全级别{share:允许任何匿名共享;|默认是user:账号和密码来访问(用户是本地用户但是密码却不是;|domain/server:集中式的用户认证,有第三方服务器集中管理账号密码;|ads:基于kerberos来实现}   

3.自定义文件选项

所谓自定义文件选项其实也就是自定义规则实现访问控制等功能的共享文件目录。自定义选项卸载主配置文件中,下面是作者定义的一个简单的自定义选项:

[file]                        #自定义选项同样由[]引导,内容为其他共享用户看到的目录名   

comment=mytools      #标示信息   

path = /share            #文件路径,指明共享文件本机所在的位置   

browserable = yes      #此文件是否允许查看   

guest ok = no            #是否允许匿名用户登陆   

writable = yes            #是否可写,此处还取决于文件本身的权限   

write list=gentoo        #设置写权限的用户名单

4.启动服务

testparm      

#配置完成后首先检查配置文件语法   

service smb start   

#启动服务   

chkconfig smb on   

#设置2345运行级别开机启用   

netstat -tunl   

#查看tcp139、445以及udp137、138端口为监听状态标示服务成功启动  

5.设置登陆用户的账号/密码

所有的samba用户,必须为本地用户,但其用来登陆的密码却和本地密码丝毫不相干。

useradd gentoo   

#创建gentoo本地用户且不设置密码   

smbpasswd -a gentoo   

#设置gentoo用户的samba密码  

文件共享的Windows和linux中的Samba客户端

Windows网络邻居查看工作组选项(samba主配置文件中定义的工作组是WORKGROUP)找到TEST主机,使用gentoo用户登陆。 可见图中有两个共享文件夹:file和gentoo。

file文件夹既是上文自定义选项所定义的文件夹;

gentoo文件夹则是对应用户的家目录。

 

Linux中登陆samba服务器

smbclient -L 192.168.0.72 -U gentoo   

#显现查看目的主机有哪些共享目录  

Domain=[TEST] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]    #对应显示:域名为TEST 操作系统为Unix族版本号为Samba 3.0.33-3.14.el5 

Sharename           Type           Comment      #对应显示:共享目录的名称,类型,注释信息

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

file                Disk           mytesting    

 IPC$                IPC            IPC Service (Test)    

Server              Printer        Printing Server    

gentoo              Disk           Home Directories    

smbclient //192.168.0.72/gentoo -U gentoo    

#登入目标服务器目录中  

7.组访问控制

上面已经实现了单用户的访问控制,如果要实现多用户的访问控制,直接对用户的附加组进行操作即可。

groupadd sambagrp   

#创建一个组  

useradd slackware   

usermod -G sambagrp slackware   

usermod -G sambagrp gentoo   

#将两个用户添加附加组  

vim /etc/samba/smb.conf   

write list=@sambagrp   

#设置该组可访问自定义的file目录  

8.指定主机访问

hosts allow = 127.    192.168.   

#表示允许127.0.0.1和192.168.0.0网段用户访问  

将smb共享文件夹挂载到本地

amba也支持类似于nfs以挂载的模式实现共享

mount -t cifs //192.168.0.72/file /mnt/ -o username=gentoo   

#使用gentoo用户将目标主机目录挂载到本地  

10.samba-swat的使用

samba-swat是基于自身提供的web服务器来实现对samba服务的配置。

vim /etc/xinetd/swat   

service swat   

{   

     port                = 901                #服务端口

     socket_type         = stream           

     wait                = no    

     only_from           = 192.168.0.0/24     #允许访问的网段  

      user                = root               #允许访问的用户

      server              = /usr/sbin/swat          

      log_on_failure      += USERID    

     disable             = no                 #服务是否启用  

}  

注意:登录格式 http://192.168.0.72:901,端口号不要忘了。

点赞(0) 打赏

评论列表 共有 0 条评论

评论功能已关闭

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部