一、说明

  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. Web页面性能优化(YSlow)

    YSlow(解析为Why Slow)是雅虎基于网站优化规则推出的工具,帮助你分析并优化网站性能.旧版Yslow 有13条规则,新版Yslow有23项规则,YSlow会根据这些规则分析你的网站,并给出评 ...

  2. mysql 客户端命令行下 直接查询并导出数据

    mysql原来还能这么导出数据,涨知识了. 方式1: select ....(sql语句) INTO OUTFILE   '/var/lib/mysql/msg_data.csv ' (导出的文件位置 ...

  3. detectron安装+caffe2安装

    detectron安装+caffe2安装 因为想跑一下facebook最近开源的detectron物体检测平台,所以安装caffe2+detectron 总结: 一定要好好看官方安装教程:https: ...

  4. git学习------>如何用git log命令来查看某个指定文件的提交历史记录

    有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和原因,想查看该文件的具体提交历史记录. 今天一个同事是这样做的,直接敲git log命令,然后再使用vim命令的搜索关键字的方法来查 ...

  5. mysql多条更新

    最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用. mysql 批量更新共有以下四种办法 1..replace into 批量更新 ...

  6. Tachyon架构剖析--王家林老师

  7. PHP数组的创建

    案例: 仔细看代码,PHP创建数组 <?php $names[0]='Peter'; $names[1]='Minot'; $names[2]='Smith'; echo $names[0].' ...

  8. 转:oracle物化视图学习笔记

    最近学习了一下物化视图,正好经理不在,把学习结果贴出来供大家一起研究一下吧. 先看一下物化视图的大概含义吧,感觉baidu的定义还不错 物化视图,它是用于预先计算并保存表连接或聚集等耗时较多的操作的结 ...

  9. centos7 firewall开放查看关闭端口

    查看所有打开的端口: firewall-cmd --zone=public --list-ports 添加 firewall-cmd --zone=public --add-port=80/tcp - ...

  10. iOS clang 编译 oc 代码

    clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iP ...