ftp服务器搭建(一)

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版|50资产|一周时长
简介:

系统环境:RHEL6.5

IP地址:10.10.125.4

服务描述:

ftp服务器(File Transfer Protocol:文件传输协议):Internet上用来传送文件的协议


vsftp:一个基于GPL发布的linux系统上使用的FTP服务器软件,全称为Very Secure FTP;


工作模式:C/S

使用端口:21/20    其中20端口是数据传输端口,21是监听端口


   安装:

1
rpm -ivh /mnt/Packages/vsftpd-2 .2.2-6.el6_0.1.x86_64.rpm
1
2
or
yum -y  install  vsftpd

linux系统作为客户端访问需要安装lftp工具;该工具支持的文件协议包含:ftp;ftps,http,https,hftp,fish(其中ftps和https需要包含openssl库)。

特点:书签    ,排队,镜像,断点续传,多进程下载等功能。


相关配置文件位置:

1
2
3
4
5
6
/etc/vsftpd/
ftpusers                    #用于指定哪些用户不能访问ftp服务器,黑名单
user_list                   #用于指定哪些用户可以访问ftp服务器,白名单
vsftpd.conf                 #vsftpd主配置文件
vsftpd_conf_migrate.sh      #vsftpd操作的一些变量和设置的脚本
/var/ftp/                   #默认匿名用户的根目录

启动服务器:

1
/etc/init .d /vsftpd  {start|stop|restart|try-restart|force-reload|status}

查看监听端口:

 

1
netstat  -anptu |  grep  ftp

访问方式:

    windows系统:

    地址栏:ftp://10.10.125.4

    linux系统:

    地址栏:lftp 10.10.125.4

应用实例:

1、搭建一台服务器允徐所有人访问,并允许用户自己创建用户目录

修改主配置文件:/etc/vsftp/vsftpd.conf

1
2
3
4
5
anonymous_enable=YES         #允许匿名用户登录
# Uncomment this to allow the anonymous FTP user to upload files. This only
anon_upload_enable=YES        #允许匿名用户上传
# Uncomment this if you want the anonymous FTP user to be able to create
anon_mkdir_write_enable=YES   #允许匿名用户创建目录

修改好主配置文件之后重启服务

service vsftpd restart

测试由于pub目录权限是755不能创建目录

可创建test目录,并修改属主

1
2
mkdir  /var/ftp/test
chown  ftp  /var/vtp/test

2、现在有两个小组更新web站点内容,包括上传文件,创建目录和更新网页等。

创建账号user1,user2,该账号能登陆ftp服务器,但不允许登录本地系统,并将这两个账号的根目录限制到/var/www/html,不能进入该目录意外的任何目录

创建用户并设置默认密码:123456

1
[root@xuexi vsftpd] # for id in {1,2};do useradd -s /sbin/nologin user${id};echo "123456" | passwd --stdin user${id};done

anonymous_enable=NO                          #禁止匿名用户登录

chroot_local_user=YES                             #允许本地用户登录

chroot_list_enable=YES                            #激活chroot功能

local_root=/var/www/html                      #设置本地用户的根目录

chroot_list_file=/etc/vsftpd/chroot_list   #设置锁定用户在根目录中的列表文件,此文件存放要锁定的用户名

保存

创建chroot_list文件

[root@xuexi vsftpd]# touch /etc/vsftpd/chroot_list

[root@xuexi vsftpd]#vim !$

user1

user2

将允许登录vsftp的用户添加至/etc/vsftpd/chroot_list文件中,每个用户名占一行空间

重启vsftpd服务使配置生效

service vsftpd restart

更改根目录访问权限

chmod -R o+w /var/www/html

完成相关设置


3、为ftp开设虚拟用户

功能:

    1)为客户提供相关文档下载,对搜友互联网开放共享目录,云溪下载产品信息,禁止上传。

    2)对公司合作单位能够使用ftp服务器上传和下载,但不能删除任何数据。

    3)创建一公司内部用户具备所有权限。

    4)关闭实体账号登录,使用虚拟账号验证机制,并对不同虚拟账号设置不同访问权限

    5)为保证服务器性能,需要根据用户等级限制客户端的连接数以及下载速度。


创建用户文本文件:用户名位于奇数行,密码位于偶数行

[root@xuexi vsftpd]# vim /etc/vsftpd/vsftpd_viruser.txt

ftp

123456

vip

123456

生成数据库

由于保存的用户名和密码无法直接被系统调用,因此需要使用db_load命令生成能被系统调用的数据库文件

检查文件是否安装,如果没有安装可以直接通过yum或rpm的方式进行安装

[root@xuexi vsftpd]# rpm -qf `which db_load`

db4-utils-4.7.25-18.el6_4.x86_64

[root@xuexi vsftpd]# rpm -ivh /mnt/Packages/db4-utils-4.7.25-18.el6_4.x86_64.rpm 

[root@xuexi vsftpd]# db_load -T -t hash -f /etc/vsftpd/vsftpd_viruser.txt /etc/vsftpd/vsftpd_viruser.db

生成数据库文件之后可以删除用户存储文件/etc/vsftpd/vsftpd_viruser.txt 

修改数据库文件访问权限

[root@xuexi vsftpd]# chmod 600 vsftpd_viruser.db 

配置PAM文件

通过调用系统的PAM模块使服务器能够使用数据库文件,进而完成对客户端的身份验证。

PAM概述:

PAM(Plugable Authentication Module)可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,应以服务名称命名。

1
[root@xuexi vsftpd] # vim /etc/pam.d/vsftpd
1
2
3
在文件末尾添加一下两行内容,并将默认设置全部使用 #注释掉
auth    required  /lib64/secruity/pam_userdb .so db= /etc/vsftpd/vsftpd_viruser
account required  /lib64/secruity/pam_userdb .so db= /etc/vsftpd/vsftpd_viruser

创建虚拟账号对应的系统用户及ftp共享的目录

1
2
3
4
[root@xuexi vsftpd] # useradd -d /var/ftp/ftpvip ftpvip
[root@xuexi vsftpd] # useradd -d /var/ftp/ftpuser ftpuser    
[root@xuexi vsftpd] # chmod -R 700 /var/ftp/ftpvip/        #修改权限
[root@xuexi vsftpd] # chmod -R 500 /var/ftp/ftpuser/

建立配置文件

由于该功能中一个配置文件无法实现,需要为每个虚拟账号建立独立的配置文件,并根据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@xuexi ~] # cat /etc/vsftpd/vsftpd.conf | grep -v ^#
anonymous_enable=NO                 #禁止匿名用户登录
local_enable=YES                    #允许本地用户登录
write_enable=YES                    #允许本地用户可写
local_umask=022                     #默认umask掩码
dirmessage_enable=YES               #
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd              #配置vsftpd使用pam模块为vsftpd
chroot_local_user=YES
listen=YES                            #启用侦听指令,使vsftpd能够以独立模式运行监听,但这个指令不能与IPv6同时侦听使用
tcp_wrappers=YES
user_config_dir= /etc/vsftpd/viruserconfig    #设置虚拟账号的主目录为viruserconifg
max_clients=300                      #设置ftp服务器最大接入客户端数量300个
max_per_ip=10                        #设置每个IP地址最大连接数位10个
1
2
3
4
5
[root@xuexi ~] # vim /etc/vsftpd/viruserconfig/ftp
guest_enable= yes                 #开启虚拟用户
guest_username-ftpuser           #定义虚拟用户名
anon_world_readable_only=no      #允许只读
anon_max_rate=50000              #限制传输速率为50kb/s

配置vip用户

1
2
3
4
5
6
7
8
[root@xuexi ~] # vim /etc/vsftpd/viruserconfig/vip
guest_enable= yes
guest_username=ftpvip
anon_word_readable_only=no
write_enable= yes
anon_mkdir_write_enable= yes
anon_upload_enable= yes
anon_max_rate=100000

重启vsftpd服务生效

service vsftpd restart

验证发现不能登录报530错误

1
2
3
4
5
[root@study vsftpd] # lftp 10.10.125.4 -u vip
口令: 
lftp vip@10.10.125.4:~>  ls            
ls : 登录失败: 530 Login incorrect.              
lftp vip@10.10.125.4:~>

服务端打开日志

1
2
3
[root@xuexi vsftpd] # tail -f /var/log/secure
Aug 24 10:50:24 xuexi vsftpd[3381]: PAM unable to dlopen( /lib64/secruity/pam_userdb .so):  /lib64/secruity/pam_userdb .so: cannot  open  shared object  file : No such  file  or directory
Aug 24 10:50:24 xuexi vsftpd[3381]: PAM adding faulty module:  /lib64/secruity/pam_userdb .so

可以得出是由于缺少相关模块导致登录失败


检查该文件是否存在

1
2
3
ls  -lh  /lib64/security/pam_userdb .so
-rwxr-xr-x. 1 root root 11K Oct  7  2013  /lib64/security/pam_userdb .so        
哈哈哈尴尬。。。。不细心那不细心。。。

发现模块已经存在仍然不能认证

ls: 登录失败: 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

使用注入用户名

echo "vip" >> /etc/vsftpd/chroot_list

echo "ftp" >> /etc/vsftpd/chroot_list

ls: 登录失败: 500 OOPS: missing value in config file for: guest_username-ftpuser

上边这个报错也是由于虚拟用户设置文件配置错误导致将按照提示改好之后即可。

登录测试:

1
2
3
lftp  ftp @10.10.125.4: /ftpuser ls
-rw-r--r--    1 0        0               6 Aug 24 05:41 1111.docx
-rw-r--r--    1 0        0         7884800 Aug 24 05:40 bin. tar

到此vsftpd配置完成


相关参考连接:http://1745027.blog.51cto.com/1735027/692653


本文转自 CARYFLASH 51CTO博客,原文链接:http://blog.51cto.com/maoxiaoxiong/1958986


目录
打赏
0
0
0
0
342
分享
相关文章
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
百度搜索:蓝易云【Ubuntu系统搭建FTP服务器教程】
现在,你已经成功在Ubuntu系统上搭建了FTP服务器。你可以使用FTP客户端连接到你的FTP服务器,并上传、下载文件。注意,为了安全起见,建议配置SSL/TLS加密以保护数据传输。
115 0
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
63 4
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?
FTP服务器怎么搭建?Windows server搭建FPT服务器
FTP服务器是按照FTP协议提供文件传输服务的计算机。它用于在两台计算机间安全地传输文件,支持用户权限管理和跨平台操作。FTP使用控制连接处理命令,数据连接传输文件,有PORT和PASV模式。要搭建FTP服务器,首先在Windows Server 2008 R2上安装IIS,确保选中FTP服务。接着,创建FTP文件夹作为站点根目录,通过IIS管理器添加FTP站点,配置站点信息、身份验证和权限。测试客户端通过telnet和浏览器访问FTP服务器,确认能成功登录及浏览文件。FTP常用于文件共享和管理,可通过专用工具如FlashFXP上传下载文件。
197 0
FTP服务器怎么搭建?Windows server搭建FPT服务器
快速搭建一个FTP服务器
快速搭建一个FTP服务器
123 0
如何使用Python上传文件到FTP服务器
如何使用Python上传文件到FTP服务器
108 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等