在SUSE linux 10上安装配置FTP相对是比较方便的,具体过程如下:

1、首先检查是否有VSFTPD的包

#rpm  -qa|grep vsftpd

如果没有,则可以从网上下载或使用SUSE 的系统安装盘来调取安装。

使用Suse的软件管理器,打开Yast,Software→Software Management;

在Filter→Package Groups,在下面的树形列表中Productivity→Networking→Ftp,也可以展开Ftp节点,选择其中的Servers节点;在左侧的软件包列表中选择vsftpd,然后点击下方的Accept按钮,会提示插入光盘;插入所需的光盘后,系统会自动开始安装,安装完毕,可以在下面的File List选项页中查看vsftpd相关的所有文件。

2、启动VSFTPD服务

  安装完成后,vsftpd是作为一个独立的服务启动,不接受xinetd的管理。系统会自动在Service列表中添加名称vsftpd的服务。启动服务的步骤如下: 

   Yast→System→System Services(Run level);

    在服务列表中选择vsftpd,点击下方的Enable按钮,启动服务,Finish。

    注意:在启动vsftpd时可能会无法启动,有时是因为它所依赖的服务没有启动,如syslog,这时选中syslog,点击Enable按钮。如果还是不能启动,可以重新启动xinetd服务,然后再启动vsftpd服务。     

   3、配置文件修改     

     vsftpd有三种服务器方式:匿名方式、本地方式和虚拟用户方式。vsftpd的配置文件位于/etc/目录下,名称为vsftpd.conf。下面说一下需要修改的地方:

    将local_enable=YES前的#去掉,使其可用,表示允许本地用户登录;增加listen_port=21配置项,设置监听端口为21;该步骤可选,不允许匿名用户登录,将anonymous_enable=YES的值改为NO,根据实际需要设置。

限制本地用户访问文件系统
chroot_local_user=YES    将本地用户浏览限制在其FTP根目录下,FTP用户登录后,一般在HOME的用户目录下,需要通过CHOWN来设置该目录的属主和权限,这样才可以上传和创建文件或目录,其他目录和文件都可以正常下载。 
  
  重启vsftpd服务:service vsftpd restart。或/etc/init.d/vsftpd restart启动后,在进行测试,使用本地用户userl及其密码登录,成功。

限制部分用户访问文件系统
chroot_list_enable=YES    启用列表(不可以与上条命令同时开启)
chroot_list_file=%file path%   限制用户的列表文件

连接限制
Max_client=%number%   最大连接数
max_per_ip=%number%   每ip最大连接数
anon_max_rate=%number%    匿名用户最大速率 单位kbps
local_max_rate=%number%   本地用户最大速率 单位kbps

 

  注意:其他机器不能连接该服务器

    现象:在其他机器(Windows或Redhat)上使用ftp 192.168.1.250连接该服务器,得到Connection closed by remote host或Connection timed out提示信息,连接失败。

    原因:Suse的防火墙阻止了外来机器对FTP所用的端口的访问。

    解决方法:放开防火墙对FTP所使用的20和21端口的限制,步骤如下:

    i> Yast→Security and Users→Firewall;ii> 在左侧的列表中选择Allowed Services,令人感到以外的是,即使安装FTP服务器,在Servces to Allow列表中也没有FTP服务可供选择,但是SSH、HTTP、HTTPS、Samba等都赫然在列,所以要使用高级设置。点击右下方法的Advanced按钮,打开高级设置对话框;iii> 在TCP Ports中输入20 21,注意两个端口号之间使用空格分开,OK;iv> Next→Accept,重新测试,连接成功,使用Suse系统中已有的angel及其密码登录,成功。  

用户主目录限定:
本地用户的主目录定义在/etc/passwd文件中
配置文件中的修改:
全局重定向localuser的ftp主目录
local_root=%path%

安全设置
hide_ids=YES   隐藏用户的UID和GID

创建ftp2的主目录
#mkdir /var/ftp2
#useradd -d /var/ftp2 -M FTP2

#service vsftpd restart