兔子先生

[[424234]]

FTP 是 File Transfer Protocol 的缩写,即文献传输公约,它通过鸠合在处事器和客户端之间传输文献,咫尺照旧成为一种等闲使用的圭臬器具

vsftpd 是 very secure ftp daemon 的缩写,它是 Linux 上使用最受宽容、使用最等闲的 FTP 处事器之一,它具有安全,速率快,踏实的秉性,许多紧迫的 FTP 站点比如 ftp.gnu.org、ftp.freebsd.org 皆是使用 vsftpd 作为处事器的

现时,FTP处事在平方责任中使用得也挺多,每次处事器版块更新皆需要先打包,然后上传到线上的FTP处事器上,再从FTP处事器凹凸载处事器包到线上机器,进行MD5校验,然后就不错更新线上处事器了

证明

在安设 vsftpd 之前,有几个紧迫的场地需要证明下

责任方式

处事器使用两个端口和客户端通讯,一个是敕令端口,也叫胁制端口,默许是 21, 用于敕令的传输 ,一个是数据端口,默许是 20 ,用于数据的传输

主动方式

客户端向FTP处事器发送端口信息,由处事器主动筹划该端口

经由:客户端和FTP处事器的敕令端口(21)培植TCP筹划,当需要传输数据时,客户端新启动一个用于数据传输的端口,并在敕令端口的筹划上用 PORT 敕令告诉处事器该端标语,处事器与该端口培植TCP筹划,筹划顺利之后,客户端运行传输数据

被迫方式

FTP处事器开启并发送端口信息给客户端,由客户端筹划该端口,处事器被迫领受筹划

经由:客户端和FTP处事器的敕令端口(21)培植TCP筹划,当需要传输数据时,处事器侦听一个用于数据传输的端口,并在敕令端口的筹划上用 PASV 敕令告诉客户端该端标语,客户端与该端口培植TCP筹划,筹划顺利之后,客户端运行传输数据

提议:

1、大多半FTP客户端皆在局域网中,莫得孤苦的公网IP地址,且有防火墙粉碎,主动方式下FTP处事器顺利筹划到客户端详比穷困。因此,如无特殊需求,皆是将FTP处事器成就为被迫方式,本文后头的FTP处事器成就亦然以被迫方式为例的

2、被迫方式下,敕令端口和数据端口皆是在FTP处事器端开启,也皆不错通过启动成就来修改,由于默许的端口是公开的,安全性低,是以本色安设的技能皆会修改默许端口

用户认证方式 匿名用户方式

任何东谈主无需密码考证就不错径直登录到FTP处事器。这种方式最不安全,一般只用来保存不紧迫的公开文献,不推选在出产环境中使用

土产货用户方式

通过Linux系统土产货账号进行考证的方式,相较于匿名用户方式更安全。

虚构用户方式

FTP处事器的特地用户。虚构用户只可造访Linux系统为其提供的FTP处事,而不成造访Linux系统的其它资源,进一步增强了FTP处事器的安全性。

匿名用户方式一般用于不紧迫的于公开文献,而况只提供下载处事,也便是说,用户只可下载,不成有其他操作,土产货用户方式通过成就锁定目次、修改敕令端口和数据端口 不错进一步增强安全性,本文后头的成就是以该方式为例的

安设

安设前不错使用底下的敕令检查是否已安设

vsftpd  兔子先生-v 

如果未安设会有如下领导

[root@localhost ~]$ vsftpd -v -bash: vsftpd: 未找到敕令 

安设 vsftpd

yum install vsftpd 

安设完成后,实验 vsftpd -v 敕令,如果输出书本号,暗示安设顺利

[root@localhost ~]# vsftpd -v vsftpd: version 3.0.2 
成就处事器

安设完成之后,默许的成就位于 /etc/vsftpd/vsftpd.conf, 如果找不到默许成就在那儿,不错使用底下的敕令查找下,其中 /etc/vsftpd 目次便是存放成就的场地

[root@localhost ~]# whereis vsftpd  vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz 

成就的模样相对粗略,每一滑皆是考究或者选项,考究以 # 号着手,选项的模样是 option=value 的体式,每个选项占一滑,option、= 以及 value 之间不允许出现空格

vsftpd 对每个成就的选项皆培植了一个默许值,处事器启动之后,在 vsftpd.conf 中成就的选项会粉饰处事器中的默许值

vsftpd 可成就的选项许多,底下按照类别把常用的成就项分红了 造访权限、锁定造访目次、步伐用户登录、修改端口、日记成就、其他成就 几组, 每个成就项前皆增多了详备的证明

成就项分组主如果为了转头证明每一构成就项的作用,本色成就的过程中,把所有这个词组的成就项添加到 vsftp.conf 中即可

造访权限
#是否允许匿名登录,默许允许,如果允许,用户名 ftp 和 anonymous 皆会被手脚念匿名登录 #为了安全,一般不允许匿名登录 anonymous_enable=NO  #是否允许匿名上传,默许不允许,如果允许 write_enable 选项需要培植为 YES #为了安全,一般不允许 anon_upload_enable=NO  #是否允许土产货用户登录,默许不允许,如果允许,在 ``` /etc/passwd``` 中的用户皆不错登录 FTP 处事器 #如果不予许匿名登录的话,这个选项需要培植为允许 local_enable=YES  #是否允许在FTP处事器上写入, 默许不允许,如果有上传文献、删除文献等需求,柬埔寨修车群一般皆是开启的 write_enable=YES  #培植写入处事器文献的权限掩码值,如果值是八进制需要以 0 着手,不然会手脚十进制 #值为 022,能餍足大部分FTP的需求 local_umask=022 
锁定造访目次
#默许为 NO, 如果培植为 YES,暗示用户通过FTP客户端登录之后 #只可在FTP处事器指定的目次中,不允许切出目次, chroot_local_user=YES  #用户名插入到土产货 FTP 主目次中 user_sub_token=$USER  #界说用户 FTP 主目次,用户登录顺利之后,vsftpd 处事器会切换到此目次, #此时 FTP 客户端会位于此目次中,后续的上传以及下载皆是针对这个目次的 local_root=/home/$USER/ftp 

把登录的用户锁定在指定的目次中,幸免用户造访不应该造访的目次,这里咱们培植成只允许造访我方的 home 目次中的 ftp 目次,举例:新添加一个用户 testuser 有益用于上传下载, testuser 通过 FTP 客户端顺利登录后,会自动切换到 /home/testuser/ftp 目次,而况不允许切出该目次

正经:用户上传和下载皆是在步伐的目次中,是以一般皆是把锁定目次培植到剩余空间相比大的磁盘中

步伐用户登录
#如果培植为 YES ,vsftpd 将会从 userlist_file 选项指定的文献读取用户列表 userlist_enable=YES  #培植用户列表成就文献, 如果 /etc/vsftpd/user_list 不存在需要手工创建 userlist_file=/etc/vsftpd/user_list  #此选项检查 userlist_enable 选项,当 userlist_enable 为 YES 时 #如果 userlist_deny 培植为 NO , 暗示只允许 userlist_file 中的用户登录 #如果 userlist_deny 培植为 YES, 暗示辞谢 userlist_file 中的用户登录,允许其他用户登录 userlist_deny=NO 
修改端口
#如果启用,vsftpd 将在孤苦方式下运行,vsftpd 本人将进展侦听和处治传入的筹划 listen=NO  # 跟 listen 选型肖似,然而此选项是侦听在 IPV6 上的 socket # 而 listen 是 IPV4, 此选项和 listen 是互斥的,不成同期培植为 YES listen_ipv6=YES  #处事器侦听端口,亦然敕令端口, 默许是21,修改之后, 防火墙需要作念相应的诊治 #同期 FTP 客户端登录的技能需要指定端标语 #为了增强安全性,成就的技能一般皆会修改 listen_port=48888  #开启被迫方式 pasv_enable=YES #被迫方式下,处事器的地址,默许是内网地址 #如果在云处事器上部署,需要修改成公网IP pasv_address=192.168.70.20  #培植被迫方式下,培植数据传输可使用的端口范围的最小值。 #提议把端口范围培植在一段相比高的范围内,举例50000~50010,有助于提升造访FTP处事器的安全性 pasv_min_port=50000  #培植被迫方式下,培植数据传输可使用的端口范围的最大值 pasv_max_port=50010 
日记成就
#是否纪录上传下载日记,默许是不纪录,如果培植为纪录 #默许日记文献位于 /var/log/vsftpd.log, 如果成就了 vsftpd_log_file 选项,会粉饰默许日记文献 xferlog_enable=YES  #纪录上传下载的日记 xferlog_file=/var/log/xferlog  #是否按照圭臬模样纪录日记 xferlog_std_format=YES 
其他成就
# vsftpd 使用的 PAM 处事名字 pam_service_name=vsftpd # tcp_wrappers=YES 

这两个成就使用默许生成的选项即可,无用作念任何修改

培植防火墙

如果你部署的FTP处事器的机器上防火墙是关闭景色的话,不错跳过此才气,或者你不思培植防火墙的话,不错通过 systemctl stop firewalld 敕令关闭防火墙,这么也不错忽略此才气

上头成就中处事器侦听端口(也叫敕令端口) listen_port 选项培植的是 48888,数据端口的范围是 50000-50010, 是以防火墙需要怒放这些端口,实验以下敕令即可培植

[root@localhost ~]# firewall-cmd --zone=public --add-port=48888/tcp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=50000-50010/tcp --permanent success 

防火墙培植好以后,实验底下的敕令重启防火墙处事

[root@localhost ~]# systemctl restart firewalld 

终末,稽查下端口是否顺利怒放

[root@localhost ~]# firewall-cmd --list-port          50000-50010/tcp 48888/tcp 

从效果不错看出,防火墙照旧怒放了 48888、50000-50099 端口

启动处事器

成就完 /etc/vsftpd/vsftpd.conf ,培植好防火墙之后,实验底下的敕令启动处事器

systemctl start vsftpd

启动之后,查询处事器景色,证明处事器是否启动顺利

[root@localhost ~]# systemctl status vsftpd                     ● vsftpd.service - Vsftpd ftp daemon    Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)    Active: active (running) since Fri 2021-09-1 20:21:00 CST; 3 days ago  Main PID: 94916 (vsftpd)    CGroup: /system.slice/vsftpd.service            └─94916 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf  Sep 1 20:21:00 localhost systemd[1]: Starting Vsftpd ftp daemon... Sep 1 20:21:00 localhost systemd[1]: Started Vsftpd ftp daemon. 

将处事器培植成开机启动

systemctl enable vsftpd 

底下的敕令不错证明处事器的敕令端口是否开启( 成就的是 : 48888 )

[root@localhost ~]# netstat -antup | grep vsftpd tcp6       0      0 :::48888                :::*                    LISTEN      20501/vsftpd         [root@localhost ~]# 
新建FTP用户

新建用户 mytest, 并培植密码

[root@localhost ~]# useradd mytest [root@localhost ~]# passwd mytest 

新建 FTP 目次,并修改目次权限

[root@cghost21 home]# mkdir -p /home/mytest/ftp/files [root@cghost21 home]# chmod -R 500 /home/mytest/ [root@cghost21 home]# chmod -R 700 /home/mytest/ftp/files 

正经:/home/mytest/ftp 是 mytest 用户的锁定目次,mytest 登录之后,只可呆在此目次以及此目次的子目次中,不允许切换到其他目次

"/home/mytest/ftp/files" 目次是本色的上传下载的目次,是以需要有可读写和可实验权限

终末,还需要把用户名加入到FTP处事器允许登录的用户列表中,也即 /etc/vsftpd/vsftpd.conf 中 userlist_file 选项对应的文献 /etc/vsftpd/user_list中,如果 user_list 不存在,需要手工创建并把 mytest添加进去

测试

处事器一齐搭建好之后,需要进行测试,这里我准备的 FTP处事器的IP是 192.168.70.20, FTP客户端机器的IP是 192.168.70.11

插足FTP处事器的 /home/mytest/ftp/files 目次, 新建一个 a.txt 测试文献

[root@localhost files]# pwd /home/mytest/ftp/files [root@localhost files]# echo "ftp server..." >> a.txt [root@localhost files]# 

插足FTP客户端机器的 /home/wl/temp目次,新建一个 test.txt 测试文献

[root@localhost temp]# echo "ftp test..." >> test.txt [root@localhost temp]# cat test.txt  ftp test... 

测试上传下载需在FTP客户端机器上安设 FTP 客户端, 实验以下敕令进行安设,如已安设,可忽略

yum install ftp 

实验底下一系列的敕令,进行测试

1、登录FTP处事器敕令,模样:ftp 处事器ID 敕令端口  2、输入登委派户名  3、输入登录密码  4、登录顺利之后,此时位于FTP处事器的 /home/mytest/ftp 目次中,实验 ls 敕令之后,  效果浮现现时目次还有一个 files 的子目次  5、实验 pwd 敕令稽查现时所在目次,FTP处事器上的 /home/mytest/ftp 目次便是 FTP 的根目次  6、实验 cd files 敕令插足 files 目次,也即FTP处事器上的 /home/mytest/ftp/files 目次,  然后实验 ls 敕令稽查现时目次的文献,不错看到 FTP处事器上的测试文献 a.txt  7、实验 put test.txt 敕令,把FTP客户端机器上现时目次( /home/wl/temp ) 中的 test.txt 文献  上传到处事器的 /home/mytest/ftp/files 目次中  8、实验 get a.txt 敕令,把FTP处事器上的 /home/mytest/ftp/files/a.txt 文献下载到 FTP客户端机器确现时目次( /home/wl/temp ) 中  9、上传下载测试完成之后,实验 exit 敕令,退出 FTP 敕令行  10、终末实验 cat a.txt 敕令稽查从 FTP处事器凹凸载的测试文献的内容,从效果不错看出,和处事器上的测试文献内容是同样的 
小结

本文先容了 Linux 下FTP处事器 vsftpd 的安设、成就、测试等所有这个词这个词才气以及正经事项,文中仅仅对 vsftpd 的常用成就项作念了证明,更多的成就项请参考官网文档

 






Powered by 柬埔寨修车群 @2013-2022 RSS地图 HTML地图

Copyright Powered by365建站 © 2013-2025