搭建vsftpd服务器的记录

昨天在单位搭建了一个ftp的服务器,由于在单位的开发服务器上采用的linux系统,所以使用了vsftpd服务器。去网上找了一大堆的安装配置说明,弄的我有晕晕糊糊的,而且因为几个细节的地方没有注意到导致我浪费了好多宝贵的青春,尤其是中午吃饭的青春。呵呵,还是自己总结一下吧,以防下次遇到相同的状况不知道什么地方又犯迷糊

安装vsftpd服务器的文档在网上虽然很多,但大部分都是转载的,所以随便去google上搜索“vsftpd配置”会有更多更为详尽的文档说明。我的原则是尽量从简,只记录我搭建的步骤,呵呵,能搭起来就好,毕竟,我以前都没用过ftp

1.获取vsftpd
VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)可以在网上下载到压缩包。我下的版本是vsftpd-2.0.5.tar.tar
2.安装vsftpd
以root权限登陆,解压缩vsftpd-2.0.5.tar.tar,
# tar zxvf vsftpd-2.0.5.tar.tar
进入vsftpd-2.0.5目录,然后执行make,make install
3.复制配置文件
安装完成后需要复制几个重要的配置文件
1)cp vsftpd /usr/local/sbin/vsftpd
2)cp vsftpd.conf.5 /usr/local/share/man/man5
3)cp vsftpd.8 /usr/local/share/man/man8
4)cp vsftpd.conf /etc
4.修改配置文件/etc/vsftpd.conf
用编辑器打开/etc/vsftpd.conf,这里是vsftp服务器的配置说明,里面用#开头的都是被注视掉的,可以根据具体情况打开,具体内容可以去其他资料查阅每一项的含义,每次修改一定要重新启动服务器!这里仅根据我们公司要求设置修改:(在原有基础上的改动之处)
1)不允许匿名登陆 Anonymous_enable=NO
2)本地用户可以登陆 local_enable=YES
3)本地用户可以修改 write_enable=YES
4)以standalone模式启动服务器 listen=YES
其他几个地方是原来文件中已经打开的,仅说明含义:
local_umask=022 默认的umask码
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件

xferlog_enable=YES 是否记录ftp传输过程

connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
5.复制PAM
这一步决定本地用户能否登陆到ftp
# cp RedHat/vsftpd.pam /etc/pam.d/ftp
6.创建用户
凡是本地用户都可以登陆ftp(没有ftp用户和nobody用和的需要创建),但是如果需要给仅允许登陆ftp不允许登陆系统的用户就需要创建ftp用户,在此之前最好为该用户创建访问的指定目录
mkdir /opt/user
创建仅可以访问ftp的用户user
adduser -d /opt/user -g ftp -s /sbin/nologin user
-d指定到/opt/user  -g将user用户加入ftp组  -s /sbin/nologin不允许登陆系统
设置用户密码
passwd user
更改目录的访问权限和读写权限
chown user /opt/user
chmod 755 /opt/use
7.启动服务器
/usr/local/sbin/vsftpd &
查看一下服务器进程号
ps -ef | grep vsftpd

其他关于匿名登陆的方式可以通过修改配置文件来实现,其实匿名登陆就是以用户名和密码都是ftp登陆。