zoukankan      html  css  js  c++  java
  • FTP服务

    ftp服务的搭建:

    [root@tiandong63 ~]# yum install vsftpd -y     安装

    [root@tiandong63 ~]# chkconfig vsftpd on     开机自启动

    [root@tiandong63 ~]# /etc/init.d/vsftpd start   启动
    Starting vsftpd for vsftpd: [ OK ]

    [root@tiandong63 ~]# netstat -tlunp|grep vsftpd  查看开放的端口
    tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1606/vsftpd

    [root@tiandong63 ~]# ll -d /var/ftp/pub/        默认共享的文件
    drwxr-xr-x 2 root root 4096 Mar 22 2017 /var/ftp/pub/

    [root@tiandong65 ~]# yum install lftp -t   在Linux客户端上查看分享的文件

    [root@tiandong65 ~]# lftp 192.168.1.63         
    lftp 192.168.1.63:~> ls
    drwxr-xr-x 2 0 0 4096 Mar 22 2017 pub

    在Windows系统上看分享的目录:

    例子:公司技术部准备搭建一台FTP服务器,允许所有员工上传和下载文件,并允许创建用户自己的目录

    此时在共享的目录下建立新的目录:(权限拒绝)

    修改配置文件:

    192.168.1.63:

    /etc/vsftpd/vsftpd.cong

    12 anonymous_enable=YES   匿名用户传输

    27 anon_upload_enable=YES  匿名用户上传

    31 anon_mkdir_write_enable=YES  匿名用户创建文件

    此时在Windows上面穿件文件

    依然是权限拒绝

    权限拒绝有两方面一个是服务本身权限拒绝,一个是目录权限不足,此时服务本身有读写权限,所以看一下目录权限

    [root@tiandong63 vsftpd]# cat /etc/passwd|grep ftp
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    ftp是ftp用户,查看一下共享目录权限。

    [root@tiandong63 vsftpd]# ll -d /var/ftp/pub/
    drwxr-xr-x 2 root root 4096 Mar 22  2017 /var/ftp/pub/

    修改一下共享目录权限

    [root@tiandong63 vsftpd]# chown -R ftp.ftp /var/ftp/pub
    [root@tiandong63 vsftpd]# ll -d /var/ftp/pub/
    drwxr-xr-x 2 ftp ftp 4096 Mar 22  2017 /var/ftp/pub/

    [root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart
    Shutting down vsftpd:                                      [  OK  ]
    Starting vsftpd for vsftpd:                                [  OK  ]

    此时在来创建:(此时可以创建目录了,但是不能给文件名称)

    此时在来修改配置文件:

    配置文件增加一行,重启服务在来看

     32 anon_other_write_enable=yes       配置文件加了这行后匿名用户权限特别大,因此不建议加
    [root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart
    Shutting down vsftpd:                                      [  OK  ]
    Starting vsftpd for vsftpd:                                [  OK  ]

    此时也同步更新的到了服务器端

    例2:

    公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文

    件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2

    帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将

    这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。

    ftp 和www web服务器相结合。

    www web服务器根目录:  /var/www/html

    只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。

    分析:

    将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安

    全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1

    和team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限

    (1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码

    [root@tiandong63 ~]# useradd -s /sbin/nologin team1
    [root@tiandong63 ~]# useradd -s /sbin/nologin team2
    [root@tiandong63 ~]# echo 123456 |passwd --stdin team1
    Changing password for user team1.
    passwd: all authentication tokens updated successfully.
    [root@tiandong63 ~]# echo 123456 |passwd --stdin team2
    Changing password for user team2.
    passwd: all authentication tokens updated successfully.

    (2)修改ftp主配置文件

    [root@tiandong63 ~]# vim /etc/vsftpd/vsftpd.conf

    12 anonymous_enable=NO   #禁止匿名用户登录

    15 local_enable=YES        #允许本地用户登录

    97 local_root=/var/www/html  #设置本地用户的根目录为/var/www/html

    98 chroot_list_enable=YES    #激活chroot功能

    100 chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

     

    [root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart

    (3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号

    [root@tiandong63 ~]# touch /etc/vsftpd/chroot_list

    [root@tiandong63 ~]# vim /etc/vsftpd/chroot_list

    1 team1

    2 team2

    [root@tiandong63 ~]# mkdir -p /var/www/html

    [root@tiandong63 ~]# chmod o+w -R /var/www/html

    在共享目录下面写入测试数据

    [root@tiandong63 ~]# mkdir /var/www/html/webdata

    此时在Windows上面查看:

    在Linux上查看:

    [root@tiandong65 ~]# lftp 192.168.1.63 -u team1,123456
    lftp team1@192.168.1.63:~> ls
    drwxr-xr-x 2 0 0 4096 Mar 22 11:08 webdata
    lftp team1@192.168.1.63:/>

    例3: ftp虚拟帐号:

    企业环境

    公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载。对所有互

    联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP 服务器进行上

    传和下载,但不可以删除数据。需要保证服务器的稳定性并做优化。

    创建ftp虚拟帐号。允许客户使用ftp帐号下载文件。 但是,你们自己的合作伙伴帐号:vip可以上传一内部文件。

    需求分析

    根据企业的需求,对于不同用户进行不同的权限限制,FTP 服务器需要实现用户的审核。需考虑

    到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不

    同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。

    1、创建用户数据库

    (1)创建用户文本文件

    先建立用户文本文件vsftpd_virtualuser.txt,添加两个虚拟帐号,非会员帐号ftp及会员帐号

    [root@tiandong63 ~]# vim /etc/vsftpd/vsftpd_virtualuser.txt

    nonevip

    123456

    vip

    123456

    [root@tiandong63 ~]#  db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db

    [root@tiandong63 ~]#  rm -rf /etc/vsftpd/vsftpd_virtualuser.txt

    [root@tiandong63 ~]#  chmod 600 /etc/vsftpd/vsftpd_virtualuser.db

    [root@tiandong63 ~]# vim /etc/pam.d/vsftpd

     

    auth       required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

    account  required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

    [root@tiandong63 ~]# useradd -d /var/ftp/share ftpuser

    [root@tiandong63 ~]#  useradd -d /var/ftp/vip ftpvip

    [root@tiandong63 ~]#  chmod -R 500 /var/ftp/share/

    [root@tiandong63 ~]#  chmod -R 700 /var/ftp/vip/

    [root@tiandong63 ~]# vim /etc/vsftpd/vsftpd.conf

    96 chroot_local_user=YES

    117 pam_service_name=vsftpd

    118 user_config_dir=/etc/vsftpd/vuserconfig

    119 max_clients=300

    120 max_per_ip=10

    121 userlist_enable=YES

    122 tcp_wrappers=YES

     

    [root@tiandong63 ~]#

    [root@tiandong63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf

    user_config_dir=/etc/vsftpd/vuserconfig

    [root@tiandong63 ~]# mkdir /etc/vsftpd/vuserconfig

    [root@tiandong63 ~]#  touch /etc/vsftpd/vuserconfig/nonevip

    [root@tiandong63 ~]#  touch /etc/vsftpd/vuserconfig/vip

    [root@tiandong63 ~]#  vim /etc/vsftpd/vuserconfig/nonevip

    1 guest_enable=yes

    2 guest_username=ftpuser

    3 anon_world_readable_only=no

    4 anon_max_rate=50000

     

    [root@tiandong63 ~]#  vim /etc/vsftpd/vuserconfig/vip

    1 guest_enable=yes

      2 guest_username=ftpvip

      3 anon_world_readable_only=no

      4 write_enable=yes

      5 anon_mkdir_write_enable=yes

      6 anon_upload_enable=yes

      7 anon_max_rate=100000

     

    [root@tiandong63 ~]# /etc/init.d/vsftpd restart

    Shutting down vsftpd:                                      [FAILED]

    Starting vsftpd for vsftpd:                                [  OK  ]

    [root@tiandong63 ~]# /etc/init.d/vsftpd restart

    Shutting down vsftpd:                                      [  OK  ]

    Starting vsftpd for vsftpd:                                [  OK  ]

    [root@tiandong63 ~]# cd /var/ftp/share/

    [root@tiandong63 share]# ll -h
    total 60M
    -rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe

    [root@tiandong63 share]# cp -r /boot/grub/ ./

    [root@tiandong63 share]# ll -h
    total 60M
    -rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe
    drwxr-xr-x 2 root root 4.0K Mar 22 19:38 grub

    [root@tiandong63 ftp]# cd vip/

    [root@tiandong63 ftp]# cd vip/
    [root@tiandong63 vip]# pwd
    /var/ftp/vip

    [root@tiandong63 vip]# ll
    total 0
    [root@tiandong63 vip]# cp -r /boot/grub/ ./

    [root@tiandong63 vip]# ll -h
    total 60M
    -rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe
    drwxr-xr-x 2 root root 4.0K Mar 22 19:40 grub

    [root@tiandong63 ~]# cd /etc/vsftpd/

    [root@tiandong63 vsftpd]# ll

    total 32

    -rw------- 1 root root   125 May 11  2016 ftpusers

    -rw------- 1 root root   361 May 11  2016 user_list

    -rw------- 1 root root  4668 Mar 19 21:28 vsftpd.conf

    -rwxr--r-- 1 root root   338 May 11  2016 vsftpd_conf_migrate.sh

    -rw------- 1 root root 12288 Mar 19 20:57 vsftpd_virtualuser.db

    drwxr-xr-x 2 root root  4096 Mar 19 21:13 vuserconfig

    [root@tiandong63 vsftpd]# cd vuserconfig/
    [root@tiandong63 vuserconfig]# ll
    total 8
    -rw-r--r-- 1 root root 88 Mar 22 19:26 nonevip
    -rw-r--r-- 1 root root 156 Mar 22 19:29 vip



  • 相关阅读:
    Redis 的基本操作、Key的操作及命名规范
    python离线安装外部库(第三方库)
    STL之deque
    STL之list
    STL学习之vector
    STL三种标准容器
    Lua系统库
    Lua输入输出库
    Lua字符串库
    Lua面向对象
  • 原文地址:https://www.cnblogs.com/winter1519/p/8595846.html
Copyright © 2011-2022 走看看