目录

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

参数指定文件中所列出的

e-mail

地址用户登录。

#banned_email_file=/etc/vsftpd.banned_emails

指定包含拒绝的

e-mail

地址的文件

.

#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服务器常见错误: