FTP服务

来源:互联网 发布:淘宝固定背景怎么设置 编辑:程序博客网 时间:2024/05/18 01:22

一、FTP工作原理
(1)FTP服务器运行FTPd守护进程,等待用户的FTP请求。
(2)用户运行FTP命令,请求FTP服务器为其服务。
(3)FTPd守护进程收到用户的FTP请求后,派生出子进程FTP与用户进程FTP交互,建立文件传输控制连接,使用TCP 端口21。
(4)用户输入FTP子命令,服务器接收子命令,如果命令正确,双方各派生一个数据传输进程FTP-DATA,建立数据连接,使用TCP端口20,进行数据传输。
(5)本次子命令的数据传输完,拆除数据连接,结束FTP-DATA进程。
(6)用户继续输入FTP子命令,重复(4)、(5)的过程,直至用户输入quit命令,双方拆除控制连接,结束文件传输,结束FTP进程。
二、安装vsftp服务

(1)yum install vsftpd -y #服务器端

(2)yum install lftp -y #客户端

三、vsftpd服务的启动与关闭
(1) systemctl start vdftpd #启动

(2) systemctl stop vdftpd #关闭

(3) systemctl restart vdftpd #重启

四、vsftpd配置文件

(1) /etc/vsftpd/vsftpd.conf 主配置文件

(2) /etc/pam.d/vsftpd

PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)

(3) /etc/vsftpd/ftpusers

禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。

(4) /etc/vsftpd/user_list

禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置 userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。

(5) /var/ftp

vsftpd提供服务的文件散集地,它包括一个pub子目录,默认情况下,所有目录都是只读的。
五、vsftpd配置文件详解
(1)用户登录控制
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。

(2)用户权限控制
write_enable=YES,开启全局上传权限。

local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。

anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。

anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。

六、创建虚拟用户

1、创建一临时文件并编辑文件

touch /etc/vsftpd/ftp_db_users

vim /etc/vsftpd/ftp_db_users (文件内容如下:创建了两个帐号)

ftpuser1                       用户1ftp                            用户1密码ftpuser2                       用户2ftp                            用户2密码

2、用db_load命令生成pam_userdb认证所需的帐号文件

db_load -T -t hash -f /etc/vsftpd/ftp_db.users /etc/vsftpd/vsftpd.login.db

3、配置PAM信息

在/etc/pam.d/目录下新建文件夹,名字为vsftpd.pam,文件内容如下:

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

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

4、配置vsftpd.conf(设置虚拟用户配置项)
vim /etc/vsftpd/vsftpd.conf ,内容如下:

guest_enable=YES     #开启虚拟用户guest_username=ftp   #FTP虚拟用户对应的系统用户 pam_service_name=vsftpd.pam #PAM认证文件

5、创建虚拟用户目录

根据前面提示我们知道,ftpuser1和ftpuser2的家目录分别为:

/var/ftp/virtual/ftpuser1和/var/ftp/virtual/ftpuser2 在启动服务之前,我们先创建这两个目录

mkdir /var/ftp/virtual/ftpuser1 -p

mkdir /var/ftp/virtual/ftpuser2 -p

chown ftp.ftp /var/ftp/virtual/ftpuser1

chown ftp.ftp /var/ftp/virtual/ftpuser2

6、按照配置文件启动服务

systemctl restart vsftpd

7、用虚拟用户测试虚拟权限

ftp -u ftpuser1 192.168.1.114

原创粉丝点击