搭建FTP服务器 via FreeBSD


搭建FTP我采用FB内置的ftpd作为基础来实施,每个FB系统都会自带ftpd服务,所以如果你要使用ftp可以执行如下命令

/usr/libexec/ftpd -D -l -l

那么ftp服务就已经启动了,ftpd在FB系统中有两种方式启动(daemon & inetd)两种方式各有优缺点,我下面还是主要采用daemon启动作为本节的例子。

如果想设置成开启自启动FTP服务,那么还需要你配置下/etc/rc.local文件

vi /etc/rc.local

//在这个文件中写下下面这句代码即可

/usr/libexec/ftpd -D -l -l

如果不懂怎么使用ftpd的命令可以使用下面这个命令来查看帮助

man ftpd

好了我们还是写一个脚本来开启ftpd&重启&停止

vi  /usr/local/etc/rc.d/ftpd.sh

再在这里面写上这些

#!/bin/sh

ftpd_flag="-l -l -S"
ftpd="/usr/libexec/ftpd"

case "$1" in
start)
        [ -x ${ftpd} ] && ${ftpd} -D ${ftpd_flag} > /dev/null && echo -n ' ftpd
        ;;
stop)
        /usr/bin/killall ftpd > /dev/null && echo -n ' ftpd'
        ;;
*)
        echo "Usage: `basename $0` {start|stop}" >&2
        ;;
esac

exit 0

再将这个脚本设置为可执行权限

chmod 554 /usr/local/etc/rc.d/ftpd.sh

OK,那么我们就可以诸如这样来执行操作了

/usr/local/etc/rc.d/ftpd.sh start

前置工作我们已经完成了,ftp也可以使用了,FB系统默认是不允许root登录的,当然还有很多,具体可以看

/etc/ftpusers

当然了我的系统用户已经有一个用户叫“jxcent”了,所以我们现在使用“jxcent”来访问下我们的ftp试试看。

输入正确的帐号密码后,成功登录进去,此时你也可以进行相应的上传文件和删除文件了,其实ftp到这里也已经搭建成功了。

不过我还是想说下  有时候我们的ftp上传到服务器当中指定的目录那该如何配置呢,这就需要ftpchroot文件来实施了,

vi /etc/ftpchroot

在里面像这样来写

jxcent /var/myftp

上面说明 jxcent 用户能访问的路径是 /var/myftp目录,当然你要给这个目录的权限给它,否则当jxcent这个用户是不能上传任何东西或这浏览任何东西的。保守的做法就是这样

chown jxcent /var/myftp/

改完要记得重启ftp服务才能生效,切记切记。

个性化:有时候我们使用虚拟主机上传的时候,在登录ftp服务器的一段过程会有一个欢迎信息提示,这不,今天我们也来弄弄这样的个性化服务试试看。

vi /etc/ftpwelcome

我就写上上面的那些信息(可以支持中文),重启ftp,我们就看到信息了,

借此兴头,我们再来探讨下ftp的安全问题

有时候我们的ftp服务器作为一台公共ftp服务器,那么由管理员上传文件,然后所有用户采用匿名的形式来浏览ftp服务器中的内容,来

# pw adduser ftp

我们新建一个ftp用户,使用pw就可以不用设置密码

我们再在/etc/ftpchroot文件中配置这样一句话

ftp /var/myftp
jxcent /var/myftp

你会发现ftp也指向了 /var/myftp 这个目录,但是和jxcent用户不同的是 这个目录权限属于jxcent 也就是说jxcent 用户上传资料 ftp匿名帐号下载资料而且无需输入密码即可访问

这样做一定要清楚的记得这个目录的权限是归谁管,权限没有控制好的话,那么就匿名也可以上传、删除文件了麻烦大了。

如果我们之前没有做匿名用户访问 那么我们打开这样的一个地址会出现登录框:ftp://192.168.1.108/

开启匿名访问就直接可以进行浏览目录中的内容了……

其实还有很多内容要说的 限制ip访问,限制上传下载……

我也推荐一个 http://www.perlface.eu/?p=336

自行学习使用……

 

 

 


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。