FTP原理
文件传输协议(FTP)是一种传统的网络协议,主要功能是实现服务器端与客户端直接的文件传送。FTP以TCP封装包的模式进行服务器与客户的连接,当连接建立后,使用者可以通过客户端程序连接服务器端,并进行文件的下载和上传。此外,还可以直接管理用户在服务器上的文件。
FTP功能
1)不同等级的使用者。
FTP预设情况下提供三种主要的身份:
实体账号(real user)
访客(guest)
匿名登入者(anonymous)
分成三种身份可以提高主机管理的便利性。例如,实体用户可以进行的动作比较多,而匿名登入者仅提供一个下载功能。
2)命令记录与登入文件记录。
FTP可以利用系统的syslogd进行数据的记录。记录的数据包括了使用者曾经下达的命令与使用者传输的数据的记录
3)限制或解除使用者所在的根目录。
为了避免使用者进入到linux系统的其他目录。这有利于提高系统的安全性。
FTP的用户类型
匿名用户(anonymous):
常说的匿名登录,ftp服务器支持匿名登录时通常当用户匿名访问可以使用ftp/anoymous这两个用户匿名登录。
本地用户(Real user):
这类用户是指在FTP服务上拥有帐号,账号名称,密码信息存放在passwd,shadow文件中。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。
虚拟用户(Guest):
使用独立的账号/密码数据文件,只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。
安装VSFTPD
sudo apt-get install vsftpd
配置VSFTPD #
/etc/vsftpd.conf:主要配置文件:
关于主机的设置:
connect_from_port_20=YES ftp-data启动主动联机的port 20
listen_port=20 ftp访问端口
dirmessage_enable=YES 当使用者进入某个目录时,会显示该目录需要注意的内容。显示的文件预设是.message
write_enable=YES 是否允许使用者具有写入的权限
idle_session_timeout=600 空闲会话的超时限制。默认600s.空闲600s后自动断开连接
data_connection_timeout=120 数据超时限制,默认120s。
实体用户登入者的配置:
local_enable=YES 实体用户允许登入
local_umask=022 用户的权限(把本该是777权限的文件夹改为了755)如果注释了该参数,该参数会启用默认权限掩码077,那么上传的文件权限将会变为600,文件夹权限变为700
chroot_local_user=YES 是否将使用者限制在自己的主目录中
chroot_list_enable=YES 是否启用将某些实体用户限制在主目录
chroot_list_fiel=/etc/vsftpd.chroot_list 被限制的实体用户主目录路径
匿名用户登入的配置
anonymous_enable=YES 允许匿名用户登入
anon_upload_enable=YES 允许匿名用户上传
anon_mkdir_write_enable=YES 允许匿名用户创建文件夹
deny_email_file=/etc/vsftpd.banned_emails 被拒绝的email地址
async_abor_enable=YES 是否认可异步的ABOR命令
xferlog_enable=YES 是否记录上传及下载日志
xferlog_fiel=/ver/log/vsftpd.log 上传和下载日志路径
xferlog_std_format=YES 是否设定为wu ftp相同的登入格式
nopriv_user=ftpsecure 以nobody作为此一服务执行者的权限,安全性较高
pam_service_name=vsftpd pam模块的名称
/etc/pam.d/vsftpd:pam模块进行身份确认
/etc/ftpusers:限制使用的ftp用户列表
/usr/shin/vsftpd:vsftpd的主要执行文件
重启VSFTPD #
udo service vsftpd restart
匿名用户登入 #
在/etc/vsftpd.conf中配置允许匿名用户登入 (一般不允许)
实体用户登入 #
在/etc/vsftpd.conf中配置运行实体用户登入