[FTP]
[笔记]vsftpd 快速安装指南
一直以来,都在用pure-ftpd,看到大家对vsftpd的评论很不错,简单装了一下,把笔记贴出来,请各位大哥多提意见
vsftpd 快速安装指南
阿土/Aborigen Yin
http://www.bsdbase.com
2003.01.19
参考:
http://vsftpd.beasts.org/
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.1.3/
#源码自带的文档;
#目标:仅仅开放匿名ftp,系统用户不开放ftp权限。
#BTW:如果要虚拟用户,我还是选pure-ftpd;由于ftp使用明文传输,从来都不建议对系统用户开放ftp服务。
mkdir -p /usr/local/src/distfiles
cd /usr/local/src/distfiles
#FreeBSD
#fetch ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.1.3.tar.gz
wget --passive-ftp ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.1.3.tar.gz
tar xfz vsftpd-1.1.3.tar.gz -C ..
cd ../vsftpd-1.1.3
#看看有什么要改的
#vi builddefs.h
make
#看,出来了
ls -l vsftpd
#看看有没有nobody这个用户,没有的话,自己加上。
#要开匿名ftp,要有ftp这个用户,并且,它的$HOME目录ftp用户本身没有写权限。
#ftp:14:50:FTP User:/var/ftp:/sbin/nologin
#nobody:99:99:Nobody:/:/sbin/nologin
vipw
#默认是有这个目录的。
mkdir -p /usr/share/empty
#匿名用户的根目录;
mkdir -p /var/ftp
chown -R root:root /var/ftp
chmod 755 /var/ftp
ls -l /var/ftp
#安装,不用make install
cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
cp vsftpd.conf /etc
cp vsftpd.conf /etc/vsftpd.dist
#配置文件
#vi /etc/vsftpd.conf
#使用standalone模式,不使用xinetd。
listen=YES
#同时在线用户,最多500
max_clients=500
#每ip允许5个用户登录;
max_per_ip=5
#匿名ftp server。
anonymous_enable=YES
#不开放本地用户。
local_enable=NO
write_enable=NO
local_umask=077
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#服务器日志文件;
xferlog_file=/var/log/vsftpd.log
#优化性能
one_process_model=YES
#idle超时30秒;
idle_session_timeout=30
data_connection_timeout=90
accept_timeout=60
connect_timeout=60
#限制匿名用户下载速度50k/s
anon_max_rate=50000
ascii_download_enable=NO
async_abor_enable=YES
ftpd_banner=Welcome to anonymous FTP server.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=NO
anon_world_readable_only=YES
hide_ids=YES
pasv_min_port=40000
pasv_max_port=50000
#end of vsftpd.conf
chmod 600 /etc/vsftpd.conf
#简单的控制脚本;
#vi /usr/local/sbin/vsftpd.sh
#!/bin/sh
case "$1" in
start)
if [ -x /usr/local/sbin/vsftpd ]; then
/usr/local/sbin/vsftpd /etc/vsftpd.conf &
echo . && echo 'VSftp server started.'
fi
;;
stop)
killall vsftpd && echo . && echo 'VSftp server stopped.'
;;
restart)
echo .
echo "Restart VSftp server ......"
$0 stop
sleep 30
$0 start
;;
*)
echo "$0 start | stop | restart"
;;
esac
#end of /usr/local/sbin/vsftpd.sh
chmod 700 /usr/local/sbin/vsftpd.sh
#开机自动启动
ln -s /usr/local/sbin/vsftpd.sh /etc/rc.d/rc3.d/S99vsftpd
ln -s /usr/local/sbin/vsftpd.sh /etc/rc.d/rc3.d/K01vsftpd
#FreeBSD
ln -s /usr/local/sbin/vsftpd.sh /usr/local/etc/rc.d