linux架设vsftp服务器的过程

2020-03-03    来源:爱站科技

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

大家在学习服务器的时候是不是都会好奇linux架设vsftp服务器的过程是怎样的呢?那么今天爱站小编就将为大家揭晓linux架设vsftp服务器的全过程,希望对大家有所帮助。

1.首先我们还是查看是否安装了 rpm qa|grep vsftpd
如果没安装请在这里下载ftp://vsftpd.beasts.org/users/cevans/
2.我们去这里下载最新版本2.01,并把它下ftp://vsftpd.beasts.org/users/cevans/
3.然后我们需要把它解开[root@zy jishu]# tar zxvf vsftpd-2.01 ,jishu是我建立的用户 目录是/home/jishu
大家看清是在/home/jishu 目录下进行解压的 呵呵,顺便说一下 tar zcvf 就是压缩 大家可以自己试着把一个文件压缩成tar的格式
4.[root@zy jishu]#cd vsftpd -2.0.1 解开后我们进入相应的目录
[root@zy jishu]#./configure 版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。---- 如果检查过程中,发现有错误,configure将给予提示,并停止检查。你可以跟据提示对系统进行配置。再重新执行该程序。检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机的性能的不同,所耗费的时间也不同:
5.在这里我补充一点linux安装和卸载软件的方法
 Linux软件的安装和卸载一直是困惑许多初学者的难题。由于Linux与Windows在系统目录结构,系统配置方式等诸多方面的重大差异,使这两者的软件安装卸载的方式也截然不同。在Windows中使用的是控制面板中的"添加/删除程序";与其相类似,在Linux下有一个功能强大的软件
安装卸载工具,名为RPM。其全名为"Red Hat Package Manager"。它可以用来建立、安装、查询、更新、卸载软件。该工具是在命令行下使用的。在Shell的提示符后输入rpm,就可获得该命令的帮助信息。 软件的安装
   Linux下软件的安装主要有两种不同的形式。第一种安装文件名为filename.tar.gz。另一种安装文件名为filename.i386.rpm。以第一种方式发行的软件多为以源码形式发送的。第二种方式则是直接以二进制形式发行的。i386即表示该软件是按Inter 386指令集编译生成的。
  对于第一种,安装方法如下:
  首先,将安装文件拷贝至你的目录中。例如,如果你是以root身份登录上的,就将软件拷贝至/root中。
  #cp filename.tar.gz /root
  由于该文件是被压缩并打包的,所以,应对其解压缩。命令为:
   #tar xvzf filename.tar.gz
  执行该命令后,安装文件按路径,解压缩在当前目录下。用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有名
为"INSTALL"的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。
   对于多数需要编译的软件,其安装的方法大体相同。执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为:
  #./configure
  如果检查过程中,发现有错误,configure将给予提示,并停止检查。你可以跟据提示对系统进行配置。再重新执行该程序。检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机的性能的不同,所耗费的时间也不同。命令为:
  #make  #make install
  安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:
  #make clean
  至此,软件的安装结束。
  对于第二种,其安装方法要简单的多。    同第一种方式一样,将安装文件拷贝至你的目录中。然后使用rpm来安装该文件。命令如下:
  #rpm -i filename.i386.rpm
   rpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm的数据库中。参数i的作用是使rpm进入安装模式。 另外,还有一些Linux平台下的商业软件。在其安装文件中,有Setup安装程序,其安装方法同Windows平台下的一样。如:Corel WordPerfect。
  软件的卸载
   软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:
  #rpm -qa
  即可查询到当前系统中安装的所有的软件包。参数q的作用是使rpm进入查询命令模式。参数a是查询模式的子参数,意为全部(ALL)。查询到的信息较多,可使用less人屏显示。
  确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令:
  #rpm -e
  即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载
#rpm -e -nodeps 忽略依赖关系的卸载可能会导致系统中其它的一此软件无法使用。你可以使用
#rpm -e -test
  使rpm进行一次卸载预演,而不是真正卸载。这样可以使你检查一下软件是否存在有依赖关系。卸载过程中是否有错误。
6.[root@zy vsftpd -2.0.1]#make ,使其生成二进制数据
7.[root@zy vsftpd -2.0.1]#make INSTALL安装的命令,安装生成的二进制数据 相当于运行windows下的exe文件
7.[root@zy vsftpd -2.0.1]#which vsftpd 查看vsftpd装到那里了
8.现在服务器已经装好了,现在我们要去修改配置文件了
[root@zy vsftpd -2.0.1]#more install 我们可以看看安装帮助
看看应该如何配置,一般安装都要注意看看如何配置文档
我们首先要把主配置文件copy到/etc目录下
[root@zy vsftpd -2.0.1]#cp vsftpd.conf /etc
[root@zy etc]#cp RedHat/vsftpd.pam /etc/pam.d/ftp ,这个cp是为了ftp认证用的,即用户登录的时候是需要通过pm.d 这个认证的
呵呵,大家多研究下 more INSTALL 里面好多内容都是教我们如何架设一个成功的vsftpd的服务器的
[root@zy etc#vi vsftpd.conf
我们需要在最后加入一句listen=YES ,这样做的原因是让服务器独立的运行,让服务器自己监听,wq 保存并退出
[root@zy vsftpd -2.0.1]#mkdir /var/ftp 创建匿名登录用户目录
[root@zy vsftpd -2.0.1]#chown root.root /var/ftp 将目录所有者改为root,组也改为root
[root@zy vsftpd -2.0.1]#chmod og-w /var/ftp 权限设定为其他用户和root组的人不能写入,只能读和进入
[root@zy vsftpd -2.0.1]#finger ftp 确认一下匿名用户
[root@zy vsftpd -2.0.1]#/usr/local/sbin/vsftpd & 为了让服务器启动的时候,我们来控制,我们加一个& 符号,这样服务器启动的时候就在后台运行了。could not bind listening IPv4 socket?
只要在/etc/xinetd.d/vsftpd文件中,把disable=no改成YES就行!
还有就是在/etc/vsftpd.conf文件添加listen=yes这样就改成了STANDALONE独立模式!
因为xinetd已经启动了vsftpd,而vsftpd设置成了stardalone模式,所以,先停止xinetd服务, service xinetd stop ,然后
/usr/local/sbin/vsftpd &启动ftp服务
[root@zy vsftpd -2.0.1]#netstat -tnl 我们检查下看有没有开一个端口为21的地址,如果有ok,如果没查看下是那个进程在使用21端口,用kill -9 进程pid 删除该进程
[root@zy vsftpd -2.0.1]#ftp localhost 我们测试下链接下自己,、它会让你输入用户名和密码,我们尝试用anonymous 密码为空,发现现在已经登录成功了 ,
[root@zy vsftpd -2.0.1]#vi /etc/rc.local 为了让ftp服务器开机自动启动,我们需要把它写入/etc/rc.local目录下
我们在该文件最后写入 /usr/local/sbin/vsftpd &
wq 保存退出
9.前面已经把vsftpd服务器,架设起来了,我们最好从新启动下服务器,看看是否开机会自动启vsftp
10.前面装好的服务器会默认在[root@zy root]#ls /usr/local/sbin/ 下创建vsftpd守护进程,同时也在 [root@zy root]#ls /etc/xinetd.d/vsftpd 也放了一个vsftpd的启动脚本 所以服务器可以用两种方式启动,但我们希望它独立运行,所以我们要关闭这个启动,[root@zy root]#chkconfig --list vsftpd
[root@zy root]#chkconfig vsftpd off
[root@zy root]#chkconfig --list vsftpd
[root@zy root]#netstat -tnl 查看21端口是否被占用着,如果被占用就要杀死该进程
[root@zy root]#ps -aux |grep ftp
[root@zy root]#kill -9 进程pid号
[root@zy root]#/etc/rc.local 执行rc.local下的sbin命令
[root@zy root]#netstat -tnl 再次查看端口
3.[root@zy root]#vi /etc/vsftpd.conf 修改服务器的配置文件
我们首先来解释下vsftpd.conf配置下的几个常见命令
anonymous_enable=YES 允许匿名用户登录 注释掉即去掉#
local_enable=YES 允许本地用户登录 去掉#
write_enable=YES 允许本地用户写入 去掉#
local_umask=022 本地用户新文件的umask值 去掉#
abon_upload_enable=YES 允许匿名用户上传文件 去掉#
anon_mkdir_write_enable=YES 允许匿名用户创建目录 不要管它
dirmessage_enable=YES 允许使用目录信息 去掉#
ftpd_banner=welcome to zy ftp server 登录欢迎词 去掉#
ls_recurse_enable=YES 允许客户端使用ls-r 命令 不管
listen=YES 监听模式 在结尾加入此句 wq保存退出
[root@zy root]#killall -9 vsftpd 现在我们的服务器是独立运行的我们需要把它杀死掉
[root@zy root]# /usr/local/sbin/vsftpd & 从新启动vsftpd
[root@zy root]#useradd redhat 创建一个用户
[root@zy root]#passwd redhat 为它设上密码
[root@zy root]#ftp 192.168.1.144 登录自己的ftp服务器
输入用户名redhat 密码
ftp>pwd 查看当前的目录/home/redhat
ftp>help 查看所有可使用的命令
ftp>put /etc/services ftpservices 将/etc/services 上传到ftp服务器上
ftp>ls 查看ftp服务器的目录
ftp>quit 退出ftp服务器
然后我们仿照上面用匿名用户上传文章试一下,结果我们会发现不成功的关键原因就是匿名用户的目录是/var/ftp ,而这个目录不属于匿名用户
[root@zy root]#cd /var/ftp/
[root@zy ftp]#mkdir /var/ftp/shangchuan 创建一个新的目录
[root@zy ftp]#chmod g+w shangchuan/ 让组可写
[root@zy root]#chgrp ftp shangchuan/ 把目录交给组ftp
这样我们就可以用匿名用户创建目录了
ftp>cd shangchuan 进入上传目录
然后就可以上传文章了
然后我们来体验下vsftp的另一个安全性,锁定用户目录
首先我们用redhat用户登录ftp
ftp>pwd 当前的目录/home/redhat
ftp>cd /etc 将会显示更改成功目录
ok 退出ftp quit
然后修改[root@zy root]#vi /etc/vsftpd.conf
将chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list 将这两行注释掉
[root@zy root]#vi /etc/vsftpd.chroot_list
redhat 将这个用户名写入进去,wq
然后我们再次登录ftp服务器
这次用redhat用户登录
ftp>pwd 这次将显示的是 / 目录其实是用户已经被锁定目录了
ftp>cd /etc 将会显示更改目录失败的提示了
11.如果我们要控制用户访问ftp服务器
[root@zy root]#vi /etc/ftpuesrs
redhat
zy
wq 保存退出 这样默认情况下这两个用户 redhat和zy就不能访问ftp服务器,etc/ftpuesrs 是一个ftp服务器的黑名单
刚刚我们用redhat登录成功,现在我们把redhat加进ftpusers中
[root@zy root]# echo "redhat" >> /etc/ftpusers
再次登录就会发现登录失败。
[root@zy root]#vi /etc/passwd 对于系统的敏感用户,即passwd目录下 uid 500 以下的人 这些一般是被系统保留的人,我们应该通通把他们加入 /etc/ftpusers 中,这样做很麻烦
但我们可以反过来只允许指定人访问ftp服务器,而其他人被拒绝
[root@zy root]#cp RedHat/vsftpd.pam /etc/pam.d/ftp 这个第三课有说明大家看一下
[root@zy root]#more /etc/pam.d/ftp 这些用户本质上能登录是被pam.d文件控制了
我们只需要对pam.d/ftp 文件进行更改就可以了
[root@zy root]#vi /etc/pam.d/ftp 将里面默认拒绝的命令sense = deny 换成 sense=allow 这样就只有redhat 和 zy 用户可以登录ftp服务器了
12.为了安全期间,我们不想ftp用户是系统用户,所以我们就要建立一个虚拟的ftp用户,要保证系统确实没有的用户,如tom
首先我们编辑一个users.txt ,[root@zy root]#vi users.txt
里面输入用户 tom
密码 123 《用户和密码不要输进去,第一行是用户tom,第二行是密码123》
[root@zy root]#id tom 确认一下 tom用户不存在
[root@zy root]#db_load -T -t hash -f users.txt /etc/vsftpd_login.db 解释一下 -T 就是将简单txt文件写入db 数据库的命令 -t 是指写入的类型为hash ,-f就是文件名 ,/etc/vsftpd_login.db 这是指文件写入到的位置
[root@zy root]#chmod 600 /etc/vsftpd_login.db 将这个文件的权限改为600
[root@zy root]#vi /etc/pam.d/ftp 修改pam.d的服务文件
首先我们要把以前的注释掉 ,在所有的前面加# 注释掉
然后我们添上两句话
auth required pam_userdb.so db=/etc/vsftpd_login.db
account required pam_userdb.so db=/etc/vsftpd_login.db
auth 是认证,其中required 是一种控制方式 我们使用pam_user.db.so这个模块 并且加载一个db=/etc/vsftpd_login.db
account 是指类型为
[root@zy root]# useradd vuser 建立一个虚拟帐户用来映射的,这个用户是不用设密码的
[root@zy root]#vi /etc/vsftpd.conf 编辑服务器的配置
我们要禁用掉所有的anon开头的命令,禁止匿名用户登录 然后
我们要加入两条命令 guest_enable=YES
guest_username=vuser
wq保存退出
然后我们实验下用redhat登录下结果反应是登录失败de
ftp>user 我们用虚拟user登录
(username)tom
密码输入 123
进去了 ok
我们可以下个文件看看ftp》get .bashrc 下载成功 ls但是我们却不能看到 quit退出
[root@zy root]#cp install.log /home/vuser/ 复制install.log
[root@zy root]#chmod o+r /home/vuser/ 改变目录为其他人可读
从新用tom登录我们就可以看到install.log了
特别注意,每次对/etc/vsftpd.conf文件做一次修改都要从新启动一次服务器用这个命令可以代替[root@zy root]#killall -HUP vsftpd

上文中小编介绍了linux架设vsftp服务器的过程,咱只学最最实用的。如果你也有同样的小技巧,就拿出来大家一起分享吧。

标签: Linux vsftp服务器

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:关于Linux下开放与关闭端口

下一篇:Linux下Sendmail慢卡怎么办