FTP介绍
FTP是File Transfer Protocol(文件传输协议的英文简称),用于internet上控制文件双向传输,ftp主要作用就是让用户连接一个远程计算机(安装了FTP程序),并查看远程计算机中的文件,可以把远程计算机中的文件复制到本地计算机中,或者把文件传输到远程计算机当中。
什么情况下使用FTP;在远程终端中操作linux时,有时候我们需要传输一个很大的文件到服务器,或者需要从服务器下载一个很大的文件。通常我们使用rzsz命令就可以满足大部分需求,但是当文件大于4GB以上时,rzsz会不支持大文件传输,这时候rzsz这个命令就无能为力了。我们就需要使用一个能够传输大文件的传输协议,这个就是文件传输协议,即FTP传输工具
FTP因为安全性较差,大的企业中应用到的地方不多,因为大企业都会有自己的一套传输控制的方案
使用vsftp搭建ftp服务
安装vsftpd
[[email protected] /]# yum install -y vsftpd
已加载插件:fastestmirror
base | 3.6 kB 00:00:00 ? ?
epel/x86_64/metalink | 8.3 kB 00:00:00 ? ?
epel ? ?
已安装:
vsftpd.x86_64 0:3.0.2-22.el7 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
完毕!
创建运行的用户,vsftp可以使用系统级别的用户,该用户是系统用户,可以登录到系统当中,但是这样又会不安全,所以vsftp有虚拟用户这一设置,虚拟用户建立在真实用户上,虚拟用户可以登录访问vsftp,但是不可以登录系统,增加了安全性
创建真实用户和虚拟用户,虚拟用户在配置文件中定义,奇数行为用户名。偶数行为用户的密码,创建后保存退出
[[email protected] /]# useradd -s /sbin/nologin vsftpd
[[email protected] /]# vim /etc/vsftpd/vsftpd_login
user1
passwd1
~ ? ?
使用db_load转换用户密码配置文件 ?db_load -T -t hash -f? ?密码配置文件 ? 转换后的文件.db
?将虚拟用户配置文件权限设置为600只允许root可读,其他用户无权限访问,并把虚拟用户配置文件转为二进制的文件
[[email protected] /]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[[email protected] /]# ll -h /etc/vsftpd/
总用量 36K
-rw------- 1 root root 125 8月 3 2017 ftpusers
-rw------- 1 root root 361 8月 3 2017 user_list
-rw------- 1 root root 5.0K 8月 3 2017 vsftpd.conf
-rwxr--r-- 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh
-rw------- 1 root root 14 8月 18 09:05 vsftpd_login
-rw-r--r-- 1 root root 12K 8月 18 09:10 vsftpd_login.db
创建虚拟用户配置文件,创建虚拟用户配置文件保存目录,并配置文件必须要和虚拟用户配置文件中的用户名保持一致
[[email protected] /]# mkdir /etc/vsftpd/vsftpd_user_conf
[[email protected] /]# cd /etc/vsftpd/vsftpd_user_conf/
[[email protected] vsftpd_user_conf]# vim user1
local_root=/home/vsftpd/user1 ? ? ? ? ? ? 指定虚拟用户的家目录,即可访问的目录
anonymous_enable=NO ? ? ? ? ? ? ? ? ? ? ? 是否禁止匿名用户访问,YES允许/NO拒绝
write_enable=YES ? ? ? ? ? ? ? ? ? ? ? ? ? 是否设置为只读
local_umask=022 ? ? ? ? ? ? ? ? ? ? ? ? ? 创建的文件默认权限
anon_upload_enable=NO ? ? ? ? ? ? ? ? ? ? 匿名用户是否可写
anon_mkdir_write_enable=NO ? ? ? ? ? ? ? ? 匿名用户是否可读
idle_session_timeout=600 ? ? ? ? ? ? ? ? ? 链接的最大时间,超过这个时间为超时链接,会被结束掉
data_connection_timeout=120 ? ? ? ? ? ? ? 数据最大保持时间
max_clients=10 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最大链接数
创建虚拟用户的访问目录,创建测试文件并将虚拟用户家目录设置为指定的所属主、所属组
[[email protected] vsftpd_user_conf]# mkdir /home/vsftpd/user1
[[email protected] vsftpd_user_conf]# touch /home/vsftpd/user1/index.html
[[email protected] vsftpd_user_conf]# chown -R vsftpd:vsftpd /home/vsftpd/
在vsftp的模块配置文件中添加保存虚拟用户和用户密码的文件位置,指定支持库的位置。
加入如下两行,注意的是在lib64这个位置,是区分系统位数的,如lib32对应的是32位的操作系统
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
修改vsftpd的主配置文件,这个文件起到全局作用,其配置生效的优先级大于虚拟用户配置文件中的配置
在主配置文件中修改下列内容,取消注释并将YES改为NO
[[email protected] vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO ? ? ? ? ? ? ? ? 禁止匿名用户访问
anon_upload_enable=NO ? ? ? ? ? ? ? 禁止匿名用户写入
anon_mkdir_write_enable=NO ? ? ? ? 禁止匿名用户读取
主配置文件中添加新的配置项
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
vurtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
原文地址:http://blog.51cto.com/8844414/2165079