分类:
2009-09-19 16:55:24
Vsftpd
一. 编译安装:
首先加nobody用户,创建/usr/share/empty目录
#useradd nobody
#mkdir /usr/share/empty
Vsftp中的匿名用户为ftp,ftp用户的主目录为/var/ftp
#mkdir /var/ftp
#useradd –d /var/ftp ftp
#chown root.root /var/ftp 设置/var/ftp的属主位root
#chmod og-w /var/ftp
准备工作完成后,就可以编译安装了。
#tar –zxvf vsftpd-
#cd vsftpd-
#./configure
#make
#make install
#cp vsftpd.conf /etc
如果要求允许本地用户登录服务器,还需要做一步操作:
#cp RedHat/vsftpd.pam /etc/pam.d/ftp
Make install完了以后,看看多了哪些文件和目录:
/usr/local/sbin/vsftpd 这是vsftpd的主程序,就是它提供了ftp服务
/usr/share/man/man8/vsftpd.8
/usr/share/man/man5/vsftpd.conf.5 这是vsftpd的man手册
/etc/xinet.d/vsftpd
编辑配置文件/etc/vsftpd.conf,在文件的末尾加Listen=YES,启动服务:#vsftpd &
其执行程序在/usr/local/sbin/vsftpd或/usr/sbin/vsftpd.
二. 服务器配置
服务器的配置方案要依据具体情况和企业需求来配置,假设我们的目标如下:
(1)目录结构:/var/ftp下包括三个目录,/var/ftp/pub, /var/ftp/incoming, /var/ftp/pub2
(2) 服务开停:需要vsftpd在每次开机后自动启动,关机时自动停止。在每个用户连接到本服务器之后,服务器自动的显示一些欢迎信息“欢迎使用本FTP服务器!本服务器严禁传播非法数据文件!”
(3)用户权限设置:禁止匿名用户登录。Upload用户能够读取所有目录内容,能够向服务器上传,创建,删除文件,创建,删除目录。Download用户能够读取所有目录内容,能够下载所有目录下的所有文件,不能上传文件,不能删除目录,不能创建文件,不能修改文件名,目录名。
(4)安全管理:vsftpd的所有运行信息都要记录日志,并保存在/var/log/vsftpd.log中。
现在开始配置!
1.配置自动启动:(独立的控制vsftpd的运行)
#vi /etc/vsftpd.conf 加:Listen=YES.若是没有这句话,或是设置为NO,则服务只能以xinetd德方式来启动,这时如果强行以单独方式启动,会出现“500oops:vsftpd:not configured for standalone ,must be started from inetd”的错误信息。同时,将/etc/xinetd.d/vsftpd中“disable=no”中的no改为yes.
#vi /etc/xinetd.d/vsftpd 把”disable=no”改为yes,目的是让xinetd服务不再负责vsftpd的启动。不然会出现错误信息“500 OOPS:could not bind listening IPv4 socket”。
#service xinetd restart
接下来,我们借用一下RPM包中的文件作为我们启动/停止vsftpd的脚本。
将RPM文件复制到/tmp下备用,在【应用程序】【系统管理】【归档管理器】中打开/tmp目录下的vsftpd-
#mkdir /etc/vsftpd
#ln –s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf
#ln –s /usr/local/sbin/sbin/vsftpd /usr/sbin/vsftpd
这些命令方便RedHat提供的控制命令脚本能够找到这些文件和目录。测试命令如下:
#/etc/rc.d/init.d/vsftpd start
设置其完成自动开停:
#chkconfig --level 3 vsftpd on
#chkconfig --level 5 vsftpd on /* /etc/rc.d/init.d/vsftpd在级别5时由系统来控制启动 */
#ll /etc/rc3.d/ |grep vsftpd
Lrwxrwxrwx 1 root ………………S60vsftpd.-à…/init.d/vsftpd
#ll /etc/rc5.d/ | grep vsftpd
Lrwxrwxrwx 1 root ……………….-à…/init.d/vsftpd
这个命令会在/etc/rc3.d目录中创建一个连接文件S60vsftpd.其中,S表示start,表示系统在启动时运行此连接。
2.日志文件在/var/log/vsftpd.log
3.配置用户访问权限:
#mkdir /var/ftp/pub
#mkdir /var/ftp/pub2
#mkdir /var/ftp/incoming
#useradd –g ftp –d /var/ftp –M upload -M:不再/home下创建用户主目录
#useradd –g ftp –d /var/ftp –M download
#chown upload.ftp /var/ftp
#chmod 750 /var/ftp –R 权限向下级传播
4.添加欢迎消息
#vi /etc/vsftpd.conf
设置ftpd_banner的值为“欢迎使用本服务器,本服务器禁止传播非法数据文件!”
至此,配置完成!
Vsftpd服务高级配置:
1.修改默认监听地址和端口
若在超级管理方式下启动,做如下修改:
#vi /etc/xinetd.d/vsftpd
添加port=2121 bind=192.168.2.3 为监听地址和端口
同时还要修改/etc/services文件:
#vi /etc/services
将 ftp 21/tcp
ftp 21/udp fsp fspd
改为 ftp 2121/tcp
ftp 2121/udp fsp fspd
#service xinetd restart
Windows下访问时:
若在守候方式(独立)下启动,则做如下修改:
#vi /etc/vsftpd.conf
添加 listen_port=2121
listen_address=192.168.2.3
#/etc/rc.d/init.d/vsftpd restart
在/etc/vsftpd.conf文件中,还有几个重要的参数要了解:
chroot_local_user=yes 切换目录只能切换到用户主目录
chroot_list_enable=yes 开启切换目录访问控制功能
chroot_list_file=/etc/chroot.user 出现在该文件中的用户可以切换目录
userlist_enable=yes 开启认证访问控制功能
userlist_deny=yes
userlist_file=/etc/userlist.user 该文件中的用户被拒绝
max_client=100 定义最大用户访问数
max_per_ip=3 定义一台客户端最多能允许登陆的用户数
anon_max_rate=10240 对匿名用户的流量控制
local_max_rate=102400 对系统帐户的流量控制