注意:本文中绿色字体是linux命令行,//后面的文字为注释,黑色加粗是在linux中的输入,在linux下看不见的,其他为linux系统中的提示。
vsftpd的服务软件包位于RHED4的第1张光盘。包名是vsftpd-2.0.1-5.i386.rpm,插入光盘。
#mount -t iso9660 /dev/cdrom /media/cdrom //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
#cd /media/cdrom/RedHat/RPMS
#ls vsftpd* //查找软件包
vsftpd-2.0.1-5.i386.rpm
#rpm -ivh vsftpd-2.0.1-5.i386.rpm //安装软件包
Preparing... ########################################### [100%]
package vsftpd-2.0.1-5 is already installed
#rpm -ql vsftpd | grep /etc //查看etc目录下的vsftpd相关文件
/etc/logrotate.d/vsftpd.log
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd //vsftpd的启动脚本文件
/etc/vsftpd
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
/etc/vsftpd/vsftpd.conf //配置文件
#grep -v '#' /etc/vsftpd/vsftpd.conf //查看ftp默认的配置
anonymous_enable=YES //允许匿名登录
local_enable=YES //允许本地用户登录
write_enable=YES //对本地用户有写入的权限
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES //ftp服务器启用ftp端口连接请求
xferlog_std_format=YES
pam_service_name=vsftpd //PAM认证服务的配置文件名称,该文件保存在/etc/pam.d/目录下
userlist_enable=YES //检查userlist_file文件指定的用户是不可以访问vsftpd,/etc/vsftpd.user_list
listen=YES //Ftp服务器处于独立启动模式
tcp_wrappers=YES
userlist_enable =YES //设置使用vsftp.user_list文件
userlist_deny =YES //设置使用vsftp.user_list文件用户设置禁用账号
#head -5 /etc/vsftpd.ftpusers //此文件保存不允许进行登录的本地用户
Users that are not allowed to login via ftp
root
bin //这些用户不时普通的用户,都是系统中具有较高权限的账号
daemon
adm
#grep -v '#' /etc/vsftpd.user_list //查看vsftpd.user_list文件中不可访问ftp服务的用户
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
#ls -l /etc/init.d/vsftpd* //查看vsftpd的启动文件
-rwxr-xr-x 1 root root 1880 2004-10-04 /etc/init.d/vsftpd
#chkconfig --list vsftpd //查看vsftpd的运行级别
vsftpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
#chkconfig --level 35 vsftpd on //设置vsftpd的启动运行级别3和5中自动启动
#chkconfig --list vsftpd
vsftpd 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭
#service vsftpd status //查看vsftpd的运行状态
vsftpd 已停
#service vsftpd start //开启vsftpd服务器
为 vsftpd 启动 vsftpd: [ 确定 ]
#service vsftpd restart //重新启动vsftpd服务器
关闭 vsftpd: [ 确定 ]
为 vsftpd 启动 vsftpd: [ 确定 ]
#service vsftpd stop //停止vsftpd服务器
关闭 vsftpd: [ 确定 ]
#service vsftpd start //启动vsftpd服务器
为 vsftpd 启动 vsftpd: [ 确定 ]
#ftp 192.168.80.202 //测试vsftpd服务器
Connected to 192.168.80.202.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.80.202:root):ftp(或anonymous) //匿名用户登录可使用ftp或anonymous 也可用本地用户
331 Please specify the password.
Password:fay361@126.com //使用邮箱作为密码:fay361@126.com
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>ls //ls查看当前的目录 测试成功
227 Entering Passive Mode (192,168,80,202,224,106)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Oct 04 2004 pub
226 Directory send OK.
ftp>bye //bye退出ftp服务器
221 Goodbye.
linux下添加ftp用户和创建ftp虚拟用户
#useradd -g ftp -s /bin/nolongin test //创建test用户,不让用户登录系统 test属于ftp组
# passwd test //给test用户创建密码
Changing password for user test.
New UNIX password:1234567 //输入密码:1234567
Retype new UNIX password:1234567 //确认输入密码:1234567
passwd: all authentication tokens updated successfully.
vsftpd虚拟用户账号的设置过程:
#vi login.txt //创建虚拟用户口令文件,文件内容如下
mike
1234567
john
1234567
#db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db //用db_load命令生成认证文件,-f虚拟用户口令文件,即login.txt,生成的认证文件名vsftpd_login.db,该文件存放在/etc/vsftpd/目录中
#file /etc/vsftpd/vsftpd_login.db //查看vsftpd_login.db的文件类型
/etc/vsftpd/vsftpd_login.db: Berkeley DB (Hash, version 8, native byte-order)
#chmod 600 /etc/vsftpd/vsftpd_login.db //设置文件vsftpd_login.db权限,对root用户可读可写
#ls -l /etc/vsftpd/vsftpd_login.db
-rw------- 1 root root 12288 1月 21 22:24 /etc/vsftpd/vsftpd_login.db
#vi /etc/pam.d/vsftpd.vu //创建虚拟用户认证所需的PAM文件vsftpd.vu,如下内容
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# cat /etc/pam.d/vsftpd.vu //查看vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# useradd -d /home/ftptest ftpuser //建立虚拟的系统用户账号 账号名 ftpuser 宿主录/home/ftptest
# chmod 700 /home/ftptest/ //设置目录权限700
让后设置vsftpd.conf配置文件,在修改配置文件前对其进行备份
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak //备份vsftpd.conf
#vi /etc/vsftpd/vsftpd.conf //在vsftpd.conf配置文件中添加虚拟用户配置项 内容如下:
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
#service vsftpd restart //重新启动vsftpdfuwuqi
#ftp 192.168.80.202 //登录ftp服务器
Connected to 192.168.80.202.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.80.202:root): mike //用mike用户进行登录
331 Please specify the password.
Password:1234567 //密码:1234567
230 Login successful. //230显示登录成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye //bye退出ftp服务器
对vsftpd虚拟用户设置不同的权限
#vi /etc/vsftpd/vsftpd.conf //编辑vsftpd.conf文件 添加如下内容:
user_config_dir=/etc/vsftpd_user_conf //设置用户配置文件的保存目录
#mkdir /etc/vsftpd_user_conf //创建虚拟用户配置文件的保存目录
#vi /etc/vsftpd_user_conf/mike //创建mike用户配置文件,添加以下内容:
anon_world_readable_only=NO //mike表示用户可以浏览Ftp目录和下载文件
anon_upload_enable=YES //mike用户可以上传文件
anon_mkdir_write_enable=YES //mike用户具有建立和删除目录的权限
anon_other_write_enable=YES //mike用户具有文件改名和删除文件的权限