Linux下ftp安装及使用

1、查询是否安装vsftpd: 

rpm -qa |grep vsftpd 或者查询当前ftp进程:ps -ef|grep vsftpd

已安装显示

未安装显示

2、下载vsftpd地址: http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd

选择版本后使用wget下载

3、安装vsftpd服务器: rpm -ivh vsftpd-*.rpm

4、测试是否安装成功

[root@379318 ~]# ftp localhost

Trying ::1...

ftp: connect to address ::1Connection refused

Trying 127.0.0.1...

ftp: connect: Connection refused

ftp> bye

[root@379318 ~]#

匿名访问

5vsftpd服务器的启动、停止、重启、状态
  service vsftpd start
  service vsftpd stop
  service vsftpd restart
  service vsftpd status

6vsftpd的三个主配置文件
  /etc/vsftpd/vsftpd.conf //服务器的主配置文件
  /etc/vsftpd/ftpusers  //此文件内的用户都不能访问vsftpd服务器
  /etc/vsftpd/user_list  //可能会被拒绝访问服务喊叫或允许访问

7查看vsftpd.conf的配置参数:vim /etc/vsftpd/vsftpd.conf
 anonymous_enable=YES  //启用匿名用户登录(建议设置为NO)
 local_enable=YES  //允许本地用户访问vsftpd服务器
 write_enable=YES  //允许上传
 download_enable=YES  //允许下载
 anon_upload_enable=YES  //允许匿名用户上传
 anon_mkdir_write_enable=YES //允许匿名用户创建目录和上传
 anon_other_write_enable=NO //不允许匿名用户删除和改名
 local_max_rate=20000  //本地用户的最大传输速率,单位是字节/秒
 anon_max_rate=5000  //匿名用户的最大传输速率,单位是字节/秒
 local_umask=022   //去掉写的权限
 file_open_mode=0666  //上传文件的权限
 xferlog_enable=YES  //维护日志文件,详细记录上传和下载操作
 xferlog_std_format=YES  //传输日志文件将以标准的xferlog格式书写,日志文件默认为/var/log/xferlog
 hide_ids=YES   //隐藏文件夹和目录属主
 port_enable=YES   //允许使用主动传输模式
 pasv_min_port=(1024<port<65535) //指定PASV模式可以使用的最小端口
 pasv_max_port=(1024<port<65535) //指定PASV模式可以使用的最大端口
 connect_from_port_20=YES //定义FTP传输数据的端口,默认是20
 ascii_download_enable=NO //设置不可使用ASCII模式下载
 listen=YES   //让FTP工作在独立模式下
 pam_service_name=vsftpd  //用户配置文件认证
 userlist_enable=YES  
 tcp_wrappers=YES  //将使用wrappers作为主机访问控制方式
 idle_session_timeout=600 //表明空闲时间为600秒
 data_connection_timeout=120 //表明数据连接超时时间为120秒
 chroot_local_user=YES  //用户登录后不能访问自己目录以外的文件或目录
 listen_port=4444  //修改FTP服务器的端口号

8、设定vsftp在等级3和5为开机运行服务

 chkconfig --level 35 vsftpd on

9、ftp客户连接常见故障现象
  现象1:
 > ftp: connect :连接被拒绝
 原因: 服务没启动
 解决: # chkconfig vsftpd on

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

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

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

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

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

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

 现象8、
 确认存在“local_enable=YES”,但本地用户无法登陆
 原因: 验证参数被误删除
 解决: 添加“pam_service_name=vsftpd”
 
 现象9、
 500 OOPS: chdir
 500 OOPS: child died
 Connection closed by remote host.
 原因: 用户主目录没有权限或没有主目录
 解决: 正确设置用户主目录权限

10、vsftpd虚拟用户账号的设置步骤
 (1)建立虚拟用户口令库文件(一行用户名,一行密码)
  vim /var/ftp/pub/vu_list.txt
  wang5
  123
  zhao6
  456

 (2)生成vsftpd的认证文件(使用db_load需要服务器已安装db4-utils)
  db_load -T -t hash -f /var/ftp/pub/vu_list.txt /etc/vsftpd/vu_list.db
  chmod 600 /etc/vsftpd/vu_list.db

 (3)建立虚拟用户所需的PAM配置文件
  vim /etc/pam.d/vsftpd.vu
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vu_list
  account required /lib/security/pam_userdb.so db=/etc/vsftpd/vu_list

 (注:64位服务器配置时/lib/可能需要更改为/lib64/)

(4)建立虚拟用户所要访问的目录并设置相应权限
  useradd ftpuser

 (5)设置vsftpd.conf配置文件
  guest_enable=YES
  guest_username=ftpuser
  pam_service_name=vsftpd.vu

 (6)重启vsftpd服务器
  service vsftpd restart

11、对虚拟用户设置不同权限
 (1)设置vsftpd.conf文件
  user_config_dir=/etc/vsftpd_vu

 (2)创建目录
  mkdir /etc/vsftpd_vu

 (3)进入目录进行编辑 
  cd /etc/vsftpd_vu
  vim wang5
  anon_world_readable_only=NO
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES

  vim zhao6
  anon_world_readable_only=YES
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  anon_other_write_enable=NO

12、使用虚拟用户登录FTP

 

1

 

2

 

 

 
13、配置基于IP的虚拟ftp服务器
 (1)绑定其它IP
  ifconfig eth0:0 192.168.1.71
 (2)建立虚拟FTP服务器目录
  mkdir -p /var/ftp2/pub1
 (3)创建虚拟服务器的匿名用户所映射的本地用户
  ftp2
  useradd -d /var/ftp2 -M ftp2
 (4)修改原独立运行服务器的配置文件
  listen_address=192.168.1.70
 (5)复制生成虚拟服务器的主配置文件
  cp /etc/vsftpd.conf /etc/vsftpd/vsftpd2.conf
 (6)设定虚拟服务器的IP并使虚拟服务器的匿名用户映射到本地用户ftp2
  vi /etc/vsftpd/vsftpd2.conf
  pam_service_name=vsftpd
  listen_address=192.168.1.71
  ftp_username=ftp2
 (7)重启服务生效:service vsftpd restart

 

14、DOS下常用ftp命令:

(1) 切换到指定目录下
(2) 连接目标ftp服务器:ftp 10.137.97.29
(3) 输入帐号、密码
(4) 切换传输方式,二进制传输使用bin命令
(5) 上传文件:put test_setup.zip
(6) 下载文件:get **.zip
(7) 退出ftp:bye
(8) cd 切换目录
(9) del 删除文件
(10) dir 查看远程主机当前目录
(11) ascii 使用ascii方式传输文件
(12) mput、mget: 将多个文件上传、下载
(13) mkdir 在远程主机中建立目录
(14) pwd 显示远程主机的当前工作目录路径
hackIE