来源:Linux社区  作者:luzhi1024

详解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

ftp虚拟用户请看:http://www.linuxidc.com/Linux/2015-06/118443.htm

玩转vsftpd服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

CentOS 7安装配置FTP服务器  http://www.linuxidc.com/Linux/2014-11/109233.htm

Ubuntu实用简单的FTP架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设FTP服务器和Apache服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux系统vsftpd源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118442.htm

Linux中搭建一个ftp服务器详解相关推荐

  1. 在Linux中搭建一个FTP服务器

    在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...

  2. php开发ftp服务器搭建教程,在Linux中搭建一个FTP服务器

    在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...

  3. 【Tools】Win10系统搭建匿名FTP服务器详解

    00. 目录 文章目录 00. 目录 01. FTP服务器概述 02. FTP服务器要求 03. Win10系统配置FTP服务 04. Win10系统配置IIS服务 05. Win10系统防火墙设置 ...

  4. Linux上构建一个RADIUS服务器详解

    作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息.但是网络设备通常只支持有限的用户管理功能.学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个 ...

  5. ubuntu18系统搭建ftp服务器详解

    当我们有有的自己的服务器就可以搭建一个ftp服务器,可以自己放进去一些东西,这样以后下载的话会很方便,而且服务器端速度很快(所以快慢基本就看自己下载段的速度了. 1. 更新一些服务器上的文件文件源 s ...

  6. CentOS7 安装配置FTP服务器详解

    CentOS7 安装配置FTP服务器详解 1.FTP简介 ftp(File Transfer Protocol文件传输协议)是基于TCP/IP 协议的应用层协议,用于文件的传输,包括ftp服务器(或服 ...

  7. linux中iptables配置文件及命令详解详解

    linux中iptables配置文件及命令详解详解 2018年05月04日 14:23:41 hxpjava1 阅读数 956 linux中iptables配置文件及命令详解详解 iptables配置 ...

  8. linux基础配置脚本,Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...

  9. linux PS -df,linux中ps跟df命令详解

    linux中ps和df命令详解 linux下PS命令 linux上进程有5种状态: 1.运行(正在运行或在运行队列中等待) 2.中断(休眠中,受阻,在等待某个条件的形成或接受到信号) 3.不可中断(收 ...

最新文章

  1. java资料——线性表(转)
  2. python【蓝桥杯vip练习题库】ADV-147学霸的迷宫(广搜 bfs经典问题)
  3. Matlab 整数线性规划问题模型代码
  4. jquery正则匹配URL地址
  5. Docker 三架马车
  6. 后端程序员必备:书写高质量SQL的30条建议
  7. Android面试题详细整理系列(一)
  8. Qt Creator设置CMake
  9. linux目录所属用户和组,管理用户所属的用户组《 Linux 文件与目录权限 》
  10. 从需求来看《IT人员应聘建议》
  11. python中没有switch-case_Python为什么没有switch/case语句?
  12. 如何将本地代码推送至远程仓库_命令简化版本
  13. Codewars-(RegEx去除html标签)
  14. CSS3j背景渐变,字体颜色渐变,以及兼容IE写法
  15. clion开发php,如何在 Mac 上用 Clion 调试 php7 源码
  16. 5.Chrome开发者工具不完全指南:(三、性能篇)
  17. JavaScript数组-多维数组的困惑
  18. 画三线格子的高效方法,不用再一个格子一个格子的选中啦
  19. exoplay切换全屏_基于exoPlayer 拓展自定义播放器
  20. 三维地图前端js api对比分析

热门文章

  1. python linux服务_Python脚本作为Linux服务/守护程序
  2. 用Fortify SCA分析代码漏洞
  3. 介绍了Oracle数据库锁的种类及研究
  4. idea xml文件去掉背景黄色
  5. 记录一次redis事故
  6. OS X进程管理之launchctl
  7. 1059. Prime Factors (25)
  8. Longest Substring with At Most Two Distinct
  9. 放假了,暂告一段落,迎接研究生
  10. 多文档版的的正则表达式工具