vsftp 常见配置测试与故障排除 - Hi,王松柏

时间:2024-03-03 19:51:08

vsftp 常见配置测试与故障排除

匿名用户 /var/ftp
        本地用户 /home/username
配置vsftpd时,强烈建议
·# cp /etc/vsftpd.conf /etc/vsftpd.conf1      //备份,vsftpd.conf是个比较苛刻的主文件,修改时不小心在有效行后加一个空格就会使服务启用失败
  # diff /etc/vsftpd.conf /etc/vsftpd.conf1    //文件内容比较
·做一步,重启一下,测试
# vi /etc/vsftpd.conf
anonymous_enable=YES    // :7 ,匿名帐户可登陆
local_enable=YES    // :10 ,本地帐户可以登陆
write_enable=YES    // :13 ,用户通过ftp在服务器上是否有写权限
local_umask=022    // :17 ,创建时默认权限。文件夹=777-umask,文件=666-umask
anon_upload_enable=YES    // :22 ,允许匿名帐户上传
anon_mkdir_write_enable=YES   // :26 ,允许匿名帐户创建文件夹
chown_uploads=YES    // :41 ,开启匿名帐户上传自动更改所属功能
chown_username=bob    // :42 ,属主改为bob
idle_session_timeout=600   // :52 ,空闲会话超时时间
ascii_upload_enable=YES   // :76 ,以ASCII方式上传
ftpd_banner=Welcome to blah FTP service. // :80 ,欢迎界面
chroot_list_enable=YES   // :91 ,开启用户更改根目录功能,默认为禁用更改根
chroot_list_file=/etc/vsftpd.chroot_list // :93 ,该文件中所有用户无法更改根
查看文件其它参数    # man vsftpd.conf
anon_other_write_enable=YES   // 允许匿名帐户删除、重命名
anon_root=/ftp    // 更改匿名帐户根目录,默认为"/var/ftp"
local_root=/local    // 更改本地帐户根目录为/local,默认为用户主目录~
userlist_enable=YES    // 开启用户列表功能
userlist_deny=YES    // 用户列表文件中所有帐户全拒绝。NO时,只有列表中用户能登陆
userlist_file=/etc/vsftpd.user_list // 用户列表文件
anon_max_rate=0    // 匿名用户最大传输速率,0为无限
local_max_rate=0    // 本地用户最大传输速率,0为无限
max_clients=0     // 最大客户端连接数,0为无限
pasv_max_port=0    // 客户端端口最大限制,0为无限制
pasv_min_port=0    // 客户端端口最小限制,0为无限制
测试:
方法一、IE(不建议)
方法二、cmd(强烈推荐),有回显提示。
ftp常用测试命令
? 帮助
bye 退出
quit 退出
exit 退出(仅linux客户端)
cd 服务器端路径更改
lcd 本地路径更改
pwd 显示服务器端当前路径
dir 显示服务器端当前目录中内容(显示权限)
ls 显示服务器端当前目录中内容(在linux中使用时也显示权限)
put 上传
get 下载
mkdir 建文件夹
rmdir 删除文件夹
rename 重命名
delete 删除文件
实验一、针对于本地用户的设置
1、限定只有本地帐户能登陆,匿名帐户无法登陆
2、本地帐户bob不可以更改自已主目录以外的其他目录
3、在本地帐户中只有bob能登陆,alice不能登陆
4、本地帐户可以上传文件,以ASCII方式上传
5、登陆时显示欢迎信息“Welcome to my ftp site”
# vi /etc/vsftpd.conf
anonymous_enable=NO     // 1、:7;需改
local_enable=YES     // 1、:10;默认,确认
230 Login successful. Have fun.  验证:登陆成功提示
Login failed.     验证:登陆失败提示
chroot_list_enable=YES    // 2、:91;需删除开头#号注释
chroot_list_file=/etc/vsftpd.chroot_list  // 2、:93;需删除开头#号注释
ftp> pwd
257 "/"     验证:成功显示
257 "/home/bob"    验证:改之前显示
userlist_enable=YES     // 3、添加
userlist_deny=NO     // 3、添加
userlist_file=/etc/vsftpd.user_list  // 3、添加
write_enable=YES     // 4、:13;默认,确认
ascii_upload_enable=YES    // 4、:76;需删除开头#号注释
ftpd_banner=Welcome to my ftpsite   // 5、:80;需删除开头#号注释,需修改
x: > ftp 192.168.1.201
Connected to 192.168.1.201.
220 Welcome to my ftp site   验证:未登陆提示
# echo bob >> /etc/vsftpd.user_list // 3、添加新行bob
# echo bob > /etc/vsftpd.chroot_list // 2、需存在该文件
# chkconfig vsftpd on   // 超级守护立即启动、开机自动启动
# service xinetd restart   // 重启vsftpd服务
测试:
x: > ftp linux.wnt.com.cn
实验二、针对于匿名帐户的设置
1、只有匿名帐户可以登陆
2、在FTP目录下创建incoming目录
3、允许匿名访问,但不允许在ftp目录中创建,删除
4、允许匿名用户在incoming目录中上传,创建,删除目录。
5、匿名帐户上传的文件,自动变为alice所属
6、用户空闲600秒自动中断
7、匿名帐户最大传输速率50kbytes/sec
8、客户端口连接范围50000到60000
# vi /etc/vsftpd.conf
anonymous_enable=YES   // 1、:7或“/anonymous” 确认
local_enable=NO   // 1、:10或“/local” 修改
anon_upload_enable=YES  // 4、:22或“/upload” 删除注释 
anon_mkdir_write_enable=YES  // 4、:26或“/mkdir” 删除注释 
anon_other_write_enable=YES  // 4、:27    添加
chown_uploads=YES   // 5、:41或“/chown” 删除注释 
chown_username=alice   // 5、:42    删除注释,再修改
idle_session_timeout=600  // 6、:52或“session” 删除注释
anon_max_rate=50000   // 7、    添加
pasv_min_port=50000   // 8、    添加
pasv_max_port=60000   // 8、    添加
# mkdir /var/ftp/incoming // 2、
# chmod go+w /var/ftp/incoming // 4、 g(group)组、o(other)其它人全有写权限
# chkconfig vsftpd on ==> # service xinetd restart
实验三、针对于超级守护的安全性限制(8。0版本可配,因9。0后vsftpd改为独立守护进程不能用此方法)
1、限定192.168.1.0/24能访问
2、10.0.0.0不能访问
3、每个客户机最大连接数1
4、服务器最大连接数200
5、只有13:00到17:00期间能访问ftp服务器
# vi /etc/xinetd.d/vsftpd 
only_from = 192.168.1.0  // 1、添加在括号内
no_access = 10.0.0.0   // 2、添加在括号内
per_source = 1   // 3、添加在括号内
instances = 200   // 4、添加在括号内
access_times = 13:00-17:00  // 5、添加在括号内
ftp客户连接常见故障现象
现象0:
> ftp: connect :连接被拒绝
原因: 服务没启动
解决: # chkconfig vsftpd on


现象1:
500 OOPS: cannot open user list file
原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户
解决: # echo username >> /etc/vsftpd.user_list


现象2:
530 Permission denied.
Login failed.
原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户
解决: # echo username >> /etc/vsftpd.user_list


现象3:
500 OOPS: cannot open chroot() user list file
Login failed.
原因: 不存在文件“/etc/vsftpd.chroot_list”
解决: # echo username >> /etc/vsftpd.chroot_list


现象4:
500 OOPS: missing value in config file
Connection closed by remote host.
原因: “=”等号前值有问题,或只有一个空格
解决: 修正相应的值即可,可能过 diff 来比较查找


现象5:
500 OOPS: bad bool value in config file
Connection closed by remote host.
原因: “=”等号后值有问题
解决: 将“=”等号后值确认修改


现象6:
500 OOPS: unrecognised variable in config file
Connection closed by remote host.
原因: 参数前有空格
解决: 将参数前空格删除


现象7、
确认存在“local_enable=YES”,但本地用户无法登陆
原因: 验证参数被误删除
解决: 添加“pam_service_name=vsftpd”


现象8、
500 OOPS: chdir
500 OOPS: child died
Connection closed by remote host.
原因: 用户主目录没有权限或没有主目录
解决: 正确设置用户主目录权限

 

500 OOPS: vsFtpd :refusing to run with writable anonymous root

指的是ftp的主目录不能为777权限,如:/var/ftp 此目录的权限为775即可