一、说明

  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. JS的深拷贝

    var obj = { name: "wuyongyu", age: 18 } 第一种方式: function deepClone(obj){ // 判断传入的数据类型 - 数组或 ...

  2. Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器

    今天请教了大神,终于把jenkins给搞明白了 现在做下笔记,防止自己老年痴呆又忘了怎么配置 (截图可能不够清晰,有不清楚的随时评论打call) 机器配置: 安装配置规划 机器 192.168.169 ...

  3. 聊天软件项目TCP升级版

    //聊天软件项目TCP升级版 import java.io.*; import java.net.*; class TcpClient2 { public static void main(Strin ...

  4. Python(函数的参数)

    函数参数的使用 def foo(x,y): pass foo(1,2) 形参:就是变量名 实参:就是变量值 形参:位置形参,默认参数,*args,命名关键字参数,**kwargs 实参: 按位置传值的 ...

  5. HDU - 6315 Naive Operations (线段树+思维) 2018 Multi-University Training Contest 2

    题意:数量为N的序列a和b,a初始全为0,b为给定的1-N的排列.有两种操作:1.将a序列区间[L,R]中的数全部+1:2.查询区间[L,R]中的 ∑⌊ai/bi⌋(向下取整) 分析:对于一个位置i, ...

  6. sublime Text emmet插件使用手册

    转自:http://www.w3cplus.com/tools/emmet-cheat-sheet.html 介绍 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工 ...

  7. netty1---传统IO和NIO的区别

    传统IO: package OIO; import java.io.IOException; import java.io.InputStream; import java.net.ServerSoc ...

  8. 编写Tesseract的Python扩展

    Tesseract是一个开源的OCR(光学字符识别)引擎,用于识别并输出图片中的文字.虽然和商业软件比起来识别精度不算很高,但是如果你要寻找免费开源的OCR引擎,可能Tesseract就是唯一的选择了 ...

  9. Python3.x:定时自动发送邮件

    定时自动发送邮件 一.简述 python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email ...

  10. MySQL5.7导入数据报错ERROR 1067 (42000) at line 1015: Invalid default value for 'service_time'

    解决办法: 修改my.cnf,[mysqld] 下面添加sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_U ...