`
maosuhan
  • 浏览: 112361 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

vsftpd部署

阅读更多

首先扯一下ftp的概念:

  FTP服务在对外提供服务时需要维护两个连接:
(1)一个是控制连接,监听TCP 21号端口,用来传输控制命令;
(2)另一个是数据连接,(在主动传输方式下)监听TCP 20端口,用来传输数据。

 

      使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当 授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要 求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

  匿名FTP 是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册 用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

      当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。

      即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个 公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。

 

 local_umask=022
设置创建文件权限的反掩码,如此处为022,则新建目录的权限为666-022=644
(rw-r--r--);新建文件的权限为777-022=755(drwxr-xr-x

 

重启vsftpd, /etc/init.d/vsftpd restart

 

创建匿名的ftp服务器

1、首先,你要确定你的给匿名用户使用的目录是什么,你可以修改ftp用户的主目录为/var/ftp/public作为匿名用户的目录。

2、创建一个用户,叫做ftpanon。为什么要设这个账户呢,因为匿名的话,客户端是用的anonymous账号登录的,但是用户列表中并没有叫anonymous的,服务器会把anonymous映射给ftpanon(至于怎么映射的稍后再说)。凡是anonymous的身份都会映射给ftpanon。这样用户只要是上传了文件(如果可以匿名上传的话,会将上传文件的属主变为ftpanon)

3、运行 chown root:root /var/ftp   这个不知道为什么

4、修改 /etc/vsftpd/vsftpd.conf

 


anonymous_enable=YES
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
chown_uploads=YES
chown_username=ftp anon
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

然后重启ftp服务就可以了。

直接在浏览器里写   ftp://maosuhan.westhost.cn,就可以直接跳到/var/ftp/public文件夹中

你也可以这样,新建一个名为html的用户,将其主目录设为/var/www/html。设置密码为1234,然后就用这个账号登陆,就不要改配置文件了。

 

 

客户端ftp

用flashfxp

 

 

关于曾经的一个网站的经验

我想把我本地的网站和服务器上的空间挂上勾,用他自定义的文件管理器巨挫无比,于是下了一个ubuntu下的ftp客户端,crossftp。原来一直用的是ftpanon进行登录,是vstfpd的chownuser,其实我也不知道这个代表什么。我新建了一个用户叫html,设其主目录为/var/www/html,这样用html连接ftp就可以自动上传到网站空间里了。

 

 

ubuntu10。04下搭建vsftpd实例

首先安装sudo apt-get install vsftpf,安装完后系统会生成一个ftp的帐号和group

接着sudo gedit /etc/vsftpd.conf

你可以根据你的需求设置。因为我在机房,要当这个机房的服务器,所以将匿名设为可用。将里面的anonymous_enable=YES打开,并且设置成只是可读。

这里如果你打开ftp://localhost的话会自动跳到ftp这个用户的帐户文件里(/srv/ftp),刚开始是空的。

如果你不想用这个文件的话,也可以换。我首先创了一个/var/ftp/public,将其属主设为root,群为ftp,sudo chown -R root:ftp /var/ftp/public。再sudo chmod 755 /vat/ftp/public -R。好像这里改成其他模式会错误,貌似vsftpd不允许你将ftp的根目录的权限设成太高。再sudo usermod -d /var/ftp/public ftp将ftp的主目录改道public目录。

然后就可以访问了。

 

 

关于挂载

我的电脑是杀双系统,所以有些文件在ntfs的d盘e盘那里,我又不想拷贝。于是尝试用ln -s的方法,但是没用,说是什么550 Failed to change directory.去网上看也说是不行的。后来有人说用mount的方法,于是我试了一下,发现也没用,这是为什么呢?原来每次我让我的硬盘挂载的时候都是手动在Places菜单点击盘符才挂载,这样子的话被挂载的文件里的属主就是当前用户,且权限是700。当然ftp访问不到了,权限不够嘛!而且那个权限你又改不了,因为那个是ntfs的,跟ext4还不一样,反正一旦挂载了你就改不了权限了,貌似穷途末路了。后来我摸索出了一套办法,首先

sudo gedit /etc/fstab 这里是你的系统加载时自动会mount的设备,看看有没有你的ntfs的硬盘,如果有看看umask是否为0222或者是数值更小,如果是的话,就对了。我的fstab默认只有一个主分区ext4和一个swap,所以每次要手动点盘符才能挂载。

 

现在是关键的几步了

sudo gedit /etc/rc2.d/S66mount

输入

 

#! /bin/sh
mount "/dev/sda1"   "/media/9886F41286F3EF1E/"
mount "/dev/sda2"  "/media/302AE2E12AE2A2D8/"
mount "/dev/sda3"  "/media/EC66ECE366ECB00E/"
mount --bind  "/media/302AE2E12AE2A2D8/my music/" "/var/ftp/public/music"
mount --bind  "/media/302AE2E12AE2A2D8/my picture/" "/var/ftp/public/picture"
mount --bind  "/media/302AE2E12AE2A2D8/my video/" "/var/ftp/public/video"
mount --bind  "/media/302AE2E12AE2A2D8/movie/" "/var/ftp/public/movie"
mount --bind  "/media/EC66ECE366ECB00E/movie/" "/var/ftp/public/movie2"
mount --bind  "/media/EC66ECE366ECB00E/software/" "/var/ftp/public/software"

 

当然这里你需要改成你的系统的情况。

你要确保你的ftp目录下存在那些文件夹如music、picture、movie2等

 

保存。这样的话你每次启动都会自动执行这一段脚本,不需要你手动挂载了,很方便的。而且那些挂载的文件的属主应该是root了,并且权限是777。ftp访问也一切正常。

 

关于权限限制

如果你默认用一些系统的用户来登录ftp的话,它可以在系统间随意游荡。如果你想限制其用户只能在自己的主目录下活动可以设定chroot,具体更改如下。

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

 

再sudo gedit /etc/vsftpd.chroot_list

如果你想为哪些用户设置例外,也就是允许他们可以随意游荡,那么就把他们的名字写下,一行写一个。我这里面是空的,也就是说没有例外。

 

 

如果你想指定说哪些用户可以ftp登录哪些用户不可以,你可以设置

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list

 

再sudo gedit /etc/vsftpd.user_list

我写的是

maosuhan

ftp

只有匿名ftp用户和当前用户可以登录ftp

 

如果你想设置哪些ip不能访问哪些能访问或者是哪些网段可访问哪些不可,这一这么做。

 

首先

sudo gedit /etc/hosts.allow

添加这样一些信息

vsftpd:172.25.72.251
vsftpd:172.25.72.0/24:DENY

设置除了172.25.72.251外所有在172.25.72.0/24网段上的人都不可以访问

 

 

分享到:
评论

相关推荐

    vsftpd部署方式,按照这个配置

    vsftpd部署方式,按照这个配置

    《Linux运维总结:vsftpd一键部署工具》

    vsftpd部署 在Linux系统中,`vsftpd`的安装通常通过包管理器进行,例如在Ubuntu/Debian上使用`apt-get`,在CentOS/RHEL上使用`yum`或`dnf`。一键部署工具则是为了简化这个过程,通过执行一个脚本,自动完成下载、...

    《Linux运维总结:云主机vsftpd一键部署工具》

    原文链接:...1、vsftpd一键部署工具可以实现快速部署,支持ftp用户、密码、端口、家目录等自定义设置。 2、可以一键启动、停止、检查、移除等功能。 3、适用于腾讯云、华为云、阿里云等云平台。

    centos7部署vsftpd.docx

    Centos7 部署 VSFTPD VSFTPD 是一个基于 GPL 许可的 FTP 服务器实现,广泛应用于 Linux 操作系统中。CentOS 7 作为一个流行的 Linux 发行版,也支持 VSFTPD 的安装和配置。下面将详细介绍如何在 CentOS 7 中部署 ...

    Linux之vsftpd的部署

    vsftpd的安装 详细过程参考Linux之软件管理中的”搭建共享软件仓库”一节。 在含有软件资源的主机中安装共享软件ftp 命令: yum install vsftpd -y systemctl start vsftpd systemctl enable vsftpd 关闭selinux和...

    docker-vsftpd:在Docker中运行vsftpd

    Vsftpd Docker容器 vsftpd: : 码头工人: : 如果需要安全的FTP服务器来支持多种身份验证类型,例如htpasswd,BerkeleyDB或LDAP,则可以使用此存储库来构建满足您需求的容器。 用法: 建立容器 docker build -...

    vsftpd linux部署ftp

    linunx部署ftp,以及mysql部署应用都会用到这个包,非常的实用

    linux离线安装vsftpd包.zip

    在没有网络连接的情况下,通过离线安装包进行VSFTPD的安装是一个常见需求,特别是对于那些需要在隔离环境或服务器集群中部署FTP服务的管理员而言。以下是一个详细的离线安装步骤,基于提供的描述进行展开。 首先,...

    企业Linux下vsFTPD实战方案

    VsFTPd支持虚拟用户、SSL/TLS加密传输,以及各种访问控制策略,使其成为企业级Linux服务器部署FTP服务的首选。 二、企业Linux下vsFTPD方案 在企业环境中,为了确保数据安全和稳定服务,采用VsFTPd时应考虑以下几个...

    vsftpd UOS环境安装及部署

    生成数据库脚本

    vsftpd-3.0.5.tar.gz

    【标题】"vsftpd-3.0.5.tar.gz" 指的是一个...总的来说,VSFTPD是一个强大且安全的FTP解决方案,适用于各种Linux环境,无论是个人项目还是企业级部署。了解并掌握其配置和管理对于任何Linux系统管理员都是必要的技能。

    vsftpd安装包

    FTP服务器是实现FTP服务的软件,负责处理客户端的FTP请求,而VSFTPD(Very Secure FTP Daemon)就是其中的一款著名开源FTP服务器,特别强调安全性,适合在Linux系统上部署。 【VSFTPD的安装】 在Linux系统中,安装...

    CentOS 7中vsftpd服务安全部署(匿名用户、本地用户、虚拟用户管理).docx

    在 CentOS 7 中,部署 vsftpd 服务以允许本地用户登录通常涉及以下步骤: 1. 创建系统用户:通过 `useradd` 命令创建新的用户账户,如 `useradd myuser`。 2. 设置权限:确保用户家目录具有适当的权限,通常设置为 ...

    vsftpd-3.0.3.tar.gz

    综上,vsftpd-3.0.3.tar.gz是一个用于部署和自定义FTP服务的重要资源,它不仅包含源代码,还提供了一种验证文件完整性的机制,确保用户能够安全地构建和运行自己的FTP服务器。在Linux环境中,熟练掌握vsftpd的配置和...

    vsftpd.el6.rar

    在 CentOS 6 中安装 vsftpd 可以帮助用户通过 FTP 协议进行文件传输,对于系统管理、网站部署以及数据共享等方面都十分有用。 首先,我们来详细了解一下 vsftpd。VSFTPD 是 "Very Secure FTP Daemon" 的缩写,由 ...

    linux下搭建ftp服务(vsftpd).docx

    ### Linux下搭建FTP服务(vsftpd)详细教程 #### 一、前言 FTP (File Transfer Protocol) 是一种用于在网络上进行文件传输的标准协议。它主要用于实现计算机之间的文件传输功能。在Linux系统中,最常用的FTP服务器...

    vsftpd FTP Server lsc远程拒绝服务漏洞

    **vsftpd**(Very Secure FTP Daemon)是一款专为UNIX类平台设计的安全FTP服务器软件,因其高度的安全性和稳定性而被广泛部署于各类网络环境中。然而,在vsftpd的某些版本中,存在一处与`ls.c`文件相关的远程拒绝...

    vsftpd-3.0.2 rpm安装包 32&64;位,适用于redhat、Centos

    VSFTPD(Very Secure FTP Daemon)是一款非常安全的...总之,VSFTPD是Linux系统中常用的FTP服务器软件,其RPM安装包为Red Hat和CentOS提供了便捷的部署方式。理解如何安装、配置和管理VSFTPD是IT管理员必备的技能之一。

    vsftpd3.0.5-tar.gz版本源码,在ubuntu20.4可以编译成功

    【FTP服务器程序——vsftpd 3.0.5源码在...请注意,每个服务器的配置可能有所不同,因此在实际部署时应根据安全策略和业务需求调整配置文件。在日常维护中,定期更新软件,监控日志,以及进行性能优化都是必不可少的。

    vsftpd-3.0源码

    【vsftpd-3.0源码】是一个用于Linux系统的FTP服务器软件的源代码包,其核心...通过深入学习和理解`vsftpd-3.0`源码,开发者不仅能搭建和管理安全的FTP服务器,还可以为系统集成、自动化部署和定制化开发打下坚实基础。

Global site tag (gtag.js) - Google Analytics