一、说明

  linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp)。 我们这里也是简单的说明下vsftp的配置。

  vsftp提供3种远程的登录方式:

(1)匿名登录方式

  就是不需要用户名,密码。就能登录到服务器电脑里面

(2)本地用户方式

  需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。

(3)虚拟用户方式

  同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)

二、安装

  

# 查看是否已安装 方法一
[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.-.el7.x86_64 # 查看是否已安装 方法二
[root@localhost ~]# vsftpd -v
vsftpd: version 3.0. # 安装 vsftpd
[root@localhost ~]# yum -y install vsftpd #查看位置
[root@localhost ~]# whereis vsftpd #启动
[root@localhost ~]#systemctl start vsftpd.service
三、SELinux 设置
 
关闭
setenforce   # 设置SELinux 成为permissive模式 (关闭SELinux)
setenforce # 设置SELinux 成为enforcing模式 (开启SELinux) # 或者修改配置
[root@localhost ~]# vi /etc/selinux/config 
# SELINUX=enforcing # 注释掉
# SELINUXTYPE=targeted # 注释掉
SELINUX=disabled # 增加
:wq! #保存退出
[root@localhost ~]# setenforce 

或设置setsebool(推荐)

#查看ftp sebool 配置
[root@localhost ~]getsebool -a | grep ftp ftpd_anon_write --> on
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> on
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> on
tftp_home_dir --> off #允许ftpd全部权限
[root@localhost ~]setsebool -P ftpd_full_access on

四、防火墙配置

  

#停止firewall
[root@localhost ~]systemctl stop firewalld.service #禁止firewall开机启动
[root@localhost ~]systemctl disable firewalld.service #或者,添加ftp服务
[root@localhost ~]firewall-cmd --permanent --zone=public --add-service=ftp
[root@localhost ~]firewall-cmd --reload

五、修改配置文件 

[root@localhost ~]#less /etc/vsftpd/vsftpd.conf |grep -v ^#
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_list_file=/etc/vsftpd/chroot_list pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_promiscuous=NO
pasv_address=183.63.152.2222
pasv_min_port=
pasv_max_port=

六、添加ftp用户

#添加ftp用户,不允许shell登录
[root@localhost ~]useradd ftpuser -d /home/ftpuser -s /sbin/nologin #设定ftp用户密码
[root@localhost ~]pass ftpuser

七、配置文件常用详解

()ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息

()idle_session_timeout= :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)

()data_connection_timeout= :设置客户机在进行数据传输时,设置空闲的数据中断时间

()accept_timeout= 设置在多长时间后自动建立连接

()connect_timeout= 设置数据连接的最大激活时间,多长时间断开,为别人所使用;

()max_clients= 指明服务器总的客户并发连接数为200

()max_per_ip= 指明每个客户机的最大连接数为3

()local_max_rate=(50kbytes/sec) 本地用户最大传输速率限制

()anon_max_rate=30000匿名用户的最大传输速率限制

()pasv_min_port=端口

()pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口,被动模式使用;

()listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;

()listen_port=端口号 设置FTP工作的端口号,默认的为21

()chroot_local_user=YES 设置限制所有的本地用户登录ftp登录后,改变根目录【chroot()】到自己的家目录
allow_writeable_chroot=YES 设置家目录锁定后,需要允许ftp登录对家目录可写
()chroot_local_user=NO 默认,本地用户登录后到系统的根目录,不chroot到自己家目录 

()chroot_list_enable=YES 启用chroot_list,chroot_list里面的用户是chroot_local_user设置的例外用户!!!!

()chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用户才能执行 ) 

()local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录; 

(19)userlist_enable=YES/NO 是否加载用户列表文件; 

(20)userlist_deny=YES 表示userlist加载的用户会拒绝登录,NO表示userlist加载的用户允许登录; 
ftpuser文件里面加载的用户也会拒绝登录,由/etc/pam.d/vsftpd 决定:auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed (21)userlist_file=/etc/vsftpd/user_list 列表文件

 八、其他配置,附录

. 匿名服务器的连接(独立的服务器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
Anonymous_enable=yes (允许匿名登陆)
Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask= (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
Xferlog_enable=yes (激活上传和下传的日志)
Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=XXXXX (欢迎信息)
Pam_service_name=vsftpd (验证方式)*
Listen=yes (独立的VSFTPD服务器)*
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项 . 开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限) . 开启匿名服务器下传的权限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读—–下传 (W)写—-上传 (X)执行—-如果不开FTP的目录都进不去 .普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传. 安全选项
Idle_session_timeout=(秒) (用户会话空闲后10分钟)
Data_connection_timeout=(秒) (将数据连接空闲2分钟断)
Accept_timeout=(秒) (将客户端空闲1分钟后断)
Connect_timeout=(秒) (中断1分钟后又重新连接)
Local_max_rate=(bite) (本地用户传输率50K)
Anon_max_rate=(bite) (匿名用户传输率30K)
Pasv_min_port= (将客户端的数据连接端口改在
Pasv_max_port= —60000之间)
pasv_address=183.63.152.222(Use this option to override the IP address that vsftpd will advertise in response to the PASV command.
Provide a numeric IP address, unless pasv_addr_resolve is enabled, in which case you can provide a hostname which will be DNS resolved for you at startup.)
Max_clients= (FTP的最大连接数)
Max_per_ip= (每IP的最大连接数)
Listen_port= (从5555端口进行数据连接) . 查看谁登陆了FTP,并杀死它的进程
ps –xf |grep ftp
kill 进程号

九、NAT

FTP服务器外网NAT使用被动模式,映射连接端口21,数据端口50000

配置打开被动模式配置
pasv_enable=YES
pasv_promiscuous=NO
pasv_min_port=
pasv_max_port=

十、<完>

linux Centos7 下vsftpd 安装与配 FTP的更多相关文章

  1. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  2. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  3. Linux(CentOS7)下rpm安装MySQL8.0.16

    记录一下自己在 CentOS7 下 rpm 安装 MySQL8.0.16 的过程. 一.准备工作 1. 下载MySQL所需要的安装包 从 MySQL官网 下载,上传至 CentOS 系统 /usr/l ...

  4. linux centos7下mysql安装--韩国庆

    首先我先给大家介绍下MariaDB和mysql的区别. 上图,“MySQL之父”的骨灰级程序员Monty,但是mysql被Oracle收购后,Monty又开始去发展另一条数据库的道路,并且以Monty ...

  5. Linux centos7下php安装cphalcon扩展的方法

    说明: 操作系统:CentOS7 php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php/etc/php.ini 运行环境:LNMP ,PHP7 .安装 ...

  6. Linux(Centos7)下redis5安装、部署、开机自启

    1.什么是redis redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串 ...

  7. [Linux]centOS7下RPM安装Perl

    1.下载rpm依赖包,依照顺序安装. perl-parent-0.225-244.el7.noarch   perl-HTTP-Tiny-0.033-3.el7.noarch   perl-podla ...

  8. centos7: vsftpd安装及启动: ftp配置(以虚拟用户为例)

    centos7: vsftpd安装及启动: ftp配置 1安装: yum -y install vsftpd /bin/systemctl start vsftpd.service #启动 /bin/ ...

  9. (转)LINUX CENTOS7下安装PYTHON

    LINUX CENTOS7下安装PYTHON 原文:http://www.cnblogs.com/lclq/p/5620196.html Posted on 2016-06-27 14:58 南宫羽香 ...

随机推荐

  1. onchange事件可以使用于: <input>, <select>, 和 <textarea>。

    onchange 事件会在域的内容改变时发生. onchange 事件也可用于单选框与复选框改变后触发的事件.

  2. SQL CHECK sql server免费监控单实例工具

    SQL Check 阅读目录 SQL Check? 主要特点 说说不足 下载地址 小结 一款实时性能监测工具 回到目录 SQL Check? 一款实时监测SQL数据库性能.实时排查的问题的免费工具. ...

  3. android studio上传项目到github报错Successfully created project 'Demo' on GitHub, but initial commit failed:

    今天博主正在愉快地学习在AndroidStudio中使用Git,结果报了下面这个错∑(っ°Д°;)っ: Can't finish GitHub sharing process Successfully ...

  4. python 各种魔法方法

    目录 自定义序列 反射

  5. c++ ScopeExitGuard

    说到Native Languages就不得不说资源管理,因为资源管理向来都是Native Languages的一个大问题,其中内存管理又是资源当中的一个大问题,由于堆内存需要手动分配和释放,所以必须确 ...

  6. image_Magic图片处理功能

    :] 来自为知笔记(Wiz)

  7. change the color of a disabled TEdit?

    change the color of a disabled TEdit? Author: P. Below Category: VCL {Question:How can I change the  ...

  8. h5打开App的方法。

    在浏览器中: 法1: location.href = `${scheme}`;//location跳转App是几乎所以情况都支持的. 法2: var ifr = document.createElem ...

  9. input-file 部分手机不能拍照问题

    曾经遇到一个需求,用户拍身份证上传验证, 然后我卡在了拍照这个点上. 最初采用的是微信的 api,wx.chooseImage, 但随后发现,返回的是一种只有微信才能预览的 url 格式, 但验证是要 ...

  10. 【Head First Servlets and JSP】笔记

    1.谈到服务器的时候,可能是指物理主机(硬件),也可能是指Web服务应用(软件). 2.谈到客户的时候,通常指人类用户,或者是浏览器应用,或者两者都包括,浏览器应用做些什么?发送请求.解释HTML和呈 ...