• 使用Linux搭建FTP服务器实现文件共享


    使用Linux搭建FTP服务器实现文件共享、、、

    ----------------

    Linux中的文件共享:
    FTP
    VSFTPD
    VSFTPD虚拟用户

    FTP可以用在Linux与Linux 和Windows与Linux之间,跨平台使用

    Samba可以用在Linux与Linux 和Windows与Linux之间,跨平台使用
    -----------------
    林那克斯
    FTp:File Transfer Protocol 文件传输协议的缩写,是基于网络来传输文件的应用层协议

    FTp可以通过网络来传输文件,是因为工作在应用层可以不受平台的限制
    ---------------

    FTP的传输方式

    FTp的主动模式与被动模式

    ------------------
    FTp是明文传输的
    FTP的用户分为:实体用户realuser
    匿名用户anonymous user
    访问用户 guest user
    --------------
    FTp用户的类型
    匿名用户 anonymous
    本地用户 账号和密码保存在passwd shadow 文件中
    虚拟用户 使用独立的账户和密码的文件
    --------------

    闭iptables

    iptables -F
    iptables -L
    关闭selinux
    vim /etc/sysconfig/selinux
    把里边的一行改为
    SELINUX=disabled

    setenforce 0
    查看selinux的状态
    getenforce

    查看一下当前用的Linux的版本
    cat /etc/redhat-release

    安装ftpd
    yum -y install vsftpd
    查看一下安装好的文件
    rpm -ql vsftpd | less
    -------------------------------
    直接在xshell中登录主机
    ssh root@10.196.34.75


    关闭防火墙和selinux
    setenforce 0 关闭了selinux
    service iptables stop 关闭了防火墙
    yum install vsftpd -y 安装vsftpd
    rpm -ql vsftpd 查看一下安装生成的文件
    --------------------
    查看一下安装完成后的文件
    rpm -ql vsftpd | less
    查看一下ftp默认账户var的权限
    ll /var

    -----------------
    修改一下配置文件
    cd /etc/vsftpd/
    vim vsftpd.conf
    启用匿名用户
    anonymous_enable=YES

    重启一下服务
    service vsftpd start
    Redirecting to /bin/systemctl start vsftpd.service Linux的版本更高了启动服务的命令改变了的提示
    [root@root vsftpd]# /bin/systemctl start vsftpd.service

    查看一下vsftpd的端口号
    ss -tnpl
    更清楚的查看监听的端口
    netstat -tnlp
    ------------------------
    安装一下ftp 包 ,一般安装在客户端的
    yum install ftp -y
    安装完成后登陆一下ftp
    ftp 10.196.34.3
    默认的登录用户名是ftp 登录密码没有,直接Enter即可

    登录进ftp后用服务器端的系统查看一下ftp目录
    cd /var/ftp/
    ------------------
    执行命令后的效果
    [root@root ~]# cd /var/ftp/
    [root@root ftp]# ls
    pub
    ------------------
    在服务端创建一个111的目录测试
    mkdir 111

    在客户机上进ftp的pub中可以看到在服务器上新建的测试目录
    drwxr-xr-x 2 0 0 6 Oct 01 11:40 111
    drwxr-xr-x 2 0 0 6 Mar 07 2014 pub

    ---------------------
    在客户端测试一下当前的ftp是否能上传文件
    ftp> lcd /etc
    Local directory now /etc
    ftp> put fstab
    local: fstab remote: fstab
    227 Entering Passive Mode (10,196,34,3,127,196).
    550 Permission denied.

    报错是没有权限
    -------------------
    打开匿名用户的上传下载权限
    # cd /etc/vsftpd/
    [root@root vsftpd]# ls
    ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
    [root@root vsftpd]# vim vsftpd.conf

    修改
    #anon_upload_enable=YES

    anon_upload_enable=YES

    修改
    #anon_mkdir_write_enable=YES

    anon_mkdir_write_enable=YES

    -------------------------
    主要修改的文件解释
    /etc/vsftpd/vsftpd.conf
    启用匿名用户
    anonymous_enable=YES
    是否允许匿名用户上传文件:是否允许匿名用户有创建目录的权限,要考虑文件系统上的所在目录,要有写的权限
    anon_upload_enable=YES
    登录的匿名用户是否用删除和重命名的权限
    anon_other_write_enable=YES
    指定上传文件的所有者默认的权限
    anon_umask=077
    -------------------
    重启一下服务
    service vsftpd restart

    创建一个测试用目录testdir
    mkdir testdir
    给普通用户testdir的读写执行权限
    [root@root ftp]# setfacl -m u:ftp:rwx testdir
    查看一下testdir当前拥有的权限
    [root@root ftp]# getfacl testdir/

    ---------------------
    在客户端退出ftp登录重新登录一下
    ftp> bye
    [root@root vsftpd]# ftp 10.196.34.3
    ----------------

    ==============================
    第二个小实验:
    本地用户的ftp
    新建一个本地用户
    useradd centos
    给新建的本地用户centos设置一个密码
    [root@root vsftpd]# echo "1123456"|passwd --stdin centos


    查看一下本地用户登录ftp的路径
    pwd
    257 "/home/centos"
    是否能进入etc
    cd /etc
    是否可以进入usr/local
    cd /usr/local
    回到本地用户的家目录
    cd ~
    pwd
    257 "/home/centos"
    -------------------------------
    vim
    进入主配置文件
    chroot_local_user=YES
    -----------
    重启一下服务
    systemctl restart vsftpd
    用客户端重新用本地用户访问一下ftp

    -------------------
    设置在本地用户的时候:那些用户可以有访问权限
    修改主配置文件中的内容:
    vim vsftpd.conf

    allow_writeable_chroot=YES
    #chroot_local_user=YES
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list

    新建一个用户权限文件
    vim vsftpd.conf
    写入内容
    centos
    重启一下服务
    systemctl restart vsftpd
    重新用客户端登录ftp访问一下
    ftp> ls
    227 Entering Passive Mode (10,196,34,3,116,172).
    150 Here comes the directory listing.
    226 Directory send OK.
    ftp> pwd
    257 "/"
    ftp>

    不能访问/etc目录了
    --------------------
    新建一个本地用户设置密码
    useradd redhat
    [root@root vsftpd]# echo "111"|passwd --stdin redhat

    ==================================
    小实验设置ftp登录是后的提示信息
    打开主配置文件
    vim vsftpd.conf
    修改
    #ftpd_banner=Welcome to blah FTP service.

    ftpd_banner=Welcome to blah FTP service.

    自己写一个banner
    banner_file=/etc/vsftpd/banner.txt
    ----------------
    在自定义的欢迎文件中写入内容
    vim banner.txt
    重启一下服务
    systemctl restart vsftpd
    /bin/systemctl restart vsftpd.service

    重新用客户端登录一下就可以看到自定义的提示信息了
    [root@root vsftpd]# ftp 192.168.10.10
    Connected to 192.168.10.10 (192.168.10.10).
    220-我是,自定义的ftp欢迎信息!!!!!!
    220-
    220-It's Cool!!!!
    220
    Name (192.168.10.10:root):

    ======================
    vim /etc/vsftpd/vusers.txt
    写入
    zhangsan
    123456
    lisi
    redhat
    ------------------
    生成一个数据库文件
    db_load -T -t hash -f vusers.txt vusers.db
    设置一下生成的数据库文件的权限
    chmod 600 vusers.db
    ----------------
    创建一个不能登录的用户
    useradd -d /var/ftproot -s /sbin/nologin vuser
    修改一下权限
    chmod +rw /var/ftproot/
    查看一下当前ftproot的权限
    ll /var
    drwxr--r--. 3 vuser vuser 74 Oct 1 21:38 ftproot
    ----------------------
    创建一个模块
    vim /etc/pam.d/vsftpd.db
    写入
    auth required pam_userdb.so db=/etc/vsftpd/vusers
    account required pam_userdb.so db=/etc/vsftpd/vusers
    -------------
    修改一下主配置文件
    vim vsftpd.conf
    guset_enable=yes
    guest_username=vuser
    pam_service_name=vsftpd.db
    user_config_dir=/etc/vsftpd/vusers.d/


    最后修改的效果
    #pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    #
    guset_enable=YES
    guest_username=vuser
    pam_service_name=vsftpd.db
    user_config_dir=/etc/vsftpd/vusers.d/

    ----------------
    创建一个目录
    mkdir /etc/vsftpd/vusers.d/
    cd /etc/vsftpd/vusers.d/
    ------------
    编辑一下用户的配置文件
    vim zhangsan
    写入
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    ---------------
    把zhangsan的配置文件复制一个给lisi
    cp zhangsan lisi
    vim lisi
    -------------------
    重启一下服务


    ========================
    另外一个小实验
    用mysql创建虚拟用户
    yum -y install mysql-server vsftpd pam_mysql

    -----------------------------------

  • 相关阅读:
    shell脚本编程-重定向
    web安全-剖析_基础构架剖析
    shell脚本编程-函数
    shell脚本编程-循环
    web安全-入侵基础
    shell脚本编程-检查和测试
    shell脚本编程-特殊字符
    shell脚本编程-计算方式
    python例子-抓取网站IP列表
    linux问题-APR not Found
  • 原文地址:https://www.cnblogs.com/GaoNa/p/9736426.html
Copyright © 2020-2023  润新知