CentOS 7 vsftpd服务器配置与应用

1.完成网络配置

点击windowns安装环回网卡完成网络配置


2.安装vsftpd服务器

2.1检测系统内部是否已经安装好vsftpd文件

[root@mail3 ~]# rpm -qa |grep vsftpd
出现如下图,则已安装好vsftpd,没有则采用yum安装

在这里插入图片描述

2.2安装

[root@mail3 ~]# yum install vsftpd
[root@localhost ~]# yum install ftp

在这里插入图片描述
在这里插入图片描述

2.3开机启动

[root@mail3 ~]# systemctl enable vsftpd


3.配置匿名用户

3.1打开配置文件/etc/vsftpd/vsftpd.conf

[root@mail3 ~]# vim /etc/vsftpd/vsftpd.conf

3.2启用匿名用户,允许下载,上传但禁止删除文件
使用vim快捷键搜索修改即可,在命令模式下输入/加关键字回车后修改,搜不到的添加上去,然后在命令模式下输入wq回车退出保存。

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
anon_other_write_enable=NO

3.3在控制台上输入下面的命令

[root@mail3 ~]# mkdir -p /var/ftp/pub
[root@mail3 ~]# chown ftp /var/ftp/pub

3.4启动服务,测试匿名用户的各种操作

[root@mail3 ~]# systemctl restart vsftpd

在浏览器上使用用户名ftp(密码为任意字符)访问服务器ftp://172.16.51.1,或者在命令行上输入ftp命令测试。

[root@localhost ~]# ftp localhost
Trying ::1…
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftp
331 Please specify the password.
Password:回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
229 Entering Extended Passive Mode (|||19529|).
150 Here comes the directory listing.
drwxr-xr-x 2 14 0 6 Oct 13 16:10 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> dir
229 Entering Extended Passive Mode (|||36760|).
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir ftp
257 “/pub/ftp” created
ftp> dir
229 Entering Extended Passive Mode (|||46141|).
150 Here comes the directory listing.
drwxr-xr-x 2 14 50 6 Mar 01 08:38 ftp
226 Directory send OK.
ftp> quit
221 Goodbye.


4.配置本地用户

4.1打开配置文件/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

4.2启用本地用户,允许下载,上传和禁止删除文件。

local_enable=YES
write_enable=YES
local_umask=022

4.3限制本地用户切换目录

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES //文件里没有这个,需要自己添加上去

注意:文件/etc/vsftpd/chroot_list需要手动生成

4.4将需要限制切换目录的用户名字按照每行一个的方式写入chroot_list_file指定的文件中,每一个用户一行。
打开vim编辑

[root@localhost ~]# vim /etc/vsftpd/chroot_list

修改

mary

4.5重启服务,在命令行上测试(可参照如下命令)
重启

[root@localhost ~]# systemctl restart vsftpd

测试

[root@localhost ~]# ftp localhost
Trying ::1…
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): mary
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
229 Entering Extended Passive Mode (|||49733|).
150 Here comes the directory listing.
-rw-r–r-- 1 0 0 0 Mar 01 08:58 public_html
226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> dir
229 Entering Extended Passive Mode (|||49114|).
150 Here comes the directory listing.
-rw-r–r-- 1 0 0 0 Mar 01 08:58 public_html (没有切换到根目录,测试成功
226 Directory send OK.
ftp> exit
221 Goodbye.


5.安装并配置mysq

5.1安装mysql服务

[root@localhost ~]# yum install gcc gcc-c++ pam-devel
[root@localhost ~]# yum install mysql-devel

安装mysql-server(要让linux联网,可新建一个网卡(Net连接),并暂时关闭其他网卡。)

[root@localhost ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# yum install mysql-community-server

5.2下载并安装mysql.so
下载方法一:(不推荐速度慢)

[root@localhost ~]# wget http://downloads.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz?use_mirror=nchc

下载方法二:
点击mysql.so进去下载,然后复制到linux根目录。
输入以下命令

[root@localhost pam_mysql-0.7RC1]# ll pam_mysql-0.7RC1.tar.gz
[root@localhost pam_mysql-0.7RC1]# tar -zxf pam_mysql-0.7RC1.tar.gz -C /tmp/
[root@localhost pam_mysql-0.7RC1]# cd /tmp/pam_mysql-0.7RC1/
[root@localhost pam_mysql-0.7RC1]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
[root@localhost pam_mysql-0.7RC1]# make;make install

5.3创建虚拟用户对应的系统用户

[root@localhost pam_mysql-0.7RC1]# useradd -d /home/virtual -s /sbin/nologin virtual
[root@localhost pam_mysql-0.7RC1]# chmod o+r /home/virtual

5.4创建存储虚拟用户的数据库和表

重启服务

[root@localhost pam_mysql-0.7RC1]# systemctl restart mysqld

输入下面的mysql语句,默认的密码为空,直接回车即可。

[root@localhost pam_mysql-0.7RC1]# mysql -u root -p

在这里插入图片描述
输入mysql语句

mysql> use ftpdb;
mysql> create table ftpusers(name char(20),password char(20));
mysql> insert into ftpusers(name,password)values(‘pei’,‘pei’);
mysql> insert into ftpusers(name,password)values(‘huan’,‘huan’);
mysql> grant select on ftpdb.ftpusers to virtual@localhost identified by’123456’;
mysql>quit

若重复创建某用户,可以采用delete命令删除。命令如下

mysql> delete from ftpuser where name"huan";

查看某用户的命令

mysql> select * from ftpusers;

5.5修改vsftp主配置文件

[root@localhost pam_mysql-0.7RC1]# vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.virtual
下面两个命令没有添加上去就行
guest_enable=YES
guest_username=virtual

5.6建立pam认证文件

[root@localhost pam_mysql-0.7RC1]# vim /etc/pam.d/vsftpd.virtual

auth required /usr/lib64/security/pam_mysql.so user=virtual passwd=123456 host=localhost db=ftpdb table=ftpusers usercolumn=name passwdcolumn=password crypt=0
account required/usr/lib64/security/pam_mysql.so user=virtual passwd=123456 host=localhost db=ftpdb table=ftpusers usercolumn=name passwdcolumn=password crypt=0

注意:以上文件共2行,如下所示。
在这里插入图片描述

注意:
crypt=n
crypt=0:明文密码
crypt=1:使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)
crypt=2:使用MYSQL中的password()函数加密crypt=3:表示使用md5的散列方式

5.6重启vsftpd服务

[root@localhost pam_mysql-0.7RC1]# systemctl restart vsftpd

5.7采用虚拟用户pei和huan进行测试

[root@localhost ~]# ftp localhost
Trying ::1…
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): huan
331 Please specify the password.
Password:(密码输入huan
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>dir
229 Entering Extended Passive Mode (|||33353|).
150 Here comes the directory listing.
226 Directory send OK.
ftp> exit
221 Goodbye.

5.8将虚拟用户设置独立目录

[root@localhost ~]# vim /etc/vsftp.conf

user_config_dir=/etc/vsftpd/vsftpd_user_conf

[root@localhost ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf

5.9用户huan拥有自己的个人目录,具有修改文件的属性

[root@localhost ~]# vim /etc/vsftp.conf
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf
[root@localhost ~]# mkdir /home/huan
[root@localhost ~]# chown virtual.virtual /home/huan/
[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf
[root@localhost vsftpd_user_conf]# vim huan

local_root=/home/huan
anon_other_write_enable=YES
anon_upload_enable=YES

重启vsftpd

[root@localhost ~]# systemctl restart vsftpd

5.10测试虚拟用户个人目录及属性设置
在huan的主目录下新建两个文件(1.txt,hello-dir),以及在root目录新一个2.txt文件

[root@localhost ~]# cd /home/huan
[root@localhost huan]# touch 1.txt
[root@localhost huan]# touch test_dir
[root@localhost huan]# cd
[root@localhost ~]# touch 2.txt

测试

[root@localhost ~]# ftp localhost
Trying ::1…
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): huan
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get 1.txt
local: 1.txt remote: 1.txt
229 Entering Extended Passive Mode (|||35884|).
150 Opening BINARY mode data connection for 1.txt (0 bytes).
226 Transfer complete.
ftp> put 2.txt
local: 2.txt remote: 2.txt
229 Entering Extended Passive Mode (|||38336|).
150 Ok to send data.
226 Transfer complete.
ftp> rename test_dir hello-dir
350 Ready for RNTO.
250 Rename successful.
ftp> dir
229 Entering Extended Passive Mode (|||22539|).
150 Here comes the directory listing.
-rw-r–r-- 1 0 0 0 Mar 01 11:53 1.txt
-rw-r–r-- 1 1002 1002 0 Mar 01 11:55 2.txt
-rw-r–r-- 1 0 0 0 Mar 01 11:52 hello-dir
226 Directory send OK.
ftp> exit
221 Goodbye.


6.启用日志文件

在主配置文件/etc/vsftpd/vsftpd.conf中找到相关信息进行修改

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

xferlog_enable=YES
xferlog_std_format=NO

重启vsftpd服务

[root@localhost ~]# systemctl restart vsftpd

在Windows测试

  • 按win+R键输入FTP回车
    在这里插入图片描述

  • 输入open 172.16.51.1后回车,然后输入用户名和密码

在这里插入图片描述

  • 输入dir查看FTP服务器中的文件及目录
    在这里插入图片描述

  • 输入lcd d:\进入本地D盘,然后输入!dir查看本地文件及目录

在这里插入图片描述

  • 输入put mary.txt(我事先已在D盘建了)上传自FTP服务器,然后输入dir查看

在这里插入图片描述

查看日志

[root@localhost ~]# cat /var/log/vsftpd.log

在这里插入图片描述

博主首页:https://zjj0707.blog.csdn.net/
如果文章对你有帮助,记得一键三连

猜你喜欢

转载自blog.csdn.net/weixin_42768634/article/details/114261294