linux下ftp服务器搭建(学这篇就够了)
摘要:
本文主要讲解一下内容:
1、什么是文件传输合同(FileTransferProtocol,FTP)及怎样布署vsftpd服务程序。
2、深度分析vsftpd主配置文件中最常用的参数及其作用
3、并完整演示vsftpd服务程序三种认证模式(匿名开放模式、本地用户模式、虚拟用户模式)的配置方式。
一、什么是ftp?
FTP的英文翻译是:文件传输合同(FileTransferProtocol)。
二、部署ftp目的。
是为了在互联网中进行文件传输,获取你需求的资料。
三、ftp合同默认通信端口
ftp服务器默认通过20、和21号两个端口配合与顾客端通信。
四、ftp的两种工作模式
FTP合同有下边两种工作模式:
➢1、主动模式:FTP服务器主动向顾客端发起联接恳求。
➢2、被动模式:FTP服务器等待顾客端发起联接恳求(FTP的默认工作模式)。
五、安装vsftpd服务
vsftpd(verysecureftpdaemon,十分安全的FTP守护进程)是一款运行在Linux操作系统上的默认FTP服务程序,除了完全开源并且免费,再者,还具有很高的安全性、传输速率,以及支持虚拟用户验证等其他FTP服务程序不具备的特征。
第一步:配置本地yum源:
1、插入完整版的IOS文件到硬盘;
2、挂载光碟:mount/dev/cdrom/mnt
[root@localhost]#vi/etc/yum.repos.d/xiaobo.repo
写入一下内容
[bash]>//库房名称
name=xiaobo//对软件源的描
baseurl=file:///mnt//表示本地获取
enabled=1//此安装源句子块生效
gpgcheck=0//不检查gpgkey
3、yumrepolist//列举本地yum库房
如有多个请重命名默认本地库房
mv/etc/yum.repos.d/CentOS-Base.repo1.repo
4、确保只有一个本地源。
第二步:安装vsftpd服务
[root@xiaobo~]#yuminstallvsftpd-y
六、分析vsftp配置文件
vsftpd配置文件默认目录为:/etc/vsftpd/vsftpd.conf
过滤掉注释行,我们来剖析下主配置文件常用的参数行。
egrep-v“#|^$”/etc/vsftpd/vsftpd.conf>vsftpd.config.bak
!](,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p4YjUxMzY1MTYwOA==,size_16,color_FFFFFF,t_70)
七、三种布署方法1:匿名开放模式
一种最不安全的认证模式,任何人都可以无需密码验证而直接登陆到FTP服务器。
匿名用户的默认主机目录为:/var/ftp/pub
第一步:编辑文件 vi /etc/vsftpd/vsftpd.conf
第二步:开启如下选项 :允许匿名用户权限
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
第三步:测试发现仍然匿名用户无法上传文件。
发现pub目录权限,只有root用户才有写权限(上传输入写权限)。
此时可授权ftp用户对pub目录上传权限
第四步:chown -Rf ftp /var/ftp/pub/
setsebool -P ftpd_full_access=on 放行ftp服务的selinux策略
ftp顾客端工具,笔者使用的是8uftp,下载地址为:
2、本地用户模式
通过Linux系统本地的帐户密码信息进行认证的模式,相较于匿名开放模式更安全,并且配置上去也很简单。而且倘若被黑客破解了帐户的信息,就可
以畅通无阻地登陆FTP服务器,因而完全控制整台服务器。
第一步:使用本地用户认证模式,需要关闭匿名用户登录。
编辑主配置文件:vi /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
第二步:重启服务:systemctl restart vsftpd
测试发现root用户无法登录,访问被拒绝。
**这是由于vsftpd服务程序所在的目录中默认储存着两个名为“用户名单”的文件(ftpusers和user_list)。**在这2个文件上面的用户名都不容许登入。
第三步:测试张三用户登录成功
建立张三用户,并设置密码。
useradd zhangsan && echo 12345678 | passwd --stdin zhangsan
本地用户认证上传文件成功。
3、虚拟用户模式
这三种模式中最安全的一种认证模式,它须要为FTP服务单独
构建用户数据库文件,虚拟出拿来进行口令验证的帐户信息,而这种帐户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样linux系统ftp服务器,虽然黑客破解了帐户信息也未能登陆服务器linux系统ftp服务器,因而有效减少了破坏范围和影响。
第一步:创建用于进行FTP认证的用户数据库文件,其中偶数行为帐户名linux关机命令,奇数行为密码。比如如何安装LINUX,我们分别创建出zhangsan和lisi两个用户,密码均为12345678
[root@xiaobovsftpd]#vi/etc/vsftpd/vuser.list
因为明文信息既不安全,也不符合让vsftpd服务程序直接加载的格式,因而须要使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件,而且增加数据库文件的权限(防止其他人听到数据库文件的内容),之后再把原始的明文信息文件删掉。
cd/etc/vsftp
db_load-T-thash-fvuser.listvuser.db
rm-rfvuser.list
第二步:创建vsftpd服务程序用于储存文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于储存文件的根目录指的是,当虚拟用户登入后所访问的默认位置。
useradd-d/var/ftproot-s/sbin/nologinvirtual
第三步:构建用于支持虚拟用户的PAM文件。
PAM(可拔插认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方法分开,致使系统管理员可以依据需求灵活调整服务程序的不同认证方法。
新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的帐户密码数据库文件的路径,但不用写数据库文件的后缀:
vim/etc/pam.d/vsftpd.vu
authrequiredpam_userdb.sodb=/etc/vsftpd/vuser
accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser
第四步:在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称更改为vsftpd.vu,PAM作为应用程序层与鉴定模块层的联接纽带,可以让应用程序按照需求灵活地在自身插入所需的鉴定功能模块。当应用程序须要PAM认证时,则须要在应用程序中定义负责认证的PAM配置文件,实现所需的认证功能。
vim/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
pam_service_name=vsftpd.vu
第五步:为虚拟用户设置不同的权限。
mkdir/etc/vsftpd/vusers_dir/
cd/etc/vsftpd/vusers_dir/
touchlisi
vimzhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim/etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
第六步:设置SELinux域容许策略
getsebool-a|grepftp
布署完毕。