代码改变世界

CentOS6配置vsftp

2013-09-25 17:12  陈尚华  阅读(216)  评论(0编辑  收藏  举报

一、实验环境:

主机名                  IP(Static)                             系统                                            配置                                用途
FTPServer       192.168.220.203        CentOS-6.4-x86_64-mini          2CPU,1G RAM,40G DISK,1网卡     FTPServer


二、FTP用户:

admin    上传/下载/修改/删除权限。

upload   上传/下载权限。

user       下载权限。


三、系统配置:

1、基础配置:

[root@ftpserver ~]# vi /etc/selinux/config

SELINUX=enforcing  ------------->  SELINUX=disabled

[root@ftpserver ~]# service iptables stop

[root@ftpserver ~]# service ip6tables stop

[root@ftpserver ~]# chkconfig --level 3 iptables off

[root@ftpserver ~]# chkconfig --level 3 ip6tables off

[root@ftpserver ~]# reboot

2、创建FTP目录并设置权限:

[root@ftpserver ~]# mkdir /ftp

[root@ftpserver ~]# chmod -R 777 /ftp

3、安装必要软件:

[root@ftpserver ~]# yum -y install vsftpd pam* db4*

[root@ftpserver ~]# chkconfig --level 3 vsftpd on

4、创建FTP虚拟宿主账户:

[root@ftpserver ~]# useradd developer -s /sbin/nologin    //建立虚拟账户宿主,不用于登录。

[root@ftpserver ~]# useradd vsftpd -s /sbin/nologin

[root@ftpserver ~]# cd /etc/vsftpd/

[root@ftpserver vsftpd]# vi vsftpd.conf

#不允许匿名用户访问,默认是允许

anonymous_enable=NO

#设定本地用户可以访问。注意:如果该项目设定为NO那么所有虚拟用户将无法访问。

local_enable=YES

#设定可以进行写操作。

write_enable=YES

#设定上传后文件的权限掩码.

local_umask=022

#禁止匿名用户上传

anon_upload_enable=NO

#禁止匿名用户建立目录

anon_mkdir_write_enable=NO

#设定开启目录标语功能

dirmessage_enable=YES

#设定开启日志记录功能

xferlog_enable=YES

#设定端口20进行数据连接

connect_from_port_20=YES

#设定禁止上传文件更改宿主

#chown_uploads=YES

#拥有匿名用户上传文件所有权的用户

#chown_username=whoever

#设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。

xferlog_file=/var/log/xferlog

#设定日志使用标准的记录格式

xferlog_std_format=YES

#设定空闲连接超时时间,这里使用默认

idle_session_timeout=600

#设定单次最大连续传输时间,这里使用默认

data_connection_timeout=120

#设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题,比如日志文件就必须给与该用户写入权限等

#nopriv_user=ftpsecure

nopriv_user=vsftpd

#设定支持异步传输功能

async_abor_enable=YES

#设定支持ASCII模式的上传和下载功能

ascii_upload_enable=YES

ascii_download_enable=YES

#设定Vsftpd的登陆标语

ftpd_banner=Welcome to EZCloud FTP service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd/banned_emails

# users to NOT chroot().

#将所有用户锁定在主目录

chroot_local_user=YES

#禁止用户登出自己的FTP主目录

chroot_list_enable=NO

#chroot_list_file=/etc/vsftpd/chroot_list

#禁止用户登陆FTP后使用"ls -R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命令时将会对该服务器造成威胁

ls_recurse_enable=NO

#设定该Vsftpd服务工作在StandAlone模式下

listen=YES

listen_ipv6=NO

#设定PAM服务下Vsftpd的验证配置文件名

pam_service_name=vsftpd

#设定userlist_file中的用户将不得使用FTP

userlist_enable=NO

#服务器使用tcp_wrappers作为主机的访问控制方式

tcp_wrappers=YES

#设定启用虚拟用户功能

guest_enable=YES

#指定虚拟用户的宿主用户

guest_username=developer

#设定虚拟用户的权限符合他们的宿主用户

# virtual_use_local_privs=YES

#设定虚拟用户个人Vsftp的配置文件存放路径

user_config_dir=/etc/vsftpd/vconf

#设定PAM服务下Vsftpd的验证配置文件名

pam_service_name=vsftpd

#放开匿名用户浏览权限

anon_world_readable_only=NO

5、创建配置文件存放路径:

[root@ftpserver vsftpd]# mkdir vconf

[root@ftpserver vsftpd]# cd vconf

6、创建虚拟用户:

[root@ftpserver vconf]# vi vir_user

admin

admin123456

upload

upload123456

user

user123456

7、生成数据库:

[root@ftpserver vconf]# db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db

8、设置数据库文件访问权限:

[root@ftpserver vconf]# chmod 600 /etc/vsftpd/vconf/vir_user.db

[root@ftpserver vconf]# chmod 600 /etc/vsftpd/vconf/vir_user

修改/etc/pam.d/vsftpd内容:

[root@ftpserver vconf]# vi /etc/pam.d/vsftpd

#%PAM-1.0

#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

#account    include     password-auth

#session    required     pam_loginuid.so

#session    include     password-auth

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vconf/vir_user

9、创建用户配置文件,文件名要与vir_user一致:

[root@ftpserver vconf]# vi admin

local_root=/ftp

virtual_use_local_privs=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

[root@ftpserver vconf]# vi upload

local_root=/ftp

local_umask=022

virtual_use_local_privs=NO

download_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

[root@ftpserver vconf]# vi user

local_root=/ftp

virtual_use_local_privs=YES

write_enable=NO

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

10、设置语言:

[root@ftpserver vconf]# vi /etc/sysconfig/i18n

LANG="zh_CN.GB18030"

SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

11、重启FTP服务:

[root@ftpserver vconf]# service vsftpd restart

关闭 vsftpd:[确定]

为 vsftpd 启动 vsftpd:[确定]