`
caiying0504
  • 浏览: 332754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

vsftpd在SuSE Linux操作系统上安装配置

阅读更多
一、安装

  Suse的图形用户界面做的很不错,所以安装过程也比较简单。

  1、打开Yast,Software→Software Management;

  2、刚开始使用Suse的软件管理器非常的不习惯,找不到所需的信息在什么地方,可是用了一段时间之后,就感觉它的分类方式更加方便,也为用户提供了更多的信息。在Filter→Package Groups,在下面的树形列表中Productivity→Networking→Ftp,也可以展开Ftp节点,选择其中的Servers节点;

  3、在左侧的软件包列表中选择vsftpd,然后点击下方的Accept按钮,会提示插入光盘;

  4、插入所需的光盘后,系统会自动开始安装,安装完毕,可以在下面的File List选项页中查看vsftpd相关的所有文件。



  二、启动服务

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

  1、Yast→System→System Services(Run level);

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

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

   三、 配置:

为了试验本地用户可以通过ftp登录,先新建个用户和目录

useradd -d /home/ftpzb -G ftp -m ftpzb

把密码改成和用户名相同方便使用

mkdir /vsftpd

chown ftp:ftp /vsftpd

chmod 555 /vsftpd  必须要555,不用555 ftp登录会报错。。。查了好久。。。

mkdir /vsftpd/locale  这个目录等下会设置成本地用户登录的主目录

chown ftpzb:ftpzb /vsftpd/locale

chmod 555 /vsftpd/locale  原因和上面一样

然后里面可以建一个目录权限是777

mkdir /vsftpd/locale/ftplocale

chmod 777 /vsftpd/locale/ftplocale  要上传的东西可以放这目录里面

同样设置一个匿名用户使用的主目录

mkdir /vsftpd/anon

chown ftp:ftp /vsftpd/anon

chmod 555 /vsftpd/anon

mkdir /vsftp/anon/ftpanon

chmod 777 /vsftp/anon/ftpanon

目录和用户设置好了,接着配置vfstpd.conf

syslog_enable=YES

log_ftp_protocol=YES

xferlog_enable=YES

connect_from_port_20=YES

listen=YES

write_enable=YES

local_enable=YES

local_umask=022

chroot_local_user=YES  可以把本地用户限制在主目录

添加 local_root=/vsftpd/locale

不限制最大速度

重启vsftpd服务后,ftpzb用户可以使用ftp了



然后配置匿名用户

anonymous_enable=YES

添加 no_anon_password=YES

#anon_world_readable_only=YES  不要打开

anon_upload_enable=YES

anon_umask=022

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

添加 anon_root=/vsftpd/anon

也是不限制最大速度

重启vsftpd服务,现在可以通过匿名用户登录了

试验下我宿主机ftp客户机,结果失败 ,原来linux防火墙默认是关闭了20、21端口的,所以需要打开这2个tcp端口

我本机连接VM里的suse linux



然后试验从浏览器访问ftp,结果什么都看不到,就像个空目录。。。打开windows窗口输入ftp://192.168.10.130,弹出服务器响应超时

原来vsftpd没有设置可以被动方式连接,需要在vsftpd.conf里启用

pasv_enable=YES

再添加 pasv_max_port=30001
         pasv_min_port=30000

防火墙中打开这2个端口,重启vsftpd服务,搞定


  四、遇到的问题

  1、只允许匿名用户登录

  现象:ftp连接过程中,提示输入用户名,输入本机已有用户名angel,得到提示:530 This FTP server is anonymous only,登录失败。

  原因:安装vsftpd后,其默认为匿名FTP服务器,只允许匿名用户登录。

  解决方法:vsftpd有三种服务器方式:匿名方式、本地方式和虚拟用户方式,此处需要修改vsftpd的配置将其设为本地方式。vsftpd的配置文件位于/etc/目录下,名称为vsftpd.conf。关于该配置文件在网上已经有很多高手做了详细的分析和讲解,并且该文件内部的注释也比较详细,这里就不再一一讲解了。下面只说明几处需要修改的地方:

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

  重启vsftpd服务:service vsftpd restart。启动后,在进行测试,使用本地用户angel及其密码登录,成功。注意:以上测试是在本机(或使用SSH登录后)进行。

  2、其他机器不能连接该服务器

  现象:本机测试通过后,在其他机器(Windows或Redhat)上使用ftp 192.168.1.8连接该服务器,得到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及其密码登录,成功。

  注意,虽然这里有些问题是在Suse下遇到,但是在其他操作系统中的vsftpd的配置中依然适用。

   五 如何设置才能使我使用root用户通过FTP登录Linux主机?谢谢了!
   1)编辑两个FTP配置文件:/etc/vsftpd.ftpusers和/etc/vsftpd.user_list,将    root那一行删掉或#注释掉;
   2)重启vsftpd服务:# service vsftpd restart

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics