服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|

在CentOS系统下搭建FTP服务器vsftpd的方法

2019-09-06 15:2951CTO Centos

这篇文章主要介绍了在CentOS系统下搭建FTP服务器vsftpd的方法,vsftpd人气非常高以至于内置于很多Linux的发行版中,需要的朋友可以参考下

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等,而vsftpd支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd特点
①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;
③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;
④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

安装步骤
编译安装
 

复制代码
代码如下:

# mkdir -p /usr/local/man/man8
# mkdir -p /usr/local/man/man5
# yum -y install tcp_wrappers*
# yum -y install pam*
# yum -y install db4*
# yum -y install libcap*
# wget -c http://down1.chinaunix.net/distfiles/vsftpd-2.3.4.tar.gz
# tar -xvzf vsftpd-2.3.4.tar.gz
# cd vsftpd-2.3.4

支持的认证类型

复制代码
代码如下:

# vim builddefs.h
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
# make
# make install
# mkdir /etc/vsftpd
# cp vsftpd.conf /etc/vsftpd

启动脚本

复制代码
代码如下:

# vim /etc/init.d/vsftpd 
# chmod +x /etc/init.d/vsftpd
# chkconfig --level 235 vsftpd on

日志目录

 

 

复制代码
代码如下:

# mkdir -p /data3/ftp_logs
# vi /etc/vsftpd/vsftpd.conf 
# touch /data3/ftp_logs/vsftpd.log
# touch /etc/vsftpd/chroot_list
# touch /etc/vsftpd.user_list
# mkdir /etc/vsftpd/vconf

创建用户列表【第一行为用户名,第二行为密码】

复制代码
代码如下:

# vi /etc/vsftpd/virtusers
blaze
123456789

创建用户数据库文件

复制代码
代码如下:

# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
# chmod 600 /etc/vsftpd/virtusers.db

创建PAM认证文件

复制代码
代码如下:

# vim /etc/pam.d/vsftpd 

[注:x64环境下,路径不一样]

 

创建针对 blaze 用户的配置文件
 

复制代码
代码如下:

# vim /etc/vsftpd/vconf/blaze
local_root=/data1/www
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

防火墙设置

复制代码
代码如下:

# iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# iptables -I INPUT -p tcp --dport 21 -j ACCEPT 
# iptables -I OUTPUT -p tcp --dport 21 -j ACCEPT
# modprobe ip_conntrack_ftp 
# modprobe ip_nat_ftp</p> <p># vi /etc/sysconfig/iptables
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-I INPUT -p tcp --dport 21 -j ACCEPT 
-I OUTPUT -p tcp --dport 21 -j ACCEPT</p> <p># vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

延伸 · 阅读

精彩推荐
  • Centos阿里云CentOS系统yum方式安装vsftpd

    阿里云CentOS系统yum方式安装vsftpd

    这篇文章主要介绍了阿里云CentOS系统yum方式安装vsftpd的方法,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧...

    服务器之家3412019-07-15
  • CentosCentOS如何卸载系统的OpenJDK?CentOS卸载系统的OpenJDK的方法

    CentOS如何卸载系统的OpenJDK?CentOS卸载系统的OpenJDK的方法

    对于CentOS如何卸载系统的OpenJDK这个问题很多朋友在问!如何解决这个问题呢,下面小编将为大家带来CentOS卸载系统的OpenJDK的方法;有需要的朋友一起去看看吧...

    CentOS之家2002019-06-11
  • Centoscentos6.5下kvm环境搭建详解

    centos6.5下kvm环境搭建详解

    今天小编要为大家带来的是centos6.5下kvm环境搭建详解!希望对大家会有帮助!有需要的朋友一起去看看吧...

    脚本之家4432019-05-27
  • CentosCentOS运行级别和开机过程的详解

    CentOS运行级别和开机过程的详解

    今天小编给大家带来的是CentOS运行级别和开机过程的详解;希望可以帮助到大家,有需要的朋友一起去看看吧...

    CentOS之家5062019-06-17
  • Centoscentos 7 安装percona Server 服务器方法

    centos 7 安装percona Server 服务器方法

    本文将为大家具体的讲解centos 安装percona,了解 Percona 服务器,Percona Server为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升...

    centos之家3452019-07-09
  • CentosCentOS下程序内存空间分配详解

    CentOS下程序内存空间分配详解

    今天小编为大家带来的是CentOS下程序内存空间分配详解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    CentOS之家2112019-06-17
  • Centos在CentOS系统上安装DNS服务器的教程

    在CentOS系统上安装DNS服务器的教程

    这篇文章主要介绍了在CentOS系统上安装DNS服务器的教程,文中讲解的是通过unbound包管理方式来进行安装的方法,需要的朋友可以参考下...

    开源中文社区4012019-09-04
  • Centoscentos基础知识扩展

    centos基础知识扩展

    1. 请回答,32位和64位有什么区别呢?什么时候安装32位的,又什么时候安装64位操作系统呢?如何查看系统是32位的还是64位的? 我们所谓的32位、64位指的是CPU的GPRs(General-Purpose Registers,通用寄存器)的数据宽度。64位的cpu较之32位可以进...

    centos之家3642019-07-09