CentOS 下vsftp 安装--虚拟用户

FTP文件传输协议(File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。

FTP协议占用两个端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。

FTP数据传输的类型:

主动模式:FTP服务端主动向FTP客户端发起连接请求。

被动模式:FTP服务端等待FTP客户端的连接请求。

下面介绍用虚拟用户登录ftp,因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以相对于本地用户要比较安全多了。


步骤:

1.查看系统版本

# uname -a
Linux node2 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

2.安装vsftpd

#yum install vsftpd -y

3.备份配置文件

# cd /etc/vsftpd
# mv vsftpd.conf vsftpd.conf.bak
# egrep -v "^$|^#" vsftpd.conf.bak > vsftpd.conf

4.创建一个系统账户 (方便后面虚拟用户映射使用)

# useradd -d /data/ -s /sbin/nologin virturl
#  chmod 755 /data

5.创建虚拟用户并生成数据文件(这种方法比较麻烦,每次创建都需要重新生成数据库文件,不过可以使用mysql来代替 这种方法。)

# cd /etc/vsftpd
# vim vip.list (文件一行用户一行密码)
blog
123567
cache
123456

使用db_load命令用HASH算法生成FTP用户数据库文件vip.db
# db_load -T -t hash -f vip.list vip.db

刚创建的vip.list这个文件就可以删除了,不然被人发现就破解了,数据库文件比较重要,更改权限。
# chmod 600 vip.db

6.使用系统上面的pam认证文件

# vim /etc/pam.d/vip (指定我们刚刚上面生成的数据库文件,去掉后缀名就可以了)
auth required pam_userdb.so db=/etc/vsftpd/vip
account required pam_userdb.so db=/etc/vsftpd/vip

7.创建用户权限的文件

# cd /etc/vsftpd
# mkdir vip_dir (在里面用ftp账户命名创建文件,文件里面配置权限,默认是没有上传,下载,删除等权限的。)
# vim blog
anon_upload_enable=YES          #(上传权限)
anon_mkdir_write_enable=YES       #(创建文件目录)
anon_other_write_enable=YES       #(其他权限)

# vim cache
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

8.配置vsftpd配置文件

# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                   # (禁用匿名用户)
local_enable=YES                     # (允许本地用户登录)
guest_enable=YES                     # (需要虚拟用户登录)
guest_username=virtual                  #  (映射的系统用户)
pam_service_name=vip                   #  (pam认证文件)
allow_writeable_chroot=YES                  #  (允许禁锢的FTP根目录可写而不拒绝用户登入请求)
user_config_dir=/etc/vsftpd/vip_dir                  #  (指定用户权限的目录)
 
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES

9.启动vsftpd

# systemctl start vsftpd

10.防火墙允许 20,21端口通过

# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT

11.就可以用客户端去登录了。window软件的我用了filezilla这个软件,需要打开主动模式去连接,不会报错。

时间: 2024-10-08 10:27:57

CentOS 下vsftp 安装--虚拟用户的相关文章

Linux CentOS 下vsftp安装及配置相关操作

1.安装ftps——vsftpd: #yum install vsftpd 2.指定上传下载目录配置: 如:用户名:xxx,需指定目录:/xxx/xxx #useradd -d/xxx/xxx -s /sbin/nologin xxx #vi /etc/vsftpd/vsftp.conf chroot_local_user=YES       #将所有本地用户限制在自家目录中,NO则不限制.下面的指令是指出在所有本地用户中例外于本 指令规定的用户. chroot_list_enable=YES 

CentOS 6.3下安装Vsftp,虚拟用户

CentOS 6.3下安装Vsftp,虚拟用户一.安装:1.安装Vsftpd服务相关部件:[[email protected] ~]# yum install vsftpd*Dependencies Resolved============================================================================= Package                 Arch       Version          Repository  

CentOS中vsftp安装与配置

1. 安装使用chkconfig --list来查看是否装有vsftpd服务:使用yum命令直接安装:yum -y install vsftpd然后为它创建日志文件:touch /var/log/vsftpd.log 2.建立ftp用户及主目录:    # mkdir /var/ftp    # useradd -d /var/ftp ftp 3. 配置vsftp服务编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:#vi /etc/vsftpd/vsftpd.conf

CentOS6.5vsftpd-2.2.2-11安装(虚拟用户)

CentOS6.5vsftpd-2.2.2-11安装(虚拟用户) ----------------------------------------------------------------- #所用vsftpd服务为CentOS6.5自带镜像 #查看是否有挂载镜像光盘 df -Th Filesystem                     Type   Size  Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root ext4

vsftp 使用虚拟用户

配置的思路:使用帐号和密码登录FTP服务器,每个用户只能登录到自己用户名的目录中,可以增删改查文件. -- 使用VSFTP的虚拟用户和chroot目录的配置. 安装vsftp.使用pam管理vsftp的虚拟用户. 因为是使用vsftpd的虚拟用户,所以我们需要先在系统中创建一个用户,并且该用户对/ftp目录具有可读可写可执行权限. 在iptables中开放20.21.被动模式端口范围,并加载FTP驱动模块 modprobe ip_nat_ftp modprobe ip_conntrack_ftp

centos 7搭建基于虚拟用户的FTP服务

该博文主要记录了centos 7中使用vsftpd服务的虚拟用户配置过程,即将一个真实的系统用户映射为多个虚拟用户. 部署vsftpd虚拟用户的思路: 过程如下: 建立虚拟FTP用户的账号数据库文件. 创建FTP根目录及虚拟用户映射的系统用户. 建立支持虚拟用户的PAM认证文件. 在vsftpd.conf文件中添加支持配置. 为个别虚拟用户建立独立的配置文件. 重新加载vsftpd配置. 使用虚拟FTP账户访问进而测试是否成功. 该博文是最初写博文时,写过的一篇博文,当初不懂排版,截图比较多,导

centos 下编译安装mysql5.1与mysql5.5

mysql5.1.60编译安装 1.tar -zxvf mysql* 2../configure 之前要make clean ./configure --prefix=/home/shk/mysql-5.1.60 \ --enable-local-infile \ --with-unix-socket-path=/home/shk/mysql-5.1.60/var/mysql.sock \ --with-tcp-port=5506 \ --enable-thread-safe-client \

centos下smartctl安装配置(硬盘S.M.A.R.T信息及坏块检测命令)

centos下smartctl安装配置 一.什么是S.M.A.R.T. SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及 每一块硬盘(包括IDE.SCSI)在运行的时候,都会将自身的若干参数记录下来 这些参数包括型号.容量.温度.密度.扇区.寻道时间.传输.误码率等 硬盘运行了几千小时后,很多内在的物理参数都会发生变化 某一参数超过报警阈值,则说明硬盘接近损坏 此时硬盘依然在工作,如果用户不理睬这个报警继续使用 那么硬盘将变得非常不可靠,随时可能故障. 二.安装 yum in

centos下yum安装mysql5.6后,无法启动 MySQL Daemon failed to start

如果是全新安装应该就不会出现这个问题,升级安装的话,要运行 mysql_upgrade ,但是启动MYSQL就报错MySQL Daemon failed to start 如此就没办法运行mysql_upgrade升级MYSQL表了 因为是全新安装的数据库服务器就不管老数据了,直接把老的MYSQL数据库文件夹删除了,然后 运行 mysql_install_db 单独执行下命令,初始化mysql,test等数据库 初始化所有数据库以后,依然是无法启动,检查了MYSQL的日志发现没有权限,因为是RO