Linux中搭建一个ftp服务器详解
来源: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服务器详解的更多相关文章
- 在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- linux中搭建公网ftp服务器
Linux搭建ftp服务器汇总整理 一.检查linux中是否已经安装vsftpd服务端软件 rpm -qa |grep vsftpd 二.卸载linux中的vsftpd服务端软件 rpm -e vsf ...
- Linux上构建一个RADIUS服务器详解
作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息.但是网络设备通常只支持有限的用户管理功能.学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个 ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- Linux中/proc目录下文件详解(转贴)
转载:http://www.sudu.cn/info/index.php?op=article&id=302529 Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...
- Linux搭建一个FTP服务器
1.安装vsftp 2.配置vsftpd.conf, vim /etc/vsftpd.conf 下面说说里面比较重要的选项 1 anonymous_enable=NO #不允许匿名用户 2 3 loc ...
- 文件服务器:FTP服务器详解
文件服务器:FTP服务器 数据传输原理 功能简介 文件的传输与管理 不同等级的用户身份:user.guest.anonymous 实体用户.权限较完整 匿名用户.下载资源的能力 命令记录与日志文件记录 ...
- linux中iptables配置文件及命令详解详解
iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...
随机推荐
- 高版本js实现live
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 乐观锁和悲观锁及CAS实现
乐观锁与悲观锁 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁.传统的关系型数据库里边就用到了很多这种锁机制, ...
- Educational Codeforces Round 26-D. Round Subset
题目大意:给你n个数字(小于1e18),从n个数中取k个数字相乘,使其后缀0最多,问你后缀0最多是多少. 知道得用三维的dp[ i ] [ j ] [ k ] 第一维表示用到第 i 个数为止,j 表 ...
- 008 Spark中standalone模式的HA(了解,知道怎么配置即可)
standalone也存在单节点问题,这里主要是配置两个master. 1.官网 2.具体的配置 3.配置方式一(不是太理想) 这种知识基于未来可以重启,但是不能在宕机的时候提供服务. 方式一:Sin ...
- Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)
requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...
- 011.Docker仓库管理
一 Docker仓库介绍 docker 仓库,即 registry,实现了镜像的管理.分发,同时还包括用户的认证.docker registry 仓库是一个无状态的.高可靠的服务器应用程序,用来存储d ...
- Linux上的压缩与归档
非常非常非常简要的描述而已. 压缩 压缩的简要原理是通过一些算法,拿CPU的计算时间去换磁盘上存储的空间.同时还可节省网络传输中的带宽. 对于文本文件的压缩效果比较好,对二进制程序.图片等文件的压缩效 ...
- NIO的通道和缓冲区
概述 通道和缓冲区是 NIO 中的核心对象,几乎在每一个 I/O 操作中都要使用它们. 通道是对原I/O包中的流的模拟.到任何目的地(或来自任何地方)的所有数据都必须通过一个Channel对象.一个B ...
- 关于H5在移动端架构的优化设计总结
各大互联网公司采取的策略 一.百度移动前端首页 1. 对于首屏的静态文件css/js,在上线前全部编译直出到HTML文件中:整个首页的渲染只需要一次请求: 2.使用缓存:把不变的js/css/html ...
- [ 转载 ]Java:成员变量,局部变量,静态变量的区别
精简后方便自己理解. 成员变量 我们研究一个事物: 属性:外在特征:如身高,体重 行为:能做什么:如说话,打球. 在Java语言中,最基本的单位是类(class),类就是用来体现事物的. 属性:类中的 ...