OpenBSD 下架设vsftpd

老文一篇

-----------------

最近玩OpenBSD,由于自己机器不在,只好在别人的机器上用虚拟机来过过瘾了。

相比之前的NetBSD,OpenBSD给我的最大感受就是简单,配置Web服务,ftp服务等原来觉得高深莫测的东西在OpenBSD下都觉得不过如此,简单至极:就是配置就是看看配置文件,运行和停止服务是敲个命令就搞定的事(也可能是内功在不知不觉中提高了,以前觉得不可理解的东西现在都慢慢习惯了)。

废话少说,开始正题。

1。安装vsftpd

 OpenBSD的网络配置在安装时已经搞定,设为192.168.1.103,通过putty来连接操作机器。

 关于vsftpd就不做介绍了,百度一下就知道了。我是通过package的形式安装的,步骤略述如下:

 (1)设置PKG_PATH

  #export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.4/packages/i386/

  或者把该环境变量写到用户shell的配置文件中,这样以后启动shell时就会自动设置该环境变量,否则每次使用时都需要手动设置:

  #cd

  #vi .profile

 在里面添加如下代码:

 PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.4/packages/i386/

 export PKG_PATH

 保存退出,重启shell。

 查看设置是否有效:

 #echo $PKG_PATH

 如果返回

ftp://ftp.openbsd.org/pub/OpenBSD/4.4/packages/i386/

就说明设置成功了。

 (2)安装vsftpd

#pkg_add -v vsftpd-2.0.5.tgz

等待安装完成即可。

2。配置vsftpd

配置参照:http://bbs.chinaunix.net/viewthread.php?tid=561183&extra=&page=1

vsftpd有两种启动方式,我选择最简单的:安装完成后在shell下运行vsftpd命令就可启动vsftpd服务。

#vsftpd

启动这个服务需要root权限,如果提示权限不够的话:

#su -

在启动即可。

vsftp的配置文件是/etc/vsftpd.conf,用vi打开即可查看详细的配置情况,每一项都有具体的说明。保持默认配置不做改动,在浏览器中输入ftp://192.168.1.103即可登入。但奇怪的是默认配置明明允许匿名登陆但实际登陆时却需要用户名和密码,以本地用户(local user,即系统用户)登陆,发现直接打开用户的home目录。

这时服务虽然启动了,但要想做一个真正的ftp服务器还得继续做一些设置。

先说说vsftpd的三种用户:匿名用户(这是我们最常见的anonymous),本地用户(也就是系统用户),虚拟用户(专门为ftp服务添加的用户,不能登陆系统),之所以设置这么多类型主要是考虑系统的安全和用户的权限管理。不同类型的用户配置可能有不同,我这里单说匿名用户。

通常都需要作如下设置:

# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp

请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
我前面说默认配置匿名用户无法登陆,可能是因为没有为匿名用户添加相应目录,在
mkdir /var/ftp 后匿名用户也可登陆了。

为了测试,在 /var/ftp 下创建一些目录,放置一些文件,用leapftp登陆即可看到,证明配置ok了。

开放匿名用户的上传权限:

因为 vsftpd 是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
# mkdir /var/ftp/pub
# chmod -R 777 /var/ftp/pub

现在上传即ok。

但是下载刚上传的文件却出了问题:550 Failed to open file.
记得咱们设置了anon_umask=077了吗?所以你下载不了,如果你到服务器上touch 一个文件(644),测试一下,是可以被下载下来的,好了,匿名服务器就说到这里了。

还是权限问题:

#cd /var/ftp/pub

#chmod 644 *.*

即把该目录下所有文件的权限都开放了,于是即可顺利下载了。

原文地址:https://www.cnblogs.com/chutianyao/p/1342439.html