Linux搭建ftp服务

ftp(文件传输协议)服务默认使用TCP协议的20、21端口与客户端进行通讯。20端口用于创建数据链接,并传输文件数据;21端口用于创建控制链接,并传输ftp控制指令。linux

ftp数据链接分为 主动模式和被动模式;数据库

客户端与服务器创建数据链接之后,就能够根据从控制链接中发送的ftp命令进行上传和下载文件。传输过程当中是否进行字符转换,分为文本模式和二进制模式。使用二进制模式笔文本模式更有效率。大多数ftp客户端能够根据文件类型自动选择文件传输模式,无需用户手工指定。vim

ftp用户类型分为:
1.匿名用户;
2.本地用户;
3.虚拟用户。

接下来咱们就在linux环境中搭建ftp服务缓存

1.准备工做:

[root@localhost ~]# ifconfig ens33          
//肯定本机IP地址(建议静态IP地址)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//关闭防火墙、SELinux

2.本身建立yum仓库配置文件,并安装FTP服务:

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# vim a.repo
//本身编写一个yum配置文件,必须以“repo”结尾,内容以下:
[a]                                    //yum仓库ID
baseurl=file:///mnt           //使用本地系统镜像做为YUM源
gpgcheck=0                   //不查公钥
[root@localhost ~]# yum clean all
//清楚YUM缓存(避免出错)
[root@localhost ~]# mount /dev/cdrom /mnt
//挂载系统盘
[root@localhost ~]# yum -y install vsftpd
//安装FTP服务

3.FTP的配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//FTP服务的配置文件
FTP服务配置文件一些经常使用的配置选项参数:
匿名用户经常使用参数:
anonymous_enable=YES:是否容许匿名访问
anon_umask=022:设置匿名用户所上传文件的默认权限掩码值
anon_root=/vat/ftp:设置匿名用户的宿主目录(默认为/var/ftp)
anon_upload_enable=YES:是否容许匿名用户上传文件
anon_mkdir_write_enable=YES:是否容许匿名用户有建立目录的写入权限
anon_other_write_enable=YES:是否容许匿名用户有其余写入的权限(例如更名、修改、删除等)
本地用户经常使用参数:
local_enable=YES:是否容许本地系统用户访问
local_umask=022:设置本地用户所上传文件的默认权限掩码值 
local_root=/var/ftp:设置本地用户的ftp根目录(默认为用户的宿主目录)
chroot_local_user=YES:是否将ftp本地用户禁锢在宿主目录中
local_max_rate=0:限制本地用户的最大传输速率(0为无限制),单位是字节/秒(B/s)
allow_writeable_chroot=YES:容许被限制用户的主目录具备写权限
全局配置经常使用参数:
listen=YES:是否以独立的运行方式监听服务
listen_address=0.0.0.0:设置监听ftp服务的IP地址
listen_port=21:设置监听ftp服务的端口号
write_enable=YES: 启用任何形式的写入权限(好比上传、删除文件等)都须要开启此项
download_enable=YES:是否容许下载文件(好比创建仅限于浏览、上传的ftp服务器时可将其设置                                                                     为"NO")
xferlog_enable=YES:启用xferlog日志,默认记录到/var/log/xferlog
xferlog_std_format=YES: 启用标准的xferlog日志格式
connect_from_port_20=YES:容许服务器主动模式
pasv_enable=NO:禁止被动模式链接;默认容许被动模式链接
pam_service_name=vsftpd:设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)
userlist_enable=YES:是否启用user_list用户列表文件
max_clients=0:最多容许多少客户端同时链接(0为无限制)
max_per_ip=0                                         对来自同一个IP地址的客户端,最多容许多少个并发链接(0为无限制)
tcp_wrappers=YES:是否启用TCP_Wrappers主机访问控制
虚拟用户经常使用参数:
guest_username=test:指定映射的系统用户名称;
guest_enable=YES:是否启用虚拟用户;
allow_writeable_chroot=容许被限制用户的主目录具备写权限(此项必须写入,不然可能会报错)
anon_world_readable_only=NO:容许用户下载目录内容
anon_other_write_enable=YES:容许匿名用户有其余写入权限,如重命名、覆盖及删除文件等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虚拟用户独立的配置文件目录;

经常使用的配置差很少就这些(配置文件严格区分大小写)服务器

搭建匿名用户访问FTP服务

1.赋予匿名用户相应的权限

[root@localhost ~]# chown ftp /var/ftp/pub
//匿名用户默认登陆的文件夹是/var/ftp/pub目录、匿名用户对应系统用户ftp;因此将ftp系统用户做用目录的属组

2.修改FTP服务的主配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
                  ………………                  //省略部份内容,填写如下内容
anon_upload_enable=YES              //容许匿名用户上传文件
anon_mkdir_write_enable=YES       
anon_other_write_enable=YES       //容许匿名用户具备写入权限
[root@localhost ~]# systemctl restart vsftpd
//重启FTP服务

3.客户机访问测试

Linux搭建ftp服务

搭建基于本地用户访问FTP服务

1.修改FTP服务配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
                  ………………                 //省略部份内容,添加如下内容
allow_writeable_chroot=YES           // 容许被限制用户的主目录具备写权限
chroot_local_user=YES                   //将用户禁锢在宿主目录

2.建立系统用户(用于测试)、重启FTP服务

[root@localhost ~]# useradd xiaozhang
[root@localhost ~]# passwd xiaozhang 
[root@localhost ~]# systemctl restart vsftpd

3.客户机访问测试

Linux搭建ftp服务

建立虚拟用户登陆FTP服务

1.建立文本文件,用于存放虚拟用户的用户名、密码

[root@localhost ~]# vim /etc/vsftpd/123.txt        //添加如下内容
benet
123456
benet1
123456                
//奇数行为用户名、偶数行为密码(一行一个,不容许有空格)

2.建立Berkeley DB格式的数据库文件

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f 123.txt vusers.db
//使用db_load工具建立用户名、密码的数据库文件

3.为虚拟用户创建RAM认证文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.vu
//必须建立一个以“vu”结尾的文本文件,填写如下内容:
auth    required        pam_userdb.so   db=/etc/vsftpd/vusers
account required        pam_userdb.so   db=/etc/vsftpd/vusers
//指定用户类型、用户属性和验证使用的模块、db数据库文件

4.新建一个系统用户(用于测试)

[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin xiaoli
[root@localhost ~]# chmod 755 /var/ftproot/
//修改用户宿主目录的权限(这就是虚拟用户登陆访问的目录)

5.修改ftp服务的主配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
              ………………                                  //省略部份内容,修改、添加如下内容
pam_service_name=vsftpd.vu                      //设置用于用户认证的PAM文件位置
userlist_enable=YES                                    //启用user_list用户列表文件
tcp_wrappers=YES                                      //启用TCP_Wrappers主机访问控制
guest_username=xiaoli                                //来宾用户对应的系统用户
guest_enable=YES                                      //启动来宾用户
allow_writeable_chroot=YES                      //禁锢在宿主目录
user_config_dir=/etc/vsftpd/vusers_dir       //指定虚拟用户独立的配置文件目录

4.为不一样虚拟用户创建独立的配置文件

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir
[root@localhost ~]# vim /etc/vsftpd/vusers_dir/benet
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ~]# vim /etc/vsftpd/vusers_dir/benet1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
//须要手动建立目录及配置文件
[root@localhost ~]# systemctl restart vsftpd
//重启FTP服务

5.客户机测试访问

Linux搭建ftp服务
自行测试!!!并发

实验完成!!!app

相关文章
相关标签/搜索