zoukankan      html  css  js  c++  java
  • Linux FTP的安装与配置

    注意:1、防火墙开启21端口。

         2、关闭SELinux
    方法有多个
    1、暂时关闭(不需要重启)
    # setenforce 0 (关闭)
    # setenforce 1 (启用)
    # getenforce   (查看状态)

          2

    Linux FTP的安装与配置

     注意:防火墙关掉(service iptables stop)测试用
    添加ftp防火墙规则:
     /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT
     /etc/rc.d/init.d/iptables save
     /etc/init.d/iptables restart
     

    ftp安装部分,操作步骤如下:

    可以使用yum命令直接安装ftp

    # yum install vsftpd

    ftp服务的开启与关闭命令:

    开启:# service vsftpd start

    关闭:# service vsftpd stop

    安装成功后,可以在本地使用ftp软件连接,默认账号是虚拟机的账号和密码。

    在linux中添加ftp用户,并设置相应的权限,操作步骤如下:

    1、环境:

    ftp为vsftp 被限制用户名为test。被限制路径为/home/test

    2、建用户:在root用户下:

    # useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
    # passwd test //为test设置密码

    3、更改用户相应的权限设置:

    # usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
    # usermod -s /sbin/bash test //用户test恢复正常
    # usermod -d /test test //更改用户test的主目录为/test

    4、限制用户只能访问/home/test,不能访问其他路径:

    修改 # /etc/vsftpd/vsftpd.conf 如下:

    chroot_list_enable=YES //限制访问自身目录

    # (default follows)

    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

    编辑 vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行

    改完配置文件,不要忘记重启vsFTPd服务器。

    # /etc/init.d/vsftpd restart

    5、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

    # usermod -s /usr/bin/passwd test //用户telnet后将直接进入改密界面

     

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

     vsftpd.conf

    chroot_list_file=/etc/vsftpd.chroot_list
     
    如果设置为
    chroot_local_user=YES
    chroot_list_enable=YES(这行可以没有, 也可以有)
    chroot_list_file=/etc/vsftpd.chroot_list
    那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即, 可以浏览其主目录的上级目录.
     
    如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置,然后在文件vsftpd.chroot_list中去掉或不添加该用户即可。
     
    也可以如下配置
    chroot_local_user=NO
    chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
    chroot_list_file=/etc/vsftpd.chroot_list
    然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list中即可(一行一个用户名,此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)

     

     

     

     

     

     

     

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

    详解Linux中搭建一个ftp服务器。

    ftp工作是会启动两个通道:
    控制通道 , 数据通道
    在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
    PORT模式:
    在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21)  发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。

    PASV模式:
    传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
    安装ftp
    #rpm -qa vsftpd 查看是否已经安装

    #yum install -y vsftpd

    #rpm -ql vsftpd  
    /etc/logrotate.d/vsftpd.            vsftpd的日志文件 
    /etc/pam.d/vsftpd                    PAM认证文件 
    /etc/rc.d/init.d/vsftpd              启动脚本 
    /etc/vsftpd                          vsftpd的配置文件存放的目录 
    /etc/vsftpd/ftpusers                禁止使用vsftpd的用户列表文件 
    /etc/vsftpd/user_list                禁止或允许使用vsftpd的用户列表文件 
    /etc/vsftpd/vsftpd.conf              主配置文件 
    /etc/vsftpd/vsftpd_conf_migrate.sh  vsftpd操作的一些变量和设置 
    /usr/sbin/vsftpd                    vsftpd的主程序 
    其他一些说明文档和手册文件略! 
    /var/ftp                            匿名用户主目录 
    /var/ftp/pub                        匿名用户的下载目录

    #service vsftpd start 
    #chkconfig --level vsftpd 
    #chkconfig --level 2345 vsftpd on

    2 匿名用户的登录名:ftp(anonymous)  密码空 ,登录的目录为/var/ftp
     用匿名用户登录的时候默认是只有下载的权限,没有上传,创建和删除的权限:

    #vim  /etc/vsftpd/vsftpd.conf  
    anon_upload_enable=YES      上传 
    anon_mkdir_write_enable=YES    创建 
    anon_other_write_enable=YES    删除 
    #service vsftpd restart

    为了安全应该禁止匿名用户的登录:
    123456 #vim  /etc/vsftpd/vsftpd.conf 
    anonymous_enable=NO 
    #anon_upload_enable=YES      上传 
    #anon_mkdir_write_enable=YES    创建 
    #anon_other_write_enable=YES    删除 
    #service vsftpd restart

    3 创建一个直接登录系统用户来登录ftp:
    #useradd -s /sbin/nologin viong 
    #passwd viong

    用户具有 上传 创建 下载 切换目录
    ------------------------------------------------------------------
    4 加强vsftp安全设置:
    限制系统用户锁定在家目录:
    #vim  /etc/vsftpd/vsftpd.conf 
    chroot_list_enable=YES 
    chroot_list_file=/etc/vsftpd/chroot_list  限制更多的系统用户,把需要限制的用户加入/etc/vsftpd/chroot_list中即可 
    #touch /etc/vsftpd/chroot_list 
    #cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 将本地用户都加入到chroot_list

    限制重要系统用户不能登录ftp:
    #cat /etc/vsftpd/ftpusers  默认已经添加了系统中一些比较重要的用户 
    #echo "viong" >>/etc/vsftpd/ftpusers  此时viong不能登录ftp

    利用ftp用户策略允许登录ftp的系统用户:
    /etc/vsftpd/user_list 只有在这个文件中的用户才能登录系统: 
    #vim /etc/vsftpd/vsftpd.conf 
    #在userlist_enable=YES 的后面添加 
    userlist_deny=NO 
    userlist_file=/etc/vsftpd/user_list

    设置登录ftp目标ip地址:用iptables设置

    ---------------------------------------  
    搭建支持SSL加密传输的vsftpd:
    #openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem    生成证书 
    #vim /etc/vsftpd/vsftpd.conf 
    ssl_enable=YES 
    allow_anon_ssl=NO 
    force_local_data_ssl=YES 
    force_local_logins_ssl=YES 
    ssl_tlsv1=YES 
    ssl_sslv2=YES 
    ssl_sslv3=YES 
    rsa_cert_file=/etc/vsftpd/vsftpd.pem

    下面是ssl参数一些定义,根据自己需求去修改:

    ssl_enable=yes/no            //是否启用 SSL,默认为no
    allow_anon_ssl=yes/no        //是否允许匿名用户使用SSL,默认为no
    rsa_cert_file=/path/to/file      //rsa证书的位置
    dsa_cert_file=/path/to/file      //dsa证书的位置
    force_local_logins_ssl=yes/no    //非匿名用户登陆时是否加密,默认为yes
    force_local_data_ssl=yes/no    //非匿名用户传输数据时是否加密,默认为yes
    force_anon_logins_ssl=yes/no    //匿名用户登录时是否加密,默认为no
    force_anon_data_ssl=yes/no    //匿名用户数据传输时是否加密,默认为no
    ssl_sslv2=yes/no              //是否激活sslv2加密,默认no
    ssl_sslv3=yes/no                //是否激活sslv3加密,默认no
    ssl_tlsv1=yes/no                //是否激活tls v1加密,默认yes
    ssl_ciphers=加密方法            //默认是DES-CBC3-SHA


    #service vsftpd restart

    用flashftp连接:
    连接类型为:FTP使用公开SSL(验证SSL)
    地址:192.168.137.130:21
    登录类型:普通
    用户:viong  
    密码:123

  • 相关阅读:
    Log4Qt 使用(一)
    “定义为指针,外部以数组形式引用”和“定义为数组,外部以指针形式引用”会发生什么?
    gcc总结【基本用法】【选项】【动静态库】(转)
    C++沉思录之三——设计容器类
    C++沉思录之二——虚函数使用的时机
    何时需要自定义复制构造函数?
    C++沉思录之一
    搜索百度云里面的内容技巧
    Qt 之容器内的控件全屏
    python的代码检查
  • 原文地址:https://www.cnblogs.com/hechunhua/p/6991319.html
Copyright © 2011-2022 走看看