vsftp安装配置

公司要配置一台FreBSD的服务器,虽然以前没接触过着个系统,可是老板的话就是命令,没办法^_^,那就动手吧,看了不少资料,自己也在VMware里测试了多次,把自己的操作过程记录一下,供大家参考.如有不足不对之处请大家指点. 配置网站服务器,FTP服务必不可少,那就先来这个了,再罗嗦有人要扔砖了,呵呵. 1、安装 通过ports安装,这个方式比较简单。 # cd /usr/ports/ftp/vsftp # make install 2、配置 (1)编辑/usr/local/etc/vsftpd.conf # ee /usr/local/etc/vsftpd.conf Anonymous_enable=NO (禁止匿名登陆) Local_enable=YES (允许本地用户登陆) Local_umask=022 (FTP上本地的文件权限755,默认是077) Connect_form_port_20=yes (启用FTP数据端口的数据连接) Xferlog_enable=yes (激活上传和下传的日志) Xferlog_std_format=yes (使用标准的日志格式) Idle_session_timeout=120(秒) (用户会话空闲后2分钟) Data_connection_timeout=300(秒) (将数据连接空闲5分钟断) Ascii_upload_enable=YES (起用ASCII方式上传) Ascii_download_enable=YES帮带(起用ASCII方式下载) Ftpd_banner=Welcome to blah FTP service. (FTP服务器登陆欢迎信息) Chroot_list_enable=YES (开启锁定用户目录) Chroot_list_file=/任意路径/vsftpd.chroot_list (要锁定目录的用户保存文件,格式为每个用户一行) 注:如果想把本地的任何用户都锁定在自己的目录中的话,把上面两行注释掉,再增加这一样 Chroot_local_user=YES 保存退出 (2)编辑/etc/inetd.conf # ee /etc/inetd.conf 增加这一行并去掉前面的注释(#号) #ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd 保存退出 (3)编辑/etc/rc.conf # ee /etc/rc.conf 增加下面内容: inetd_enable="YES" 注:以上是以inetd的方式启动vsftp的,我们也可以以独立进程的方式启动vsftp,具体如下: a、注释掉inetd里面的vsftpd这一行。 b、在vsftpd.conf文件里增加listen=YES这句。 c、进入/usr/local/libexec/目录,执行./vsftpd & 。 d、想要让vsftp随系统启动,可在/usr/local/etc/rc....

2006-04-26 · 2 分钟 · admin

vsFTPd 服务器初学者指南(欢迎大家参与补充)

1、vsFTPd,目前常用FTP服务器套件; vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用; 目前在开源操作系统中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的; 2、ftp 用户管理解说; FTP服务器对用户的管理,在默认的情况下是根据 /etc/passwd及/etc/group 来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重要的; 推荐文章: 《Linux 用户(user)和用户组(group)管理概述》 2.1、匿名ftp 用户和用户组的理解; 当我们访问各大FTP上访问时,可能我们不去想我们以什么身份登录的,如果他的FTP允许匿名登录的话;比如我们在浏览器上打入; ftp://mirrors.kernel.org 或 ftp://ftp:ftp@mirrors.kernel.org 我们会发现上面的两行最终都能访问,而且显示的结果也完全一样,最终都跳到 ftp://mirrors.kernel.org 地址;那我们访问这个FTP时,是不是有用户和密码呢?是的,也是需要在的,只是在服务器端允许匿名访问,而匿名访问的用户名和密码都是ftp,只是我们因为匿名访问,没有感觉到他有用户名和密码罢了。第二个地址就是以ftp用户,密码也是ftp来访问 ftp://mirrors.kernel.org; 如果我们以ftp命令连接 mirrors.kernel.org 时,我们会发现需要输入用户ftp,密码ftp才能访问; 在FTP服务器中,匿名用户的用户名和密码都是ftp ;这个用户可以在您的操作系统中的 /etc/passwd 中能找得到;可能有类似下面的一行; ftp❌14:50:FTP User:/var/ftp:/sbin/nologin 说明: /etc/passwd 是系统用户的配置文件;/etc/group是系统用户组配置文件,您可以通过 《Linux 用户(user)和用户组(group)管理概述》 及其相关文档中了解一些用户管理的一些基础知识; 在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割; ftp 是用户名 x 是密码字段,是隐藏的; 14 是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题; 50 用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题; FTP User 是用户说明字段; /var/ftp 是ftp用户的家目录,可以自己来定义; /sbin/nologin 这是用户登录SHELL ,这个也是可以定义的,/sbin/nologin 表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin 改为 /bin/bash ,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成 /bin/bash 等; 关于ftp用户组的理解: 我们查看 /etc/group 的时候,会发现类似这样一条; ftp❌50: /etc/group 是用户组的管理配置文件,上面这行表示用户组ftp,x是密码段,50是GID;我们对照在/etc/passwd中的ftp那行得知ftp用户是属于ftp用户组的,因为ftp用户那行中的GID和ftp用户组的GID是相同的; 2.2、匿名ftp 用户和ftp用户组是否可以删除 在一般情况下是不能把/etc/passwd和/etc/group 中有把ftp用户和用户组的行删除的,因为FTP服务器是需要他们来对FTP用户实现管理,在默认的情况下。...

2006-04-26 · 3 分钟 · admin

ftP教程

很久没有上来了,也很久没有碰电脑了。本来想当北南南北那样的写手,呵呵,自己想了半天,还没有出来。于是把我论文里的其中一段搬上来。(里面也有抄的) Linux下VsFTP配置全方案 纲要: 一, VsFTPd的简述 二, 企业Linux下vsFTPD方案 三, VsFTPD相关配置文件详解 一,VsFTPd的简述: VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。除了安全和性能方面很优秀的外,还有很好的易用性。Red Hat公司在自己的FTP服务器(ftp.redhat.com)上就使用了vsFTPd 二,企业Linux下vsFTPD实战方案 要求: 用户:netseek_com;FTP:ftp.netseek.com(192.168.0.21,我已经配置好了相关的DNS) 禁止匿名登陆,禁止用户离开用户目录 命令通道端口使用5021,数据通道端口使用5020(你可以改成你想设置的端口如1021,1020) 允许使用被动模式使用端口范围为10010~10020. 用户带宽设置为200kps;用户空间大小限制为300M,允许宽限期限内有10MB的缓冲 具体操作步骤如下: 为了更完全的描述安装全过程,我在我的另一台主机(netseek)上进行配置,在台机IP:192.168.0.20上绑定了192.168.0.21,也配置好了相关的DNS解析,在这里我就不多说了请参照”Linux全能web服务器架设”。 1. 配置相关服务 启动服务: [root@netseek root]# #rpm –qa | grep vsftpd ;查看是否安装vsftpd服务 #/etc/init.d/vsftpd start ;启动服务 #chkconfig vsftpd on ;让系统服务随着系统启动而启动 配置相关文档: #vi /etc/vsftpd/vsftpd.conf 禁止匿名用户访问: anonymous_enable=YES,将YES改为NO 在文件末尾加如下的设置: new added by netseek listen_port=5021 ;命令通道端口,默认为21 listen_data_port=5020 ;数据通道端口,默认为20 pasv_enable=YES ;允许被动模式 pasv_min_port=10000 ;被动模式使用端口范围 pasv_max_port=10010 local_max_rate=200000 ;用户宽带限制 chroot_local_user=YES ;禁用户离开主目录 listen_address=192.168.0.21 ;让他监听ip:192.168.0.21 注:在添加过程中请不要加上”;”和这些中文注释,在这里我上为了方便大家了解才加上的。 2. 添加虚拟主机用户 添加用户netseek_com,用户目录指定为/var/www/netseek....

2006-04-26 · 3 分钟 · admin

Linux常用命令简介

su su命令是最基本的命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换为user2,只要用如下命令: $su user2 然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以用exit命令返回到user1。 su命令的常见用法是变成根用户或超级用户。如果发出不带用户名的su命令 ,则系统提示输入根口令,输入之后则可切换为根用户。 如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。 pwd pwd命令也是最常用最基本的命令之一,用于显示用户当前所在的目录。 cd cd命令不仅显示当前状态,还改变当前状态,它的用发跟dos下的cd命令基本一致。 cd ..可进入上一层目录 cd -可进入上一个进入的目录 cd ~可进入用户的home目录 ls ls命令跟dos下的dir命令一样,用于显示当前目录的内容。 如果想取得详细的信息,可用ls -l命令, 这样就可以显示目录内容的详细信息。 如果目录下的文件太多,用一屏显示不了,可以用ls -l |more分屏显示 。 find find命令用于查找文件。这个命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用户)、文件长度或文件类型进行搜索。 find命令的基本结构如下: $find 其中指定从哪个目录开始搜索。指定搜索条件。表示找到文件怎么处理。一般来说,要用-print动作,显示 整个文件路径和名称。如果没有这个动作,则find命令进行所要搜索而不显示结果,等于白费劲。 例如,要搜索系统上所有名称为ye的文件,可用如下命令: $find / -name ye -print 这样就可以显示出系统上所有名称为ye的文件。 tar tar最初用于建立磁带备份系统,目前广泛用于建立文件发布档案。可用如下方法建立tar档案: $tar cvf 例如,如果要将当前目录中所有文件存档到ye.tar中,可用如下命令: $tar cvf ye.tar . 要浏览档案内容,将c选项变成t。如果要浏览ye.tar档案中的内容,可用如下命令: $tar tvf ye.tar 要取出档案内的内容,将c选项变成x。如果要将ye.tar档案中的内容取到当前目录中,可用如下命令: $tar xvf ye.tar gzip gzip命令用于压缩文件。 例如,如果要将ye.txt文件压缩,可用如下命令: $gzip ye.txt 这样就可以压缩文件并在文件名后面加上gz扩展名,变成文件ye.txt.gz。 解压缩文件可用gzip -d命令实现: $gzip -d ye.txt.gz 这样就可以解压缩文件并删除gz扩展名。除此之外还可以用gunzip命令来解 压缩文件,效果跟用gzip -d命令一样。 旧版的tar命令不压缩档案,可用gzip压缩。例如: $tar cvf ye....

2006-04-22 · 1 分钟 · admin

Linux主机重编译(升级)PHP支持GD库

Linux主机重编译PHP支持GD库 *注意:请确认以下您服务器中Apache的安装路径,如果不是 /usr/local/apache2,则在进行以下安装操作时, 注意修改Apache的安装路径! 1、以root身份登录Linux主机; 2、停止Web Server服务,如果使用的是Apache可以通过以下命令停止: shell> /usr/local/apache2/bin/apachectl stop 3、卸载当前PHP和Zend Optimizer: shell> rm -rf /usr/local/php shell> rm -rf /usr/local/Zend shell> vi /usr/local/apache2/conf/httpd.conf 找到LoadModule phpX_module modules/libphpX.so 其中X是PHP版本(4或者5)一行,并将此行删除,保存退出。 4、下载安装Discuz! GD库安装包: shell> cd /usr/local/src shell> wget -c http://download.discuz.net/gdinstaller.tar.gz shell> tar xzvf gdinstaller.tar.gz shell> cd GDInstaller shell> ./install.sh 4、下载PHP 5.1.2: shell> cd /usr/local/src shell> wget -c http://download.discuz.net/php-5.1.2.tar.bz2 5、解压缩并安装PHP 5.1.2: shell> tar xjvf php-5.1.2.tar.bz2 shell> cd php-5.1.2 shell> ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-zlib-dir –with-bz2 –with-tiff-dir –with-libxml-dir –with-gd –with-freetype-dir –with-jpeg-dir –with-png-dir –with-ttf –enable-mbstring –with-mysql –with-config-file-path=/etc –disable-ipv6 –enable-gd-native-ttf *注意:如果MySQL不是以RPM包方式安装的,则需要将上述参数中的–with-mysql 改为–with-mysql=/usr/local/mysql shell> make shell> make install shell> cp php....

2006-04-22 · 1 分钟 · admin

Linux+Apache+PHP+MySQL+Zend Optimizer整合

一、前言 发现本版中很多用户的问题都是关于空间搭建的,所以写了这篇作文希望对大家有所帮助,这也是版主职责嘛,呵呵。这篇文章所描述的整合过程是针对Discuz!而写的,旨在让Discuz!更好的运行。原则就是用不到的东西就不装、不编、不配,最大程度让系统干净快速。 二、准备程序 以下所有程序的版本都是推荐使用的,并且是截止到本文发布时最新的版本。 Apache 2.0.55 下载地址:http://apache.justdn.org/httpd/httpd-2.0.55.tar.gz PHP 4.4.1 下载地址:http://cn.php.net/get/php-4.4.1.tar.gz/from/cn2.php.net/mirror MySQL 4.0.26 下载地址: http://downloads.mysql.com/archi … t-4.0.26-0.i386.rpm http://downloads.mysql.com/archi … r-4.0.26-0.i386.rpm Zend Optimizer 2.6.0 下载地址:http://prdownloads.sourceforge.n … pl1.tar.gz?download PHPMyAdmin 2.7.0-pl1 下载地址:https://www.phpmyadmin.net 三、安装整合环境 1、准备工作: 由于Discuz!4.0的水印功能需要调用GD库实现,所以请先确定你的系统中已经安装了GD环境: QUOTE: rpm -qa | grep zlib rpm -qa | grep libpng rpm -qa | grep freetype rpm -qa | grep jpeg rpm -qa | grep gd 如果没有安装的话,可以按照下面的步骤手动安装: QUOTE: (1) 安装zlib tar zxvf zlib-1.2.2.tar.gz cd zlib-1.2.2 ./configure make make install (2) 安装libpng...

2006-04-22 · 2 分钟 · admin

phpMyAdmin 2.8.0.3 安装配置

装好新的服务器要装pma 看别人都用这个版本了也装个试试吧 找开一看和以前的有点不一样 config.inc.php 这个文件没了 看了一下安装说明才知道 要把./libraries/config.default.php 复制到phpMyAdmin根目录并重命名为config.inc.php 才可以 配置如下 $cfg[‘PmaAbsoluteUri’] = ‘http://www.yourdomain.com/phpMyAdmin'; (写出访问phpMyAdmin的绝对URL)//其实绑了多个不填也可以的 $cfg[‘blowfish_secret’] = ‘cookie’; (使用cookie加密) $cfg[‘Servers’][$i][‘connect_type’] = ‘socket’; (以socket方式连接MySQL) $cfg[‘Servers’][$i][‘compress’] = TRUE; (启用压缩以提高速度,如果访问不正常请改回FALSE) $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; (使用cookie进行身份验证) 在linux下要设置文件755 要不然可能不能运行 还有就是运行安装程序,看了一下麻烦的很 在浏览器中运行http://…./phpMyAdmin/libraries/dbg/setup.php 以向导模式进行安装

2006-04-22 · 1 分钟 · admin

文件权限

检查 ls -laZ 文件或目录 改变 chcon -t httpd_sys_content_t 文件或目录

2006-04-20 · 1 分钟 · admin

FTP命令详解

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令。 熟悉并灵活应用FTP的内部 命令,可以大大方便使用者,并收到事半功倍之效。 FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用; .n etrc文件; -d 使用调试方式; -g 取消全局文件名。 ftp使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如: !ls*.zip. 2.$ macro-ame[args]:执行宏定义macro-name. 3.account[password]:提供登录远程系统成功后访问系统资源所需的补 充口令。 4.append local-file[remote-file]:将本地文件追加到远程系统主机, 若未指定远程系统文件名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。 9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cd remote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmod mode file-name:将远程主机文件file-name的存取方式设置为 mode,如: chmod 777 a.out 。 13.close:中断与远程服务器的ftp会话(与open对应)。 14.cr:使用asscii方式传输文件时,将回车换行转换为回行。 15.delete remote-file:删除远程主机文件。 16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命 令,如: deb up 3,若设为0,表示取消debug。 17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本 地文件local-file。 18.disconnection:同close。 19.form format:将文件传输方式设置为format,缺省为file方式。 20.get remote-file[local-file]: 将远程主机的文件remote-file传至 本地硬盘的local-file。 21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名, 同命令行的-g参数。...

2006-04-17 · 1 分钟 · admin

一个完整的ftp远程批量shell

单位有30多台远程主机须不定期升级程序,为了方便传送文件,整理如下FTP批量处理程式,主文件为main.sh内容格式固定,调用程序autopro.sh文件可根据传送文件及目录随时更改 main.sh文件内容如下: hostlist='198.1.1.1 198.1.1.2 198.1.1.3 .......................' #有多少主机IP,就一起写上吧! echo echo "-----远程FTP批量数据传送------" echo -n "\n 请输入登录用户名:";read username echo -n " 请输入用户口令 :" stty -echo #将输入的口令隐起来 read userpwd stty echo echo "\n 发往以下主机:[用户名:$username]" echo " $hostlist" echo "\n 开始传送程序,按回车键开始 .........." read goenter for host in $hostlist #所有主机IP循环语句 do echo "正在向服务器 $host 正在传送数据 .........." sh autopro.sh $host $username $userpwd #参数一为主机IP,参数二为用户名,参数三为口令 echo "服务器 $host 传送数据完成!!" echo "OK" sleep 2 done echo "\n全部数据传送完毕\n" autopro.sh 文件内容如下: ftp -niv $1 <

2006-04-17 · 1 分钟 · admin

一个完整的ftp远程批量shell

单位有30多台远程主机须不定期升级程序,为了方便传送文件,整理如下FTP批量处理程式,主文件为main.sh内容格式固定,调用程序autopro.sh文件可根据传送文件及目录随时更改 main.sh文件内容如下: hostlist=‘198.1.1.1 198.1.1.2 198.1.1.3 …………………..’ #有多少主机IP,就一起写上吧! echo echo “—–远程FTP批量数据传送——” echo -n “\n 请输入登录用户名:";read username echo -n " 请输入用户口令 :” stty -echo #将输入的口令隐起来 read userpwd stty echo echo “\n 发往以下主机:[用户名:$username]” echo " $hostlist" echo “\n 开始传送程序,按回车键开始 ……….” read goenter for host in $hostlist #所有主机IP循环语句 do echo “正在向服务器 $host 正在传送数据 ……….” sh autopro.sh $host $username $userpwd #参数一为主机IP,参数二为用户名,参数三为口令 echo “服务器 $host 传送数据完成!!” echo “OK” sleep 2 done echo “\n全部数据传送完毕\n” autopro.sh 文件内容如下: ftp -niv $1 <

2006-04-17 · 1 分钟 · admin

VSFTP+MySQL虚拟用户配置

VSFTPD是一种在UNIX/Linux中非常安全且快速的FTP服务器,目前已经被许多大型站点所采用。VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中。VSFTPD称这种形式的用户为虚拟用户。相对于FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。本文介绍在RedHat Linux 9上如何将VSFTPD的虚拟用户名和密码保存在MySQL数据库服务器中。 一、VSFTPD的安装 目前,VSFTPD的最新版本是1.2.0版。官方下载地址为ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz。在安装前,需要先做以下准备工作: VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。 [root@hpe45 root]# useradd nobody useradd: user nobody exists VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。 [root@hpe45 root]# mkdir /usr/share/empty/ mkdir: cannot create directory ‘/usr/share/empty’: File exists VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。 [root@hpe45 root]# mkdir /var/ftp/ [root@hpe45 root]# useradd -d /var/ftp ftp 接下来的操作对于ftp用户是否已经存在都是有用的。 [root@hpe45 root]# chown root.root /var/ftp [root@hpe45 root]# chmod og-w /var/ftp 以上准备工作完成后,我们就可以开始编译源代码了。假定我们下载的vsftpd-1.2.0.tar.gz在/root目录,执行以下命令: [root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz [root@hpe45 root]# cd vsftpd-1.2.0 [root@hpe45 vsftpd-1.2.0]# make [root@hpe45 vsftpd-1.2.0]# make install 上面的“make install”命令将编译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复制: [root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd [root@hpe45 vsftpd-1....

2006-04-17 · 2 分钟 · admin

vsftp配置大全

超完整版 wordpress_id: 56 categories: “\n技术文章\n " 如果不做说明,一般安装命令均使用ROOT权限,用 # 表示 特别说明:无 以下文章介绍Liunx 环境下vsftpd的三种实现方法 一、前言 Vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。Vsftpd的实现有三种方式 1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问 2、本地用户形式:以/etc/passwd中的用户名为认证方式 3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的 FTP站点来说,虚拟用户是一种极好的解决方案。 二、获取最新版的Vsftp程序 Vsftp官方下载:[url=ftp://vsftpd.beasts.org/users/cevans/vsftpd- 2.0.3.tar.gz]ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录 cd /home/xuchen tar xzvf vsftpd-2.0.3.tar.gz //解压缩程序 cd vsftpd-2.0.3 初学vb 回复于:2005-06-13 13:30:17 三、三种方式的实现 1、匿名用户形式实现 vi builddefs.h \编辑builddefs.h 文件,文件内容如下: #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #undef VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM #undef VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ 将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL make //直接在vsftpd-2.0.3里用make编译 ls -l vsftpd -rwxr-xr-x 1 root root 86088 Jun 6 12:29 vsftpd //可执行程序已被编译成功...

2006-04-17 · 16 分钟 · admin

trackback 有罪

作者: sadly 出自: http://www.phpx.com 昨天 4ngle 找俺 要俺帮他测试一下trackback防spam的功能:( 好无聊,原来的那些js早没了,随便套了一个php的httpclient类库给他写了一个, 发现他的程序效果还是不错的。 我不晓得机制是什么样,我再说一点点。 trackback 和 comment 是不有同的,对吗? 往下看~ 不知到有没有人考虑过,trackback应该从哪里发出来? 如果我在一篇blog里引用了你的文章,要对你发出trackback, 那么通常向你的服务器发trackback的应该是我的BSP的服务器, 它的ip地址和trackback里面url的ip地址应该是有一致性的吧? 如果有一个trackback发出的 ip 地址是 202.108.1.1 , url是 www.abc.com/blog/1.html 但 www.abc.com 的ip地址是 203.121.1.1 那很显然,它大概是伪造的。 如果你在用一个很大的BSP,那么不排除这种可能性, username0.bsp.com的ip地址是 202.108.1.1 username3.bsp.com的ip地址是 202.108.1.2 username5.bsp.com的ip地址是 202.108.1.3 而系统发trackback的时候使用的是 202.108.1.5 ,因为大的集群里由于负载均衡等等的需要可能 会存在这种分工,进出的ip不一样,但是他们的差异会有多大呢? 多动脑子,少动嘴:) trackback 没有罪, 开放也没有罪, 但是不爱思考的程序员有罪。 刚刚在dreamhost测试了一下~ www..com 的ip地址是 64.111××× 而 www..name 的ip地址是 208.××× 用同样的wordpress程序测试,得到的服务器出口的ip是 64.111.*** ,还好,出口的ip是一致的。 如果改用白名单来控制哪些BSP / IP地址是可信的,那效果估计比过滤关键词,ip,网址之类的要 轻松不少吧, 还有上次说过那个问题 §时间§

2006-04-15 · 1 分钟 · admin

从trackback说起

作者: sadly 出自: http://www.phpx.com 前两天在网上逛的时候看到了关于blog里trackback的资料,发现它在设计上是有隐患的, 后来还给某几个知名的网站发了点纪念品, 惹得人家直说我早就知到了,不过这关你屁事. 我对口水战没有什么兴趣. 在此说一点程序设计中我个人认为应该考虑的问题,希望 能够抛砖引玉一下. 1 连续的数字id 使用数字id来标识一篇资料,比如blog的文章, 这当然最简单,最容易实现的. 因为我们设计 数据库的时候通常都会加一个自增长的id来做唯一标志. 用id来标识很直接, 也不需要 额外的存储空间. 不过这显然不是一个很安全的方式, 象村子用的DZ这个程序 viewthread.php?tid=文章编号 是看帖子.只要跑一个循环就可以把全部的文章都抓到了.被 人抓站当然是难免了,但要是被人乱发帖恐怕就不那么舒服了. 大家都知道数据库对读是有优化的, 而对于写所能做的事情则很有限. 想一想, 如果有个 程序不停的发帖, 数据库记录疯涨 ,数据不断更新, 那你设计的静态化之类的恐怕是没 什么效果了. 假如, 我们在数据库里加一个字段 ukey , 设计为唯一的标志, 数据取个随机数好了 当然最好是字母数字混和的长字符串. 现在用 (for $i=起始id;$i<终止id;$i++) 回复第$i个文章 的办法显然是不行了. 不过还是有办法的. 它可以先抓列表页,然后分析出每个文章的ukey, 之后 再 (for $i=起始值;$i<要发送的数量;$i++) 回复第$all_ukey_array[$i]个文章. 于是, 我们在回帖的时候给每个文章加上不同的随机识别码. 好了. 现在它只好先抓到 列表页, 然后再抓具体页面并分析出这个文章对应的识别码. 最后 再 ($i=起始值;$i<要发送的数量;$i++) 用识别码$all_seccode_array[$i] 回复第$all_ukey_array[$i]个文章 看来还是没有解决, 图形验证码浮出了水面, 它确实够安全, 可是图形验证码对于正常使 用的用户是不够友好的, 如果每次发帖都要输一个讨厌的验证码那用户就没什么兴趣了. 算了,还是放弃它, 用户看一篇文章会看多久然后回复它呢?...

2006-04-15 · 1 分钟 · admin