ftp搭建

==========ftp===========================
https://ke.qq.com/webcourse/index.html#cid=275195&term_id=100325482&taid=1955155012760315&vid=m14243r4at7

列出所有已安装的软件包 
命令:yum list installed

iptables -L     //查看防火墙状态
getenforce    //查看slind防火墙状态
ss -tnpl    //看端口
ps  -ef|grep ftp    //查看ftp是否开启
netstat -tnlp
yum -y install vsftpd    //安装插件 ftp客户端
service vsftpd start  或stop或status    //开启ftp
1. 永久性生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
2. 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
3.临时关闭Selinux
    setenforce 0    //关闭Selinux
    getenforce        //查看Selinux 状态Enforcing:开启的 Permissive:关闭的

匿名用户上传文件配置,其他基本不用动:
    anonymous_enable=YES    //允许匿名登录,匿名用户ftp 没有密码
    write_enable=YES
    anon_umask=022        #没有,需要手写
    anon_upload_enable=YES #允许匿名用户上传文件,上传权限
    anon_mkdir_write_enable=YES #允许匿名用户建立目录,可写权限
    anon_other_write_enable=YES #允许匿名用户更多操作 如删除文件、更名。需要手写上去

而如果userlist_deny=YES,则user_list文件中的用户将不允许登录FTP服务器
#userlist_enable=YES/NO


mkdir testdir
setfacl -m u:ftp:rwx testdir/    //给ftp用户设置读写权限
getfacl testdir/    //查看testdir的读写权限
登录用户访问配置
    local_enable=YES    //允许linux登录用户,默认是允许的
    write_enable=YES    //是否允许系统用户上传文件
    local_root=/ftproot    //非匿名用户登录所在目录,否则为家目录
    local_umask=022        //指定系统用户上传文件的默认权限
    chroot_local_user=YES    //打开注释,只能访问家目录。是全局属性
        
useradd -s /sbin/nologin ftpuser    //创建用户
echo "123456" |passwd --stdin ftpuser    //加密码

user_list中的本地用户可以访问ftp,而其他本地用户不能访问ftp
    userlist_enable=YES
    userlist_deny=NO
    userlist_file=/etc/vsftpd/user_list
user_list中指定的本地用户不能访问ftp,而其他本地用户可以访问ftp
    userlist_enable=YES
    userlist_deny=YES
    userlist_file=/etc/vsftpd/user_list
chroot_list中指定的用户 只能访问家目录,其他用户可以访问其他目录。
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
指定pam配置文件,配置虚拟用户访问ftp
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES
    guest_username=vuser
    pam_service_name=vsftpd.db
    user_config_dir=/etc/vsftpd/vusers.d/
    在/etc/vsftpd/vusers.d/目录下新建与登录用户名相同的文件 
        如zhangsan
            anon_upload_enable=YES    //允许上传
            anon_mkdir_write_enable=YES    //允许创建目录
            anon_other_write_enable=YES    //允许删除目录
            
==========ftp end===========================


--------------配置虚拟用户访问FTP,亲测有效:-------------------------
CentOS release 6.4 (Final)
vsftpd 2.2.2
1.虚拟用户都需要使用一个系统本地用户 
id ftpuser      //查看是否存在ftpuser用户
useradd -s /sbin/nologin ftpuser
echo "ftpuser" |passwd --stdin ftpuser    //加密码
chmod a-w /home/ftpuser
mkdir /home/ftpuser/pub
chmod 777 /home/ftpuser/pub/

2.vsftpd的安全配置
    # vim /etc/vsftpd/vuser.txt
    test        //登录用户
    123456        //登录密码
    
生成db文件
    # db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
编辑vsftpd的PAM认证文件:vsftpd文件最上面增加两行
    # vim /etc/pam.d/vsftpd
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

3.配置文件
    # vim /etc/vsftpd/vsftpd.conf

    #禁止匿名用户
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES

    #不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录
    chroot_local_user=YES
    chroot_list_enable=NO

    #启动log
    xferlog_enable=YES
    xferlog_std_format=YES
    xferlog_file=/etc/vsftpd/vsftpd.log

    #开启虚拟用户
    guest_enable=YES
    #FTP虚拟用户对应的系统用户
    guest_username=vsftpd
    #PAM认证文件/etc/pam.d/vsftpd
    pam_service_name=vsftpd

    virtual_use_local_privs=YES
    
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf |grep ^[^#]
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_file=/etc/vsftpd/vsftpd.log
    xferlog_std_format=YES
    chroot_local_user=YES
    chroot_list_enable=NO
    chroot_list_file=/etc/vsftpd/chroot_list
    listen=YES
    guest_enable=YES
    guest_username=ftpuser
    virtual_use_local_privs=YES
    pam_service_name=vsftpd
    listen_ipv6=NO
    #local_root=/home/ftpuser/pub                #配置到test文件中也行
    #user_config_dir=/etc/vsftpd/vuser_conf        #这个配置是有效的,增加如下test文件。不配置也行
test文件名跟vuser.txt中登录用户名一致:
[root@localhost ~]# cat /etc/vsftpd/vuser_conf/test 
    local_root=/home/ftpuser/pub
    anonymous_enable=NO
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=20
    chroot_list_enable=YES

4)启动:最后让vsftpd加载指定的配置文件来启动: 
# vsftpd /etc/vsftpd/vsftpd.conf
5) 访问:ftp://192.168.1.253     
-------------配置虚拟用户访问FTP,亲测有效  end-----------------
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 
vsftpd 3.0.2
配置同上。但是会报错如下解决:
报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    因为:/home/ftpuser/pub 这个文件夹 对于ftpuser这个用户不能有写的权限,设置为755即可
    可以使用下面命令修改权限:
    sudo chown -R root:root /home/ftpuser/pub
    将/home/ftpuser/pub目录包含所有的子目录和文件,所有者改变为root,所属组改变为root,-R意思是循环遍历
登录ftp后 没有写的权限:解决如下:
    mkdir /home/ftpuser/pub/ftpfiles    //新建一个文件夹
    chown -R ftpuser:ftpuser /home/ftpuser/pub/ftpfiles        //所有者改为ftpuser
    

### 如何搭建 FTP 服务器 #### Windows 平台下的 FTP 服务器搭建 在 Windows 系统中,可以通过内置的 IIS(Internet Information Services)服务来快速搭建 FTP 服务器。以下是具体操作: 1. **启用 IIS 和 FTP 功能** 需要先确保系统的 IIS 组件已启用,并且包含了 FTP 服务功能。这一步可通过控制面板中的“程序和功能”->“启用或关闭 Windows 功能”完成[^2]。 2. **创建 FTP 站点** 打开 IIS 管理器后,右键单击左侧导航栏中的站点列表区域,选择新建 FTP 站点。设置好名称以及物理路径位置,这些配置决定了用户能够访问哪些目录文件[^2]。 3. **配置用户权限** 创建完成后,在 IIS 中选中刚刚建立好的 FTP 站点节点,找到并双击“FTP 授权规则”。在这里可以根据实际需求添加允许连接此 FTP 的账户及其对应的读写权限等细节设定[^2]。 4. **测试连接** 使用任意一款标准 FTP 客户端软件尝试登录刚建好的服务器实例,验证整个流程是否正常工作无误。 #### Linux 平台下 VSFTPD 的安装与配置 对于基于 Unix 或类 Unix 操作系统的环境来说,则推荐使用开源项目 vsftpd 来部署 FTP 服务。 1. **安装 vsftpd 软件包** 对于大多数主流发行版而言,默认仓库里都提供了可以直接使用的二进制版本。例如 Ubuntu/Debian 用户只需运行 `sudo apt-get install vsftpd` 命令即可完成初始安裝过程[^3]。 2. **修改默认配置文件 /etc/vsftpd.conf** 编辑主要参数项如监听地址、匿名访问开关状态(anon_upload_enable=YES|NO),本地用户的存取模式(local_umask=022),以及其他高级选项等等[^3]。 3. **重启服务生效更改** 修改完毕保存退出后再执行 systemctl restart vsftpd.service 让新的调整立即起作用[^3]。 4. **防火墙开放必要端口** 如果存在活动状态的安全防护机制比如 iptables 或 ufw ,记得相应放开 ftp 默认使用的 tcp port 21 及数据通道可能涉及其他动态范围内的额外端口号。 ```bash # 示例命令用于开启 UFW 下针对 FTP 流量的支持 sudo ufw allow 20/tcp sudo ufw allow 21/tcp ``` 以上就是在不同操作系统平台上分别构建个人专属 FTP 文件共享服务平台的方法概述[^1][^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值