一、如何在Linux服务器上安装vsftp不在多说,直接介绍如何进行安全性配置;

二、编辑vsftp.conf文件

关键配置项如下:

anonymous_enable=NO /禁止匿名用户登录

local_enable=YES  /允许本地用户登录

write_enable=YES  /允许登陆后写

local_umask=022

xferlog_enable=YES  /记录日志

xferlog_file=/var/log/xfer log  /日志文件

userlist_enable=YES   /限制userlist里面的本地用户不能访问,userlist里面可以把root等禁止ftp登录的本地账号写进去

所有配置项的注释可参考:

http://blog.csdn.net/chenhongqian/article/details/50462382

三、创建FTP账号

# useradd –d  /home/myftp  myftp

# passwd myftp

# usermod -s /sbin/nologin myftp //限定用户myftp不能本地登录

 

四、创建一个文件夹(scripts)只能下载,不能上传

# mkdir scripts /home/myftp

#chmod 555 scripts

 

五、创建一个文件夹(results)只能上传,不能下载和删除

这个有点难度,因为用户不能对自己上传的文件进行下载和删除,需要使用特殊的方法。

# mkdir results /home/myftp

#chmod 755 results

#chattr +i /home/results

六、配置SSL加密

1、通过rpm -qa | openssl  查看是否已安装openssl,未安装请先安装

2、新建目录,为了放置证书,有可能certs文件夹已经存在,但要确认已存在的文件夹是否仅是个链接。

  1. mkdir -p /etc/ssl/certs
  2. chmod 700 /etc/ssl/certs

3、执行生成证书的命令:

  1. openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem

4、上述证书生成过程中需要填写信息,按提示添加国家、省份、邮箱等即可,可以随便填,信息后续用不到;

5、然后进到/etc/ssl/certs目录下看证书有没有生成

6、然后我们修改vsftpd的配置文件在最后添加如下信息

  1. # Turn on SSL
  2. ssl_enable=YES
  3. # Allow anonymous users to use secured SSL connections
  4. allow_anon_ssl=YES
  5. # All non-anonymous logins are forced to use a secure SSL connection in order to
  6. # send and receive data on data connections.
  7. force_local_data_ssl=YES
  8. force_anon_data_ssl=YES
  9. # All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
  10. force_local_logins_ssl=YES
  11. force_anon_logins_ssl=YES
  12. # Permit TLS v1 protocol connections. TLS v1 connections are preferred
  13. ssl_tlsv1=YES
  14. # Permit SSL v2 protocol connections. TLS v1 connections are preferred
  15. ssl_sslv2=NO
  16. # permit SSL v3 protocol connections. TLS v1 connections are preferred
  17. ssl_sslv3=NO
  18. # Disable SSL session reuse (required by WinSCP)
  19. require_ssl_reuse=NO
  20. # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
  21. ssl_ciphers=HIGH
  22. # This option specifies the location of the RSA certificate to use for SSL
  23. # encrypted connections.
  24. rsa_cert_file=/etc/ssl/cert/vsftpd.pem

7、配置修改完成后,重新vsftpd服务。

备注:如服务启动失败,请确认证书存储的位置与下面填写的是否符合   sa_cert_file=/etc/ssl/cert/vsftpd.pem 

8、登陆查看是否已加密

状态:
正在连接 172.20.100.XX:21...
状态: 连接建立,等待欢迎消息...
状态: 初始化 TLS 中...
状态: 正在验证证书...
状态: TLS 连接已建立。
状态: 已登录
状态: 读取目录列表...

备注:需要使用工具链接,如FileZilla等,直接通过浏览器可能无法正常登陆。

在linux服务器上搭建相对安全的FTP服务器的更多相关文章

  1. FTP服务器上传工具,FTP服务器上传工具下载!

    IIS7服务器管理工具能够作为FTP的客户端,进行FTP的命令操作,可在客户端,下载,安装FTP软件! 同时,它也可以作为VNC的客户端,进行VNC的命令操作!它能够批量连接Windows和Linux ...

  2. asp.net 服务器 上传文件到 FTP服务器

    private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...

  3. 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?

    写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...

  4. 在CentOS 8服务器上搭建FastDFS环境

    什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...

  5. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  6. Linux CentOS 6.5 下 vsftpd ftp服务器搭建

    Linux CentOS 6.5 下 vsftpd ftp服务器搭建 by:授客 QQ:1033553122   操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.ce ...

  7. 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务

    本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...

  8. linux系统下搭建自己的web服务器

    之前在windows 2008 server上搭建了一个用于测试的web服务器,但是在打开网站的时候特别的慢,尤其是图片的加载都会失败,当时以为是路径的问题,但是在服务器上自己打开都特别慢,自己实在找 ...

  9. 在阿里云上搭建自己的git服务器

    这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器. 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: ...

随机推荐

  1. 在Linux CentOS7系统中搭建LNMP

    LNMP就是Linux+Nginx+MySQL+PHP,既然是在Linux CentOS7那么Linux就是已经安装好了.所以接下百度一下接下来的教程,整理测试如下: 教程是centos6.2的有点老 ...

  2. Jmeter 接口自动化执行报错 无法找到类或者类的方法

    写好的自动化测试脚本在PC以及mac book 都执行正确,但是放到linux集成环境时就一直报错,报错类似如下 [jmeter] // Debug: eval: nameSpace = NameSp ...

  3. <cfenv>(fenv.h) _c++11

    头文件 <cfenv>(fenv.h) c++11 浮点环境 这个头文件声明了一系列的函数和宏去访问浮点环境,以及特殊的类型. 浮点环境维护一系列的状态标志(status flags)和具 ...

  4. Java初始化方法:类、容器

    Java初始化方法:类.容器   初始化类(非final): Struts2的DefaultActionMapper类中:      public DefaultActionMapper() {   ...

  5. mybatis interceptor 处理查询参数及查询结果

    拦截器:拦截update,query方法,处理查询参数及返回结果. /** * Created by windwant on 2017/1/12. */ @Intercepts({ @Signatur ...

  6. 【WXS全局对象】consloe

    consloe对象 方法: 原型:console.log( [String] ) 说明:用于在 console 窗口输出信息,一般用于程序调试使用示例: console.log支持arguments类 ...

  7. Python基础 之 tuple类-元组 和 dict类-字典

    tuple 元组 一.tuple 类的基本属性 1.元组,有序:元素不可被修改,不能被增加或者删除tuple类 tu = (111,22,33,44) 一般写元组的时候,推荐在最后加入,和类方法进行区 ...

  8. kosaraju求强连通分量

    在了解kosaraju算法之前我们先了解一下什么是强连通分量,在有向图中如果两个定点vi,ui存在一条路劲从vi到达ui且也存在一条路劲从ui到达vi那么由ui和vi这两个点构成的图成为强连通图,简洁 ...

  9. Python中的print

    Python 3.X的print 在Python 3.X中,print是一个内置函数,完整的声明形式如下: print([object, ...][, sep=' '][, end='\n'][, f ...

  10. Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署

    配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...