Linux搭建FTP服务器(一)
- 原理
FTP作为古老的传输协议之一,它主要作用于服务器和客户端文件传输。但它是明文传输,存在许多的安全危机,因此vsftp这个软件出现了。 - 功能
vsftpd(Very Secure FTP Daemon——“非常安全”)
①不同等级的用户身份:user、guest、anonymous(匿名用户)
②命令记录与日志文件记录
FTP可以使用syslogd来进行数据的记录,记录用户曾经使用过的命令与用户传输数据的及记录。(/var/log)
③限制用户活动目录:chang root(chroot) - 主动模式和被动模式
- 区别:
主动模式:自动启动20端口进行通信
被动模式:客户端发送请求时,告诉服务器是被动连接,服务器端会自己启动一个被动模式的数据连接端口,并将端口告知客户端。 /etc/vstfpd/vsftpd.conf
整个vsftpd软件的配置文件,该文件的设置是以"参数=设置值"来设置的。(man 5 vsftpd.conf可详细了解)。/etc/pam.d/vsftpd
使用pam模块时的配置文件,用于身份认证以及阻挡一些用户身份的功能。/etc/vsftpd/ftpusers
将不想让其登录的ftp用户账号写入这里即可。/etc/vsftpd/user_list
该文件生效否与主配置文件里的userlist_enable和userlist_deny有关,功能和/etc/vsftpd/ftpusers
一样。/etc/vsftpd/chroot_ist
该文件默认不存在,可手动建立,生效否与主配置文件的chroot_list_enable、chroot_list_file有关。可将某些实体用户限制在它们的用户主目录下。/usr/sbin/vsftpd
vsftpd的主要执行文件(唯一)/var/vsftpd
vsftpd默认匿名用户登录的根目录。- vsftpd.conf配置文件(参考了biuayi.cn网站的《CentOS 搭建FTP服务器(一)》)
man 5 vsftpd.conf
#是否允许匿名登录
anonymous_enable=YES
#是否允许本地用户登录
local_enable=YES
#是否开放本地用户写权限
write_enable=YES
#本地用户默认的umask码
local_umask=022
#是否允许匿名ftp用户上传
anon_upload_enable=YES
#是否允许匿名用户有创建目录的权利
anon_mkdir_write_enable=YES
#是否显示目录说明文件,默认是YES但需要收工创建.message文件
dirmessage_enable=YES
#是否记录ftp传输过程
xferlog_enable=YES
#传输端口,默认20
connect_from_port_20=YES
#是否改变上传文件的属主,如果是需要输入一个系统用户名
chown_uploads=YES
#"="号后面写用户名,比如说"root"
chown_username=root
#传输日志路径
#xferlog_file=/var/log/xferlog
#是否使用标准的FTP xferlog模式
xferlog_std_format=YES
#设置默认的断开不活跃session的时间
idle_session_timeout=600
#设置数据传输超时时间
data_connection_timeout=600
#运行vsftpd需要的非特权系统用户默认是nobody
nopriv_user=ftpsecure
#是否允许运行特殊的ftp命令async ABOR.
async_abor_enable=YES
#是否使用ASCII码方式上传和下载文件
ascii_upload_enable=YES
ascii_download_enable=YES
#登录欢迎语
ftpd_banner=Welcome to blah FTP service.
#是否禁止匿名用户使用某些邮件地址
deny_email_enable=YES
#如果是输入禁止的邮件地址的路径和文件名
banned_email_file=/etc/vsftpd/banned_emails
#是否将系统用户限止在自己的home目录下
chroot_local_user=YES
#是否启用非限制用户的名单
chroot_list_enable=YES
#非限制用户名单的路径
chroot_list_file=/etc/vsftpd/chroot_list
#是否允许递归查询,不建议开启
ls_recurse_enable=YES
#是否允许侦听
listen=YES
#是否允许IPv6侦听,不可以在同一份配置文件中与listen同时启用
listen_ipv6=NO
# PAM服务名称,PAM使用vsftpd的配置文件
pam_service_name=vsftpd
#如果userlist_enable=NO,ftpusers文件中的用户将禁止访问FTP服务器
userlist_enable=YES
#是否与TCP_wrapper结合限制用户的IP地址登录
#/etc/hosts.allow 定义允许的地址
#/etc/hosts.deny 定义拒绝的来源地址
tcp_wrappers=YES