在REDhat9+vsftpd1.1.3+mysql3.2上测试通过。
本文不适用于使用mysql4的用户。
请注意:不要直接copy我这里的配置文件,可以造成ftp启动不正常,所以还是多费点事,自己输入吧
本文对本地用户、虚拟用户目录进行了限制,每个用户拥有自己独立的目录。
本文中所使用的参数具体意义请参数回贴。
配置不外就是修改vsftpc.conf,并指定用户目录,权限等。
对虚拟用户则用pam验证方式。
另:mkdir建立目录,chown更改权限。vi编辑文件。这些命令请参考man文档
vsftpd类别:
1、PORT FTP
首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。
第二,由FTP server 端会建立数据传输频道,默认值为20,也就是跟port 20 建立联机,并透过port 20 作数
据的传输。
2、PASVFTP
首先会建立控制频道,默认值是port 21,也就是跟port 21 联机,并透过此联机下达指令。
第二,会由client 端做出数据传输的请求,包括数据传输port 的数字。
3、差别:
PORT FTP 当中的数据传输port 是由FTP server 指定,
而PASV FTP 的数据传输port 是由FTP client 决定。
通常我们使用PASV FTP,是在有防火墙的环境之下,透过client 与server 的沟通,决定数据传输的port。
vsftpd安装篇:
1、rpm安装:
| 代码: |
| [root@Linux_win vsftpd]#rpm -ivh vsftpd-1.1.3-8.i386.rpm |
2、tar.gz的安装
解压后查看README和INSTALL文档
安装前的条件:
进入vsftpd目录
编辑 "builddefs.h"文件,里面定义了pam功能,tcp_wrappers功能,ssl功能,根据需要定义pam或tcpwrapper功能,以消ssl功能
然后键入 "make" .将编译出相应的二进制文件,你可以用以下命令查看
[chris@localhost vsftpd]$ ls -l vsftpd
-rwxrwxr-x 1 root root 61748 Sep 27 00:26 vsftpd
a、增加“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。
| 代码: |
| [root@Linux_win vsftpd]# useradd nobody |
useradd: user nobody exists
b、建立“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。
| 代码: |
| [root@hpe45 root]# mkdir /usr/share/empty/ |
mkdir: cannot create directory '/usr/share/empty': File exists
c、匿名服务帐号:“ftp”用户和一个有效的匿名目录(默认为/var/ftp)。
| 代码: |
| [root@Linux_win vsftpd]# mkdir /var/ftp/ [root@Linux_win vsftpd]# useradd -d /var/ftp ftp |
d、更改目录的所有者为root,并让ftp用户对自己的主目录不可写
| 代码: |
| [root@Linux_win vsftpd]# chown root.root /var/ftp [root@Linux_win vsftpd]# chmod og-w /var/ftp |
编译VSFTPD
| 代码: |
| [root@Linux_win vsftpd]# tar zxvf vsftpd-1.2.0.tar.gz [root@Linux_win vsftpd]# cd vsftpd-1.2.0 [root@Linux_win vsftpd]# make |
安装编译好的VSFTPD
执行“make,make install”将编译好的二进制文件、手册等复制到相应目录。可能需要手动执行以下复制:
| 代码: |
| [root@Linux_win vsftpd]# cp vsftpd /usr/local/sbin/vsftpd [root@Linux_win vsftpd]# cp vsftpd.conf.5 /usr/local/share/man/man5 [root@Linux_win vsftpd]# cp vsftpd.8 /usr/local/share/man/man8 |
如果不存在man5和man8目录,要先建立这两个目录
| 代码: |
| [root@Linux_win vsftpd]#mkdir /usr/local/share/man/man5 [root@Linux_win vsftpd]#mkdir /usr/local/share/man/man8 |
make不会自己copy配置文件,如果make install有错,则必须手工更改
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc
为本地用户设置PAM
如果允许本地用户登录VSFTPD,执行以下操作:
| 代码: |
| [root@Linux_win vsftpd]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd |
3、pam_mysql安装
如果使用mysql的二进制包,那么必须加个开始包,且要修改Makefile文件,指定mysql的lib位置。
| 代码: |
| [root@Linux_win vsftpd]# tar xvzf pam_mysql-0.5.tar.gz [root@Linux_win vsftpd]# cd pam_mysql [root@Linux_win vsftpd]# make [root@Linux_win vsftpd]# cp pam_mysql.so /bli/security |
4、mysql安装。请查看其它文档
vsftpd启动篇
vsftpd 有两种运行方式,一种是standalone 一种是 via an inetd (或者 inetd or xinetd).
1、如何启动
1)系统自带的
| 代码: |
| [root@Linux_win software]# service vsftpd restart |
2)源包安装:
[root@Linux_win software]# /安装路径/vsftpd &
| 代码: |
| [root@Linux_win vsftpd]# /sbin/service xinetd restart 或 [root@Linux_win vsftpd]# /usr/local/sbin/vsftpd & |
2、standlone启动
具体的运行方式由参数listen决定。当listen参数值为YES时,VSFTPD单独运行,我们可以使用脚本/etc/rc.d/init.d/vsftpd来启动、关闭以及重启VSFTPD。命令如下:
| 代码: |
| /etc/rc.d/init.d/vsftpd start|stop|restart |
3、xinetd启动,首先要将vsftpd.conf配置文件中的listen参数值改为NO。
其次,生成一个/etc/xinetd.d/vsftpd文件
| 代码: |
| [root@Linux_win vsftpd]#vi /etc/vsftpd/vsftpd.conf或vi /etc/vsftp.conf listen=NO |
| 代码: |
| [root@Linux_win vsftpd]vi /etc/xinetd.d/vsftpd 内容如下: service vsftpd { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd port = 21 log_on_success += PID HOST DURATION log_on_failure += HOST } |
通过修改disable值为no或yes,并重新启动xinetd,从而启动或停止VSFTPD。
配置安全匿名服务器
所要做的就是用vi修改vsftpd.conf文件
| 代码: |
| [root@Linux_win vsftpd]#vi /etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf |
修改后的vsftpd.conf文件看附件:
