whechuan00 2007-10-12
Vsftpd是一款十分不错的ftp服务器软件,用它可以很快地部署一个功能强大的ftp服务器。
知识点:
1、FTP使用TCP连接和TCP端口
2、在进行通信时,FTP需要建立两个TCP连接:
一个用于控制信息,TCP端口号缺省为21
一个用于数据传输,TCP端口号缺省为20
3、Vsftp是一个基于GPL发布的类Unix系统上的FTP服务器
4、其名称中的VS即“Verysecure”的意思,可见安全性高。
配置:
1、查看是否安装了Vsftp
#rpm –qa vsftpd
2、安装
系统光盘安装方法:
放入第三张光盘
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm –ivh vsftpd-1.1.3-8.i386.rpm
#cd;eject
源码安装方法:
依照下面的步骤一步步完成架设:
(1、下载软件vsftpd-2.0.1.tar.gz。这可避免rpm包出现依赖这样的麻烦。
(2、解压文件vsftpd-2.0.1.tar.gz 。 # tar zxvf vsftpd-2.0.1.tar.gz
(3、进入目录vsftpd-2.0.1。 # cd vsftpd-2.0.1
(4、编译。 # make
(5、创建目录 # mkdir /var/ftp
(6、添加用户 # useradd –d /var/ftp ftp
(7、更改目录属组和权限 # chown root.root /var/ftp ; chmod og-w /var/ftp
(8、安装软件 # make install
(9、拷贝文件 # cp vsftpd.conf /etc/vsftpd.conf ; cp RedHat/vsftpd.pam /etc/pam.d/ftp
(10、修改配置文件 # vi /etc/vsftpd.conf . 把 local_enable=YES write_enable=YES和local_umask=022前面的注释取消,然后加上一行listen=YES 。
(11、修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd& 插入文件中,以实现开机自动启动。
3、Vsftp服务启动与停止
#service vsftpd start 启动
#service vsftpd stop 停止
#service vsftpd restart 重启
永久启动:#setup
#ps –ax | grep vsftpd 查看进程是否启动。
#chkconfig –level 2345 vsftpd on 设置在系统启动时,自动启动进程。
4、访问Vsftp
进入 ftp 192.168.0.1
输入密码进入后:ls 查看 put 上传 get下载
离开bye
5、配置文件
主配置文件 /etc/vsftpd/vsftpd.conf
用户控制文件 /etc/vsftpd.ftpusers 作用:指定哪些用户不能访问FTP,相当于一个黑名单
主配置文件:
option=value
要注意的是,等号两边不能加空白,不然是不正确的设定。
===ascii 设定=====================
ascii_download_enable
管控是否可用ASCII模式下载。默认值为NO。
ascii_upload_enable
管控是否可用ASCII模式上传。默认值为NO。
===个别使用者设定===================
chroot_list_enable
如果启动这项功能,则所有的本机使用者登入均可进到根目录之外的数据夹,除了列在/etc/vsftpd.chroot_list之中的使用者之外。默认值为NO。
userlist_enable
用法:YES/NO
若是启动此功能,则会读取/etc/vsftpd.user_list 当中的使用者名称。此项功能可以在询问密码前就出现失败讯息,而不需要检验密码的程序。默认值为关闭。
userlist_deny
用法:YES/NO
这个选项只有在userlist_enable启动时才会被检验。
如果将这个选项设为YES,则在/etc/vsftpd.user_list 中的使用者将无法登入,
若设为NO,则只有在/etc/vsftpd.user_list中的使用者才能登入。
而且此项功能可以在询问密码前就出现错误讯息,而不需要检验密码的程序。
user_config_dir
定义个别使用者设定文件所在的目录,
例如定义user_config_dir=/etc/vsftpd/userconf,且主机上有使用者test1,test2,那我们可以在user_config_dir 的目录新增文件名为test1以及test2。若是test1登入,则会读取user_config_dir下的test1 这个档案内的设定。
默认值为无。
===欢迎语设定=====================
dirmessage_enable
如果启动这个选项,使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,若是有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
banner_file
当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。
ftpd_banner
这边可定义欢迎话语的字符串,相较于banner_file是档案的形式,而ftpd_banner是字串的格式。默认值为无。
===特殊安全设定====================
chroot_local_user
如果设定为YES,那么所有的本机的使用者都可以切换到根目录以外的数据夹。默认值值为NO。
hide_ids
如果启动这项功能,所有档案的拥有者与群组都为ftp,也就是使用者登入使用ls -al之类的指令,所看到的档案拥有者跟群组均为ftp。默认值为关闭。
ls_recurse_enable
若是启动此功能,则允许登入者使用ls -R 这个指令。默认值为NO。
write_enable
用法:YES/NO
这个选项可以控制FTP的指令是否允许更改file system,譬如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE以及SITE。默认值为关闭。
setproctitle_enable
用法:YES/NO
启动这项功能,vsftpd 会将所有联机的状况已不同的process 呈现出来,换句话说,使用ps -ef这类的指令就可以看到联机的状态。默认值为关闭。
tcp_wrappers
用法:YES/NO
如果启动,则会将vsftpd与tcp_wrapper结合,也就是可以在/etc/hosts.allow与/etc/hosts.deny中定义允许或拒绝的来源地址。
pam_service_name
这边定义PAM所使用的名称,默认值为vsftpd。
secure_chroot_dir
这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd不需要file system的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty。
===纪录文件设定=====================
xferlog_enable
用法:YES/NO
如果启动,上传与下载的信息将被完整纪录在底下xferlog_file 所定义的档案中。默认值为开启。
xferlog_file
这个选项可设定纪录文件所在的位置,默认值为/var/log/vsftpd.log。
xferlog_std_format
如果启动,则纪录文件将会写为xferlog 的标准格式,如同wu-ftpd一般。默认值为关闭。
===逾时设定======================
accept_timeout
接受建立联机的逾时设定,单位为秒。默认值为60。
connect_timeout
响应PORT 方式的数据联机的逾时设定,单位为秒。默认值为60。
data_connection_timeout
建立数据联机的逾时设定。默认值为300秒。
idle_session_timeout
发呆的逾时设定,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线,单位为秒。默认值为300秒。
===速率限制======================
anon_max_rate
匿名登入所能使用的最大传输速度,单位为每秒多少bytes,0表示不限速度。默认值为0。
local_max_rate
本机使用者所能使用的最大传输速度,单位为每秒多少bytes,0表示不限速度。默认值为0。
===新增档案权限设定==================
anon_umask
匿名登入者新增档案时的umask 数值。默认值为077。
file_open_mode
上传档案的权限,与chmod 所使用的数值相同。默认值为0666。
local_umask
本机登入者新增档案时的umask 数值。默认值为077。