centos-6.5-设置FTP服务器-与客户机连接FTP服务器
centos 6.5 设置FTP服务器 与客户机连接FTP服务器
服务器端
1.yum install vsftp
service vsftpd restart (ftp服务端的进程是vsftpd)
2.vsftpd服务器文件
配置文件: /etc/vsftpd/vsftpd.conf
服务器根目录: /var/ftp/pub/
vsftpd.ftpusers
:位于
/etc
目录下。它指定了哪些用户账户不能访问
FTP
服务器,例如
root
等。
vsftpd.user_list
:位于
/etc
目录下。该文件里的用户账户在默认情况下也不能访问
FTP
服务器,仅当
vsftpd.conf
配置文件里启用
userlist_enable=NO
选项时才允许访问。
vsftpd.conf
:位于
/etc/vsftpd
目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等
FTP
服务器的配置。
(1)
用户登录控制
anonymous_enable=YES
,允许匿名用户登录。
no_anon_password=YES
,匿名用户登录时不需要输入密码。
local_enable=YES
,允许本地用户登录。
deny_email_enable=YES
,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用
Dos
攻击。
banned_email_file=/etc/vsftpd.banned_emails
,当启用
deny_email_enable
功能时,所需的电子邮件黑名单保存路径
(
默认为
/etc/vsftpd.banned_emails)
。
(2)
用户权限控制
write_enable=YES
,开启全局上传权限。
local_umask=022
,本地用户的上传文件的
umask
设为
022(
系统默认是
077
,一般都可以改为
。
anon_upload_enable=YES
,允许匿名用户具有上传权限,很明显,必须启用
write_enable=YES
,才可以使用此项。同时我们还必须建立一个允许
ftp
用户可以读写的目录
(
前面说过,
ftp
是匿名用户的映射用户账号
)
。
anon_mkdir_write_enable=YES
,允许匿名用户有创建目录的权利。
chown_uploads=YES
,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定
root
账号为匿名上传文件的属主用户!
chown_username=whoever
,当启用
chown_uploads=YES
时,所指定的属主用户账号,此处的
whoever
自然要用合适的用户账号来代替。
chroot_list_enable=YES
,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果
chroot_local_user=YES
,那么这个列表里指定的用户是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list
,如果
chroot_local_user=YES
,则指定该列表
(chroot_local_user)
的保存路径
(
默认是
/etc/vsftpd.chroot_list)
。
nopriv_user=ftpsecure
,指定一个安全用户账号,让
FTP
服务器用作完全隔离和没有特权的独立用户。这是
vsftpd
系统推荐选项。
async_abor_enable=YES
,强烈建议不要启用该选项,否则将可能导致出错!
ascii_upload_enable=YES
;
ascii_download_enable=YES
,默认情况下服务器会假装接受
ASCⅡ
模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现
ASCⅡ
模式的传输。
注意:启用
ascii_download_enable
选项会让恶意远程用户们在
ASCⅡ
模式下用“
SIZE/big/file”
这样的指令大量消耗
FTP
服务器的
I/O
资源。
这些
ASCⅡ
模式的设置选项分成上传和下载两个,这样我们就可以允许
ASCⅡ
模式的上传
(
可以防止上传脚本等恶意文件而导致崩溃
)
,而不会遭受拒绝服务攻击的危险。
(3)
用户连接和超时选项
idle_session_timeout=600
,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。
data_connection_timeout=120
,设定默认的数据连接超时时间。
(4)
服务器日志和欢迎信息
dirmessage_enable=YES
,允许为目录配置显示信息,显示每个目录下面的
message_file
文件的内容。
ftpd_banner=Welcometo blah FTP service
,可以自定义
FTP
用户登录到服务器所看到的欢迎信息。
xferlog_enable=YES
,启用记录上传
/
下载活动日志功能。
xferlog_file=/var/log/vsftpd.log
,可以自定义日志文件的保存路径和文件名,默认是
/var/log/vsftpd.log
。
anonymous_enable=YES
允许匿名登录
local_enable=YES
允许本地用户登录
write_enable=YES
开放本地用户写权限
local_umask=022
设置本地用户生成文件的掩码为
022
#anon_upload_enable=YES
此项设置允许匿名用户上传文件
#anon_mkdir_write_enable=YES
开启匿名用户的写和创建目录的权限
dirmessage_enable=YES
当切换到目录时,显示该目录下的
.message
隐藏文件的内容
xferlog_enable=YES
激活上传和下载日志
connect_from_port_20=YES
启用
FTP
数据端口的连接请求
#chown_uploads=YES
是否具有上传权限
.
用户由
chown_username
参数指定。
#chown_username=whoever
指定拥有上传文件权限的用户。此参数与
chown_uploads
联用。
#xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
使用标准的
ftpdxferlog
日志格式
#idle_session_timeout=600
此设置将在用户会话空闲
10
分钟后被中断
#data_connection_timeout=120
将在数据连接空闲
2
分钟后被中断
#ascii_upload_enable=YES
启用上传的
ASCII
传输方式
#ascii_download_enable=YES
启用下载的
ASCII
传输方式
#ftpd_banner=Welcometo blah FTP service
设置用户连接服务器后显示消息
#deny_email_enable=NO
此参数默认值为
NO
。当值为
YES
时,拒绝使用
banned_email_file
参数指定文件中所列出的
地址用户登录。
#banned_email_file=/etc/vsftpd.banned_emails
指定包含拒绝的
地址的文件
.
#chroot_list_enable=YES
设置本地用户登录后不能切换到自家目录以外的别的目录
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd
设置
PAM
认证服务的配置文件名称,该文件存放在
/etc/pam.d/
userlist_enable=YES
此项配置
/etc/vsftpd.user_list
中指定的用户也不能访问服务器,若添加
userlist_deny=No,
则仅仅
/etc/vsftpd.user_list
文件中的用户可以访问,其他用户都不可以访问服务器。如过
userlist_enable=NO,userlist_deny=YES,
则指定使文件
/etc/vsftpd.user_list
中指定的用户不可以访问服务器,其他本地用户可以访问服务器。
listen=YES
指明
VSFTPD
以独立运行方式启动
tcp_wrappers=YES
在
VSFTPD
中使用
TCP_Wrappers
远程访问控制机制,默认值为
YES
a. 建立FTP账户
#adduser -d /tmp/test -g ftp -s /sbin/nologin test //建立一个test用户,目录为/tmp/test, 不能用作登陆系统用
#passwd test //设置密码
b.限制用户目录,不得改变目录到上级
修改/etc/vsftpd/vsftpd.conf
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
b1.注释去掉
b2.新增一个文件 /etc/vsftpd/chroot_list
内容写需要限制的用户名: test
重启vsftpd
客户端
1.安装ftp客户端
yum install ftp
ftp
open ftp_server_ip
username
passwd
2.用浏览器连接的时候会出现oops 500 chroot.
原因是是selinux的问题,它有一个叫做”Allow ftp to read/write in the user home directories” 的选项。
使用如下命令 /usr/sbin/setsebool -P ftp_home_dir on 打开选项
或者
setsebool-P ftpd_disable_trans=1
vsftpd服务器常见错误: