ftp--vsftp\pureftpd
FTP是File Transfer Protocol(文件传输协议),用于Internet上的控制文件的双向传输。
现今常用在一个局域网内,如学校、公司等一个指定范围的区域。(因为太过于简单和不安全) //FTP的主要流程:
就是用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
参考资料: http://www.linuxidc.com/Linux/2013-05/84984.htm FTP服务器的登录方式: 1. 匿名登录: anoymous
2. 系统用户登录
3. 虚拟用户登录 传输方式: 1.主动(PORT)方式: FTP服务器开放一个端口向客户端发出连接通知,服务器接收连接,建立一条命令链路。
(客户端给服务器端的21端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会通 过另外一个数据端口把东西传给客户端) 2.被动(PASV)方式: 客户端连接FTP服务器,服务器接收连接,建立一条命令链路。
(客户端给服务器端的21端口发命令说,我要 下载什么什么,服务器端知道后,就打开一个端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧,于是客户端就从那个端口进去拿文件了)
端口开放:
在主动模式中,FTP的两个端口是相对固定的,如果命令端口是x的话,那数据端口就是x-1,也就是说默认情况下,命令端口是21,数据端口就 是20;你把命令端口改成了123,
那么数据端口就是122。这样使用防火墙就很方便了,只要开通这两个端口就可以了。 在被动模式中就麻烦了些,默认情况下命令端口是21,但是数据端口是随机的。
一、安装pureftpd
//这个软件比vsftp配置起来更加灵活和安全。 /*官网是 http://www.pureftpd.org/project/pure-ftpd*/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.32.tar.bz2
[root@localhost src]# tar jxf pure-ftpd-1.0..tar.bz2
[root@localhost src]# cd pure-ftpd-1.0.
[root@localhost pure-ftpd-1.0.]# ./configure \
--prefix=/usr/local/pureftpd \
--without-inetd \
--with-altlog \
--with-puredb \
--with-throttling \
--with-peruserlimits \
--with-tls
[root@localhost pure-ftpd-1.0.]# make
[root@localhost pure-ftpd-1.0.]# make install
[root@localhost pure-ftpd-1.0.]# cd configuration-file
[root@localhost pure-ftpd-1.0.]# mkdir -p /usr/local/pureftpd/etc/
[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
[root@localhost configuration-file]# chmod /usr/local/pureftpd/sbin/pure-config.pl
[root@localhost configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
//拷贝
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber
Daemonize yes
MaxClientsPerIP
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion
AnonymousCanCreateDirs no
MaxLoad
AntiWarez yes
Umask :
MinUID
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage
CustomerProof yes //启动pureftpd
[root@localhost ~]# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf //启动成功,会显示一行长长的以Running开头的信息 //建立系统用户及它所属的目录
[root@localhost ~]# mkdir /data/www/
[root@localhost ~]# useradd www
[root@localhost ~]# chown -R www:www /data/www/ //建立虚拟用户,使其与系统用户关联起来 ****因为如果用系统用户身份登录ftp服务器,则需要知道用户的用户名和密码,这样不安全。
所以创建一个虚拟用户,映射到系统用户,进入ftp服务器。但并不具有系统用户的权限,只可以进入系统用户对应的目录*******
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uwww -d /data/www/ //这里可将pure-pw这个命令做个别名
Password:
Enter it again:
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb //创建用户信息数据库文件 //再添加一个虚拟用户
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb //创建一个虚拟用户就要创建一个用户信息数据库文件
//列出当前的账号
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw list //删除账号
[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user2
编译时出现的错误!!!
.configure: error: OpenSSL headers not found.
解决方法: --》 yum install -y openssl-devel
二、测试pureftpd
//测试需要工具
[root@localhost ~]# yum install -y lftp //测试
[root@localhost ~]# touch /data/www/.txt
[root@localhost ~]# lftp ftp_user1@127.0.0.1
口令:
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x www Jun : .
drwxr-xr-x www Jun : ..
-rw-r--r-- www Jun : .txt //登陆后,使用 ls 命令可以列出当前目录都有什么文件。
====================我是分割线。================
一、vsftpd
//CentOS或者RedHat Linux上自带的ftp软件叫做vsftp
1.安装源码包
[root@localhost ~]# yum install -y vsftpd db4-utils
2.建立系统用户
[root@localhost ~]# useradd -s /sbin/nologin virftp //建立虚拟账号相关联的系统账号
3.建立虚拟用户信息文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd_login //建立虚拟账户相关的文件
//加入
/*此文件单行为用户名,
双行为密码*/
test1 test2
abcdef
4.修改文件权限
[root@localhost ~]# chmod /etc/vsftpd/vsftpd_login
5.生成库文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //生成对应的库文件
6.建立装虚拟用户配置文件的文件夹
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf //建立虚拟账号相关的目录以及配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd_user_conf/test1 //创建用户test1对应的配置文件
//加入
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=
data_connection_timeout=
max_clients=
max_per_ip=
local_max_rate= 7.建立虚拟用户的ftp文件夹
[root@localhost ~]# mkdir -p /home/virftp/test1 //用户名test1的ftp文件夹
[root@localhost ~]# chown -R virftp:virftp /home/virftp
8.将虚拟用户的文件配置到pam上
[root@localhost ~]# vim /etc/pam.d/vsftpd
//在开头添加两行,在这里配置存放账号密码的文件
/*如果Linux系统是64位的,改为/lib64/security/pam_userdb.so*/
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 9.修改vsftpd的配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//按要求修改
...
...
anonymous_enable=YES改为anonymous_enable=NO
#anon_upload_enable=YES 改为 anon_upload_enable=NO
#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
#chroot_local_user=YES 将注释去掉
...
...
#文件最尾部加入
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
10.启动服务
[root@localhost ~]# /etc/init.d/vsftpd start ****启动失败****
如果同时有两个ftp在服务器上,检查是否21端口被占用 **************
二、测试vsftpd
[root@localhost ~]# yum install -y lftp
[root@localhost ~]# cat /etc/vsftpd/vsftpd_login
test1 test2
abcdef
[root@localhost ~]# lftp test1@127.0.0.1
口令:
lftp test1@127.0.0.1:~> ls
lftp test1@127.0.0.1:~> quit
[root@localhost ~]# cd /home/virftp/test1
[root@localhost ~]# touch .txt
[root@localhost ~]# mkdir
[root@localhost ~]# lftp test1@127.0.0.1
口令:
lftp test1@127.0.0.1:~> ls
drwxr-xr-x Apr :
-rw-r--r-- Apr : .txt
配置vsftpd遇到的错误:
lftp test1@127.0.0.1:~> ls
ls: 登录失败: OOPS: bad bool value in config file for: anon_upload_enable --> 因为你的那个YES/NO 布尔值(bool value)后边加了一个空格,即:
anon_upload_enable=NO空格 查看/etc/vsftpd/vsftpd.conf 和 /etc/vsftpd/vsftpd_user_conf/test1 中
anon_upload_enable=NO后有无空格 正确的格式应该是:
anon_world_readable_only=NO(无空格)!!!!!!
注意,NO后边的空格,要用退格键将其删除。
ftp--vsftp\pureftpd的更多相关文章
- FTP vsftp 安装、管理
FTP简介 FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为文传协议,用户Internet上的控制文件的双向传输. FTP的主要作用,就是让用户链接上一个远 ...
- LNMP下FTP服务器Pureftpd的安装和使用
LNMP一键安装包里的Pureftpd安装脚本是需要MySQL支持的,安装前需要已经安装好LNMP,这个自带一个PHP编写的用户管理界面. 安装 进入lnmp解压后的目录,执行:./pureftpd. ...
- Linux ftp VSftp
一.Linux FTP服务器分类: <1>wu-ftp <2>proftp=profession ftp <3>vsftp=very security ftp 本 ...
- Linux centos 安装 ftp(Vsftp) 与 设置ftp(Vsftp)
本文章只是简单搭建,因为公司只须要简单使用,虽然简单但是之前也走了一些弯路,所以决定把过程记录下来. 一.Vsftp安装与卸载 安装:yum install vsftpd 卸载:yum remove ...
- 阿里云Centos 7 FTP(vsftp)服务安装及配置
#检查vsftpd是否安装 rpm -qa | grep vsftpd #检查vsftpd版本并安装 yum list vsftpd yum install vsftpd #设置开机启动 system ...
- xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
6月25日任务 15.4 xshell使用xftp传输文件15.5 使用pure-ftpd搭建ftp服务扩展vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.co ...
- Linux下使用pure-ftpd建立匿名ftp访问
by 无若 (一)ubuntu14.04下使用pure-ftpd建立匿名ftp访问 1.安装apt-get install pure-ftpd 2.修改配置nano /etc/pure-ftpd/co ...
- nfs,ftp配置
一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...
- NFS,FTP
一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...
- NFS、FTP介绍
第二十五课 NFS.FTP介绍 目录 一. NFS介绍 二.NFS服务端安装配置 三.NFS配置选项 四.exportfs命令 五.NFS客户端问题 六.FTP介绍 七.使用vsftpd搭建ftp 八 ...
随机推荐
- [HNOI2007]分裂游戏 博弈论
题面 题面 题解 这题的思路比较特别,观察到我们的每次操作实质上是对于一颗豆子的操作,而不是对一瓶豆子的操作,因此我们要把每颗豆子当做一个独立的游戏,而它所在的瓶子代表了它的SG值. 瓶子数量很少,因 ...
- BZOJ2743:[HEOI2012]采花——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=2743 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建 ...
- OpenFlow 消息
消息类型 OpenFlow 的消息共分为三类: Controller-to-Switch 顾名思义,此类消息是由控制器主动发出 Features 用于获取交换机特性 Configuration 用于配 ...
- Linux内核分析3
周子轩创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 gdb跟踪start_ke ...
- Codeforces Round #336 (Div. 2)B 暴力 C dp D 区间dp
B. Hamming Distance Sum time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- HDU--2363
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2363 分析:最短路+二分. #include<iostream> #include< ...
- windows环境下封装条件wait和signal
linux 环境有提供好的pthread_cond_wait() 和 phread_signal().pthread_broadcast() windows需要自己封装,利用semophore控制线程 ...
- IO多路复用之epoll(一)讲解
网络通信中socket有自己的内核发送缓冲区和内核接受缓冲区,好比是一个水池, 当用户发送数据的时候会从用户缓冲区拷贝到socket的内核发送缓冲区,然后从 socket发送缓冲区发出去, 当用户要读 ...
- Java基础-synchronized关键字的用法(转载)
synchronized--同步 顾名思义是用于同步互斥的作用的. 这里精简的记一下它的使用方法以及意义: 当synchronized修饰 this或者非静态方法或者是一个实例的时候,所同步的锁是加在 ...
- php基础知识(语法与原理)
一.php简介 PHP超文本预处理器.是嵌入HTML文件中的服务器脚本程序. PHP代码标记:<?php …. ?> PHP文件的扩展名:.php PHP文件的执行:必须从域名开始访问 P ...