vsftpd服务器-匿名-本地-虚拟用户

  vsftpd配置文件的帮助:
     man   vsftpd.conf
vsftpd服务器-匿名-本地-虚拟用户
lftp:是Linux中专有的命令:所以推荐使用
     lftp  -u  user1   192.168.30.250
#指定用户登录  FTP  服务器

其中21是监听端口,20是数据传递端口。


端口:
          22 端口:是Linux当中远程管理端口,安全加密,不给普通用户用,只给管理员用
          21端口:FTP协议。
          23端口:TELENT,远程管理协议,不安全,非明文。
          25端口:SMTP,简单邮件管理协议,用于发邮件
          53端口:DNS,即有TCP 53端口,也有 UDP 53端口。
          69端口:TFTP,简单文件传输协议, 
          161端口:SNMP简单网络管理协议,主要用来做监控。
    深绿:属于UPD端口
    蓝色:属于TCP端口
    53:即有TCP,也有UPD。
注意: 10000   一万以内的系统预留端口,服务程序预留。超过一万的可以给用户自由使用。
     vi  /etc/services----把所有的常规端口做了罗列。

chkconfig --list    查看自启动的。
netstat  -tlun       查看启动的。

vsftpd服务支持主动模式需要注意配置选项
          1、port_enable=yes
          2、connect_from_port_20=YES


FTP:(文件传输协议)对外提供共享功能,
在Linux中使用的是  vsftpd  ,全称:非常安全ftp
对外提供2个端口:20   21:
     20:端口是用来传输数据的,也就是通过ftp下载东西,都是通过ftp的20端口下载到本地的
     21:端口是用来传输信任的,验证等。一些控制信息都是通过21端口走的。 
     
工作原理:--这2中模式都是相对于 服务器来说的。默认情况下使用的是 被动连接模式。
     数据传输时候有2中模式:
          1、主动模式
               当客户机向FTP服务器发送连接请求到21,当21端口验证成功后,FTP服务器20端口会主动连接客户机的另一个端口。
          2、被动模式
               当客户机连接FTP服务器的时候,发送请求到21,并告诉FTP服务器连接的数据连接端口,这时候可以称做被动连接。

FTP:上传方法2种
     1、bin(上传一些不可编辑的文件,如:照片)如果用bin上传文档文件可能会产生乱码
          
     2、ascii(如果是可编辑的文本文件,选用这种)
          put  文件的路径
          dir  查看文件列表
          pwd  查看当前位置
          cd  testdir  进入目录
     2-1、不能上传的原因:
          2-1-1、ftp配置文件对应的设置是否开启。
          2-1-2、用户上传所在目录是否有对应的W权限,或者新建一个目录,所有者和所属组都是ftp。
         vsftpd服务器-匿名-本地-虚拟用户
vsftpd服务器-匿名-本地-虚拟用户
     权限对目录的作用:
          1、r:可以查询目录下文件名(ls)
          2、w:具有修改目录结构的权限。如:新建文件和目录,删除此目录下文件和目录,重命名次目录下文件和目录,剪切(touch   rm   mv   cp)
          3、x:可以进入目录(cd)
          2-1-3、如果上2中方法都没有解决,就需要考虑SELinux的问题了
     vsftpd服务器-匿名-本地-虚拟用户


安装  vsftpd  服务:
     yum  -y   install   vsftpd
     1、可以支持本地用户
     2、支持匿名用户
     3、支持虚拟用户
vsftpd服务器-匿名-本地-虚拟用户
设置ftp防火墙规则:
     iptables  -I  INPUT  1  -p  tcp   --dport  20:21  -j   ACCEPT
PAM的管理的vsftpd的配置文件路径:
     /etc/pam.d/vsftpd


/etc/vsftpd/vsftpd.conf
帮助查看: man   vsftpd.conf

1、是否允许匿名用户登录
vsftpd服务器-匿名-本地-虚拟用户
登录:---匿名登录到的目录是:/var/ftp/
     ftp   192.168.30.250   回车 提示输入:ftp  (匿名登录时的用户名) ,  没有密码
vsftpd服务器-匿名-本地-虚拟用户

2、虽然设置了允许本地用户登录,但是会提示无法切换到该用户的家目录,这是因为SELinux的问题,如果关闭可以直接登录成功。如果设置本地用户可以登录ftp,则需要修改SELinux的boolean值
vsftpd服务器-匿名-本地-虚拟用户
3、设置本地用户是否可以写
vsftpd服务器-匿名-本地-虚拟用户


4、设置本地用户的最大权限
vsftpd服务器-匿名-本地-虚拟用户


5、设置匿名用户的一些操作
vsftpd服务器-匿名-本地-虚拟用户


6、设置从A目录到B目录时,在B目录中显示的欢迎词或警告语、
这个警告语只在ftp命令登录时显示,如果网页登录是不显示的。
vsftpd服务器-匿名-本地-虚拟用户


7、是否启用ftp日志---及日志的日志文件路径---及日志的存储方式
vsftpd服务器-匿名-本地-虚拟用户
vsftpd服务器-匿名-本地-虚拟用户
vsftpd服务器-匿名-本地-虚拟用户


8、默认端口连接
vsftpd服务器-匿名-本地-虚拟用户


9、修改ftp匿名上传后文件的所有者
vsftpd服务器-匿名-本地-虚拟用户


10、设置超时时间:连接后未做任何动作后多长时间断开连接
vsftpd服务器-匿名-本地-虚拟用户


11、设置一连接时候显示的欢迎词。
vsftpd服务器-匿名-本地-虚拟用户


12、设置所有默认显示的位置为 根  / ,实际位置仍是用户的家目录。
     也就是做  chroot 设置(即:将用户默认登录的所在位置显示为 根目录)
vsftpd服务器-匿名-本地-虚拟用户


12-1、设置指定用户做chroot:
vsftpd服务器-匿名-本地-虚拟用户


13、指定匿名用户登录后默认所在目录位置:
vsftpd服务器-匿名-本地-虚拟用户
14、最下面的设置选项:
vsftpd服务器-匿名-本地-虚拟用户
14-1、批量允许、拒绝用户登录
vsftpd服务器-匿名-本地-虚拟用户
  切记:添加设置的时候 参数   等号=  值   之间没有空格,否则启动服务会报错。
     userlist_enable=YES   是否启用用户列表,默认是启用的。
     userlist_deny=YES   ---用户列表默认是存在的。(表示是否决绝。YES:是拒绝   NO:不拒绝)
     1、凡是在用户列表:user_list  文件中出现的用户,登录ftp服务器都是被拒绝的,没有出现在用户列表 user_list 文件中的用户都是可以登录ftp服务器的
     2、如果这个值改为  NO,则只有在用户列表  user_list 文件中的用户才可以登录ftp服务器,否则其他用户登录都是被拒绝的。
     userlist_file=/etc/vsftpd/user_list
     #用户列表
vsftpd服务器-匿名-本地-虚拟用户

14-2、为什么出现在  ftpusers  中的用户都是被拒绝的?
     因为PAM中 deny(拒绝)这个文件中的用户登录
vsftpd服务器-匿名-本地-虚拟用户
14-3、限制指定后缀的文件不能上传
vsftpd服务器-匿名-本地-虚拟用户
vsftpd服务器-匿名-本地-虚拟用户
14-4、如果出现如下错误需要添加防火墙模块即可
     用ftp登录后,使用命令出现的错误
     用lftp登录后,使用命令出现的问题
vsftpd服务器-匿名-本地-虚拟用户
vsftpd服务器-匿名-本地-虚拟用户
所以需要在 /etc/sysconfig/iptables-config 配置文件中添加对应的模块即可
vsftpd服务器-匿名-本地-虚拟用户

设置虚拟用户:
1、创建虚拟用户列表文件(在主配置目录下  /etc/vsftpd/),隐藏格式(较为安全)
vsftpd服务器-匿名-本地-虚拟用户
1-1、创建虚拟用户需要映射的 本机用户
     主要作用就是通过这个本机用户映射到ftp服务器
vsftpd服务器-匿名-本地-虚拟用户
2、生成数据库文件。
     db_load  -T  -t  hash  -f  .vusers.list  vusers.db
vsftpd服务器-匿名-本地-虚拟用户
2-1、修改文件的权限,确保文件的安全
vsftpd服务器-匿名-本地-虚拟用户
3、手工创建  PAM  认证文件(在pam目录下   /etc/pam.d/vsfptd.vu)
vsftpd服务器-匿名-本地-虚拟用户
4、修改vsftpd的主配置文件
vsftpd服务器-匿名-本地-虚拟用户
5、测试登录成功。只是能登录成功,其他操作并不能正确执行
vsftpd服务器-匿名-本地-虚拟用户
6、创建配置文件(在 /etc/vsftpd/ 下创建),用于存放虚拟用户的配置文件。
vsftpd服务器-匿名-本地-虚拟用户
6-1、创建虚拟用户的配置文件。
     需要注意的是:这个local_root指向的目录所有者必须是vistual(这个本机的虚拟用户)
vsftpd服务器-匿名-本地-虚拟用户
6-2、创建虚拟用户的"家目录"(其实是:vistual这个本机用户)
vsftpd服务器-匿名-本地-虚拟用户
6-3、修改主配置文件,添加 虚拟用户配置文件的指向
vsftpd服务器-匿名-本地-虚拟用户
7、此时就相当于给虚拟用户设置了目录。
如果查看不到文件,关闭SELinux 
vsftpd服务器-匿名-本地-虚拟用户