Linux服务部署之FTP服务器

来源:笔记整理 发布时间:2018-12-29 10:39:26 作者:admin 阅读量:326

FTP 是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输

vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。

目前在开源操作系统中常用的FTP服务器程序主要有vsftpdProFTPDPureFTPdwuftpd等,这么多FTP服务器程序,关键在于自己熟练哪一个就使用哪一个。今天我们来研究一下VSFTPD简单安装及使用。安装命令: yum  install vsftpd*  -y




修改配置文件如下:


#vsftpd config 2014 by wugk


anonymous_enable=NO    //禁止匿名用户访问


local_enable=YES  //允许本地用户登录FTP


write_enable=YES   //运行用户在FTP目录有写入的权限


local_umask=022   //设置本地用户的文件生成掩码为022,默认是077


dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息


xferlog_enable=YES   //启用上传和下载日志功能


connect_from_port_20=YES  //启用FTP数据端口的连接请求


xferlog_std_format=YES  //是否使用标准的ftpd xferlog日志文件格式


listen=YES  //使vsftpd处于独立启动监听端口模式


pam_service_name=vsftpd //设置PAM认证服务配置文件名称,文件存放在/etc/pam.d/目录


userlist_enable=YES   //用户列表中的用户是否允许登录FTP服务器,默认是不允许


tcp_wrappers=YES    //使用tcp_wrqppers作为主机访问控制方式


 


  1. 第一种方法就是使用系统用户登录FTP,但是也是比较危险的,先测试系统用户登录FTP,在Linux系统上创建useradd  test 用户,并为其设置名,然后在xp客户端打开我的电脑资源里面访问 ftp://192.168.33.10,输入用户名和密码即可访问,进行创建和删除操作。

  2. 第二种方法比较安全,配置相对复杂一点,就是使用vsftpd虚拟用户登录FTP服务器进行常见的操作。


  • 首先安装FTP 虚拟用户需要用到的软件及认证模块


yum install pam* db4* --skip-broken y


创建并生成vsftpd数据库文件vi /etc/vsftpd/ftpusers.txt,内容如下:


第一行为FTP虚拟用户,登录用户名,第二行为密码,第三行为用户名,依次类推。


wugk


1


wugk1


1


  • 生成数据库文件命令:


db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db


chmod 700 /etc/vsftpd/vsftpd_login.db


  • 配置PAM验证文件:


在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句:(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)


auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login


account sufficient      /lib64/security/pam_userdb.so      db=/etc/vsftpd/vsftpd_login


  • 创建vsftpd映射本地用户:


所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。


useradd  d /home/ftpuser s /sbin/nologin ftpuser


  • 修改完整版配置文件内容如下:


anonymous_enable=NO


local_enable=YES


write_enable=YES


local_umask=022


dirmessage_enable=YES


xferlog_enable=YES


connect_from_port_20=YES


xferlog_file=/var/log/vsftpd.log


xferlog_std_format=YES


ascii_upload_enable=YES


ascii_download_enable=YES


listen=YES


 


guest_enable=YES


guest_username=ftpuser


pam_service_name=vsftpd


user_config_dir=/etc/vsftpd/vsftpd_user_conf


virtual_use_local_privs=YES


 


    保存重启,/etc/init.d/vsftpd restart 即可使用虚拟用户登录,这时候所有的虚拟用户共同使用/home/ftpuser目录上传下载,如果想使用自己独立的目录,可以在/etc/vsftpd/vsftpd_user_conf目录创建各自的配置文件,如给wugk创建独立的配置文件:


vi /etc/vsftpd/vsftpd_user_conf/wugk ,内容如下,建立自己的FTP目录。


local_root=/home/ftpsite/wugk


write_enable=YES


anon_world_readable_only=YES


anon_upload_enable=YES


anon_mkdir_write_enable=YES


anon_other_write_enable=YES


 重启,使用客户端登录FTP,测试即可。关于FTP讲解就到此,windows还可以使用Server-U来搭建FTP服务器端,有兴趣的童鞋可以研究一下。


  • FTP主被动模式


FTP主动模式:客户端从一个任意的非特权端口NN>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

FTP被动模式:客户端从一个任意的非特权端口NN>1024)连接到FTP服务器的port 21命令端口。然后客户端开始监听端口N+1,同时客户端提交 PASV命令。服务器会开启一个任意的非特权端口(P >1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。






Copyright ©2018-2020 [亮师兄] Powered By [个人运维笔记] Version 1.1.0   我要留言
技术支持:亮师兄(服务QQ):44480394网站备案号: 滇ICP备18010560号   备案查询
Catfish(鲶鱼) CMS V 5.4.9