在linux服务器上搭建相对安全的FTP服务器
一、如何在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文件夹已经存在,但要确认已存在的文件夹是否仅是个链接。
- mkdir -p /etc/ssl/certs
- chmod 700 /etc/ssl/certs
3、执行生成证书的命令:
- 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的配置文件在最后添加如下信息
- # Turn on SSL
- ssl_enable=YES
- # Allow anonymous users to use secured SSL connections
- allow_anon_ssl=YES
- # All non-anonymous logins are forced to use a secure SSL connection in order to
- # send and receive data on data connections.
- force_local_data_ssl=YES
- force_anon_data_ssl=YES
- # All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
- force_local_logins_ssl=YES
- force_anon_logins_ssl=YES
- # Permit TLS v1 protocol connections. TLS v1 connections are preferred
- ssl_tlsv1=YES
- # Permit SSL v2 protocol connections. TLS v1 connections are preferred
- ssl_sslv2=NO
- # permit SSL v3 protocol connections. TLS v1 connections are preferred
- ssl_sslv3=NO
- # Disable SSL session reuse (required by WinSCP)
- require_ssl_reuse=NO
- # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
- ssl_ciphers=HIGH
- # This option specifies the location of the RSA certificate to use for SSL
- # encrypted connections.
- 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服务器的更多相关文章
- FTP服务器上传工具,FTP服务器上传工具下载!
IIS7服务器管理工具能够作为FTP的客户端,进行FTP的命令操作,可在客户端,下载,安装FTP软件! 同时,它也可以作为VNC的客户端,进行VNC的命令操作!它能够批量连接Windows和Linux ...
- asp.net 服务器 上传文件到 FTP服务器
private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...
- 【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?
写在前面 在[冰河技术]微信公众号的[分布式存储]专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境.但是,之前的环境都是基于CentOS 6.8服务器进行搭建的.很多小伙伴 ...
- 在CentOS 8服务器上搭建FastDFS环境
什么是FastDFS? 这里,我就摘录下百度百科上对于FastDFS的描述. FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下 ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux CentOS 6.5 下 vsftpd ftp服务器搭建
Linux CentOS 6.5 下 vsftpd ftp服务器搭建 by:授客 QQ:1033553122 操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.ce ...
- 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务
本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...
- linux系统下搭建自己的web服务器
之前在windows 2008 server上搭建了一个用于测试的web服务器,但是在打开网站的时候特别的慢,尤其是图片的加载都会失败,当时以为是路径的问题,但是在服务器上自己打开都特别慢,自己实在找 ...
- 在阿里云上搭建自己的git服务器
这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器. 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: ...
随机推荐
- Siki_Unity_1-2_Unity5.2入门课程_进入Unity开发的奇幻世界_Roll A Ball
1-2 Unity5.2入门课程 进入Unity开发的奇幻世界 任务1:Roll A Ball项目简介 Unity官网的tutorial入门项目 方向键控制小球在平台上滚动,碰撞方块得分,消掉所有方块 ...
- Ubuntu14.04 panic --not syncing: Attempt to kill init 解决方法
Ubuntu14.04 panic --not syncing: Attempt to kill init 解决方法 工作电脑装了一个虚拟机玩玩,胡乱下载了一些软件,apt-get了不少操作,后来重启 ...
- fastCMS八大核心对象
fastCMS内置system对象,该对象包含八大核心对象,应用于不同的操作场景,分别是: 1.system.string 对象(处理字符类操作) 2.system.number 对象(处理数字类操作 ...
- Struts2(九.利用layer组件实现图片显示功能)
1.layer前端组件介绍 layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验. http://sentsin. ...
- 树莓派怎么连接无线网wifi?
没有显示器的同学,想要连接无线网,一定非常苦恼,前面教会了大家远程登录图形界面,下面我将教会大家:在没有图形界面的情况下,怎么连接树莓派WiFi.同样还是利用putty远程访问软件登录,但这次不需要登 ...
- js for循环实例
1.求1-100的寄数和? //2.奇数求和 var ppt=0 for(var i=1;i<=100;i+=2){ ppt+=i } 2.求1-100的偶数和 var num=0 for(va ...
- lintcode 二叉树后序遍历
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * Tr ...
- 【第二章】Shell 变量
一.什么是变量? 变量就是一个固定的字符串(也可以是字符.数字的组合)代替更多.更复杂的内容,该内容可能是变量.路径.字符串等其他内容. 变量就是程序中保存用户数据的一块内存空间,而变量名就是这块内存 ...
- 计蒜客蓝桥杯模拟赛 后缀字符串:STL_map+贪心
问题描述 一天蒜头君得到 n 个字符串 si,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来 ...
- solidity 智能合约操作
合约编译 #!/usr/bin/env python # coding: utf8 import json import os # Solc Compiler from functools impor ...