分类: BSD
2007-07-16 16:31:29
FreeBSD功能强大,ftp服务器只是它其中的很基础的一种服务,但是作为日常的服务器运作ftp服务却是必不可少,本篇是本人自己在学习FreeBSD的服务器设置过程中的一些积累,因为自己也曾是由菜鸟入门,走了不少弯路,现在把自己的一些经验总结出来,供大家参考,希望对新人能有所帮助,不足之处还请大家多多指点.
1、安装
通过ports安装,这个方式比较简单。
# cd /usr/ports/ftp/vsftp
# make install
2、配置
(1)编辑/usr/local/etc/vsftpd.conf
# ee /usr/local/etc/vsftpd.conf
Anonymous_enable=NO (禁止匿名登陆)
Local_enable=YES (允许本地用户登陆)
Local_umask=022 (FTP上本地的文件权限755,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Idle_session_timeout=120(秒) (用户会话空闲后2分钟)
Data_connection_timeout=300(秒) (将数据连接空闲5分钟断)
Ascii_upload_enable=YES (起用ASCII方式上传)
Ascii_download_enable=YES帮带(起用ASCII方式下载)
Ftpd_banner=Welcome to blah FTP service. (FTP服务器登陆欢迎信息)
Chroot_list_enable=YES (开启锁定用户目录)
Chroot_list_file=/任意路径/vsftpd.chroot_list (要锁定目录的用户保存文件,格式为每个用户一行)
注:如果想把本地的任何用户都锁定在自己的目录中的话,把上面两行注释掉,再增加这一样
Chroot_local_user=YES
保存退出
(2)编辑/etc/inetd.conf
# ee /etc/inetd.conf
增加这一行并去掉前面的注释(#号)
#ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd
保存退出
(3)编辑/etc/rc.conf
# ee /etc/rc.conf
增加下面内容:
inetd_enable="YES"
注:以上是以inetd的方式启动vsftp的,我们也可以以独立进程的方式启动vsftp,具体如下:
a、注释掉inetd里面的vsftpd这一行。
b、在vsftpd.conf文件里增加listen=YES这句。
c、进入/usr/local/libexec/目录,执行./vsftpd & 。
d、想要让vsftp随系统启动,可在/usr/local/etc/rc.d/目录里增加一个sh脚本:
# vi vsftpd_start.sh
# ! /bin/sh
/usr/local/libexec/vsftpd &
保存退出,再chmod 755 vsftpd_start.sh 。
(4)添加用户
www# mkdir /home/ywang
www# pw addgroup ftp
www# pw adduser ywang -d /home/ywang
www# passwd ywang
# pw groupadd vsftpd –g 1001
# pw useradd test –g 1001–d /home/test –s /sbin/nologin
# mkdir /home/test
# passwd test 设密码
Changing local password for test
New Password:
Retype New Password:
#
在vsftpd.chroot_list文件里增加test一行,把test用户所在其自家目录下。
# killall -HUP inetd,(如果是独立进程则执行上面写的那个脚本即可)测试一下:
# ftp localhost
如果成功会提示你输入用户名和密码
如果不成功,请查看一下你上面的配置
(5)用户功能权限配置
以下是一些用户的配置:
Anonymous_enable=yes (允许匿名登陆)
Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask=022 (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=XXXXX (欢迎信息)
Pam_service_name=vsftpd (验证方式)
Listen=yes (独立的VSFTPD服务器)
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
Anon_world_readable_only=no (放开匿名用户浏览权限)
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
Accept_timeout=60(秒) (将客户端空闲1分钟后断)
Connect_timeout=60(秒) (中断1分钟后又重新连接)
Ascii_upload_enable=yes (启用上传的ASCII传输方式)
Ascii_download_enable=yes (启用下载的ASCII传输方式)
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
(前提是chroot_local_user=no)
Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)
Local_max_rate=50000(bite) (本地用户传输率50K)
Anon_max_rate=30000(bite) (匿名用户传输率30K)
Chown_uploads=yes (改变上传文件的所有者为root)
Chown_username=root
Pasv_min_port=50000
}(将客户端的数据连接端口改在50000—60000之间)
Pasv_max_port=60000
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
Userlist_enable=yes (在指定的文件中的用户不可以访问)
Userlist_deny=yes
Userlist_file=/指定的路径/vsftpd.user_list
Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)
Guest_enable=yes (虚拟用户可以登陆)
Guest_username=所设的用户名 (将虚拟用户映射为本地用户)
User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹
(指定不同虚拟用户配置文件的路径)
Deny_email_enable=yes (是否允许禁止匿名用户使用某些邮件地址)
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=yes ( 服务器端用被动模式)
User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)