Cenos7---FTP服务器搭建

NFS:Network File System 是已故的Sun公司制定的用于分布式访问的文件系统,它的本质是文件系统。
主要在Unix系列操作系统上使用,基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,像本地磁盘一样操作。

samba是Unix(linux)系统下实现的 Windows文件共享协议-CIFS,由于Windows共享是基于NetBios协议,是基于Ethernet的广播协议,
在没有透明网桥的情况下(如VPN)是不能跨网段使用的。它主要用于unix(linux)和windows系统进行文件和打印机共享,也可以通过samba套件中
的程序挂载到本地使用。

FTP的目的是在Internet上共享文件而发明的一种协议,基于TCP/IP。世界上绝大多数系统都会有支持FTP的工具存在,通用性很强
目前少有人把VPS修改成支持FTP组件的形式,主要是因为FTP一开始就不是为了文件系统而设计的。

使用SMB相对于FTP有何优点:

A.只有通过SMB才能在两个方向上传输数据。

B.只有SMB与客户端建立了两个并行连接,从而使数据传输更快。

C.因为SMB使用TCP,而FTP使用UDP,所以SMB比FTP更可靠。

D.SMB客户端可以与服务器建立长期连接。

三种协议虽然都可以支持文件共享,但是其功能点和侧重点上面各有所不同,协议格式不同。Authentication(鉴定)也就是你说的登陆方式
也会随着协议的内容也有所不同。标准的FTP协议的登陆密码是用明文传输的,没有加密,这会有很大的安全隐患
目前有FTPs(FTP on SSL/TLS)和sFTP(SSH FTP)等基于通信层进行加密的FTP协议,
这样会有更好的安全性。
NFS的鉴定机制是基于IP地址的,没有密码这种东西。是控制本地映射的用户权限来控制访问者的权限。
(1)yum -y install vsftpd 安装ftp服务器,,
打开/etc/vsftpd/vsftpd.conf,在末尾添加
最大最小端口号是随机产生的,不一定跟我的一样,需要自己测试得出,关闭防火墙测了好几次得出的。该端口添加防火墙规则时要用。

pasv_enable=YES //开启PASV模式 pasv_min_port=17500 //最小端口号 pasv_max_port=20080 //最大端口号 pasv_promiscuous=YES

 (2)添加防火墙规则,允许ftp服务器20,21端口访问,PASV端口。

       ftp有两种模式(主动和被动模式)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间 随机。

了解ftp原理后,接下来就去设置iptables规则。我自己服务器上默认INPUT规则是DROP,OUTPUT是ACCEPT。

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 17500:20000 -j ACCEPT

防火墙查看、添加、删除规则:

   查看:

    iptables -nvL  --line-number

   添加:

iptables -A INPUT -s 192.168.1.5 -j DROP

iptables -I INPUT 3 -p tcp --dport 8080 -j ACCEPT
删除:

iptables -D INPUT -s 192.168.1.5 -j DROP

可参考链接:https://www.cnblogs.com/bethal/p/5806525.html

 (3)重启vsftpd、iptables,局域网中访问  ftp://ip地址/

service iptables restart
service vsftpd restart

 (4)linux中vsftp修改默认路径

linux中vsftp修改默认路径

如果是默认安装vsftpd的话,以下是一些文件的位置约定: 
/usr/sbin/vsftpd ---- VSFTPD的主程序 
/etc/rc.d/init.d/vsftpd ---- 启动脚本 
/etc/vsftpd/vsftpd.conf ---- 主配置文件 
/etc/pam.d/vsftpd ---- PAM认证文件 
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件 
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件 
/var/ftp ---- 匿名用户主目录 
/var/ftp/pub ---- 匿名用户的下载目录 
如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行: 
local_root=/ 
chroot_local_user=YES 
anon_root=/ 

local_root表示使用本地用户登录到ftp时的默认目录 
anon_root表示匿名用户登录到ftp时的默认目录 
你上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。 
另外,如luo_rc所述,最好不要设置默认目录为/,使用建议使用mount --bind来挂载需要的目录。
最后重启服务:   service  vsftpd restart

ftp服务器安装不懂可以参考以下链接:

https://www.oschina.net/question/723831_223753

https://www.cnblogs.com/changbin/p/5830395.html



原文地址:https://www.cnblogs.com/huanglinxin/p/8781994.html