ftp 占用20   21两个端口

安装vsftpd程序

键入命令    yum install vsftpd -y

清空默认的防火墙默认规则:

[root@linuxprobe ~]# iptables -F

保存清空后的防火墙规则表:

[root@linuxprobe ~]# service iptables save

分析ftp的主配置文件

主配置文件长达123行,但大部分是以#号开始的,这些都是注释信息,我们可以过滤掉它们。
备份vsftpd的主配置文件:

[root@linuxprobe
~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:

[root@linuxprobe
~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak >
/etc/vsftpd/vsftpd.conf

此时再分析下vsftpd程序的主配置文件吧:

[root@linuxprobe
~]# cat /etc/vsftpd/vsftpd.conf

安装ftp服务

接下来就是ftp的三种访问模式了   分别是  匿名访问模式   本地用户模式   虚拟用户模式

限免我们一一介绍

匿名访问模式

填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd

在客户端尝试登入FTP服务

上面操作中已经将防火墙规则清空,在vsftpd.conf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?

这里建议读者先不要往下看,思考后用自己的方法解决下这个问题,长期这样你的Linux的排错能力一定会练出来的。

回想前面的参数细节,匿名访问模式的FTP根目录为/var/ftp:

2.本地用户模式

键入命令   vim /etc/vsftpd/vsftpd.conf    更改参数

然后重启vsftpd服务程序并设置为开机自启动

vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:

在客户端尝试登入ftp

3.虚拟用户模式

因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以只要配置妥当虚拟用户模式会比本地用户模式更加安全,但是Vsftpd服务配置虚拟用户模式的操作步骤相对复杂一些,具体流程如下:

第1步:建立虚拟FTP用户数据库文件。

第2步:创建FTP根目录及虚拟用户映射的系统用户。

第3步:建立支持虚拟用户的PAM认证文件。

第4步:在vsftpd.conf文件中添加支持配置。

第5步:为虚拟用户设置不同的权限。

第6步:重启vsftpd服务,验证实验效果。

建立虚拟FTP用户数据库文件。

切换至vsftpd程序目录:   [root@linuxprobe ~]# cd /etc/vsftpd/

创建用于生成FTP用户数据库的原始帐号和密码文件

使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db

查看数据库文件的类型:

[root@linuxprobe vsftpd]# file vuser.db

vuser.db: Berkeley DB (Hash, version 9, native byte-order)

FTP用户数据库内容很敏感,所以权限给小一些:

[root@linuxprobe vsftpd]# chmod 600 vuser.db

删除原始的帐号和密码文件:

[root@linuxprobe vsftpd]# rm -f vuser.list

第2步:创建FTP根目录及虚拟用户映射的系统用户。

创建用户virtual并设置为不允许登陆系统并定义该用户的家目录:

[root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual

查看该用户的家目录权限:

[root@linuxprobe ~]# ls -ld /var/ftproot/

drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/

为保证其他用户可以访问,给予rwxr-xr-x权限:

[root@linuxprobe ~]# chmod -Rf 755 /var/ftproot/

第3步:建立支持虚拟用户的PAM认证文件:

[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu

//参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。

auth       required     pam_userdb.so db=/etc/vsftpd/vuser

account    required     pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd.conf文件中添加支持配置。
既然要使用虚拟用户模式,而虚拟用户模式确实要比匿名访问模式更加的安全,配置的同时也关闭匿名开放模式。

[root@linuxprobe
~]# vim /etc/vsftpd/vsftpd.conf

第5步:为虚拟用户设置不同的权限

指定用户独立的权限配置文件存放的目录:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

创建用户独立的权限配置文件存放的目录:

[root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/

切换进入到该目录中:

[root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/

创建空白的linuxprobe的配置文件:

[root@linuxprobe vusers_dir]# touch linuxprobe

指定blackshield用户的具体权限:

[root@linuxprobe vusers_dir]# vim blackshield

anon_upload_enable=YES

anon_mkdir_write_enable=YES

第6步:重启vsftpd服务,验证实验效果。

然后客户端登入ftp  按照上边的步骤就好了

一个非常严重的问题

查看所有与ftp相关的SELinux规则:

[root@linuxprobe ~]# getsebool -a | grep ftp

设置SELinux对FTP服务的规则为允许:

[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

此时再来创建文件或目录就没有问题了:

[root@linuxprobe ~]# ftp 192.168.10.10

Connected to 192.168.10.10 (192.168.10.10).

220 (vsFTPd 3.0.2)

Name (192.168.10.10:root): blackshield

331 Please specify the password.

Password:此处输入虚拟用户的密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>mkdir files

257 "/files" created

ftp>rename files database

350 Ready for RNTO.

250 Rename successful.

ftp>rmdir database

250 Remove directory operation successful.

ftp>exit

221 Goodbye.

我们只需要这样操作就好了

使用FTP服务的更多相关文章

  1. centos下开启ftp服务

    如果要ftp访问linux需要安装ftp服务,vsftpd是Linux下比较好的的FTP服务器. 一.检查安装vsftp //检查是否安装vsftpd rpm -qa | grep vsftpd // ...

  2. 关于linux服务器上搭建ftp服务的流程

    小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...

  3. mac下打开FTP服务

    MAC下打开FTP服务 周银辉 mac下一般用smb服务来进行远程文件访问,但要用FTP的话,高版本的mac os默认关掉了,可以用如下命令打开: sudo -s launchctl load -w ...

  4. 除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止

    ftp站点就建成了,试下启动,右击站点,"管理ftp站点"-"启动".如果启动不了,出现“除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法 ...

  5. ftp服务配置文件记录

    因为南京的客户死活要ftp服务而不是sftp,所以我作手用vsftp作为服务器,尝试在windows ftp软件登录进去,特记录vsftp的用法. 配置文件在/etc/vsftpd.conf 有如下代 ...

  6. CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FT ...

  7. 5. 网络配置与FTP服务笔记

    IP地址: Ipv4        2*32       Ipv6 tcp      网络通讯协议 udp    用户数据报协议 常见网络端口: 20  21      ftp服务 文件共享 22   ...

  8. win7配置ftp服务

    1.首先开启ftp服务 2.配置ftp站点 3.让ftp服务器通过防火墙 4.编辑ftp访问权限,使用户能通过账号密码访问ftp,当然,在此之前,需要创建一个新的用户 到此,就可以远程访问ftp了

  9. Linux安装FTP服务

    转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1.  在Linux和其他机器之间共享文件(在linux下安装ft ...

  10. ftpget 从Windows FTP服务端获取文件

    /********************************************************************************* * ftpget 从Windows ...

随机推荐

  1. Note1

    1.关于数据库主从备份与读写分离 主服务器数据库的每次操作都会记录在二进制日志文件mysql-bin.xxx中.从服务器的I/O线程使用专用帐号登陆到主服务器中读取该二进制文件,并将文件内容写入到自己 ...

  2. java 异常处理try+catch

    在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃.为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式 ...

  3. l1和l2正则化

    https://blog.csdn.net/tianguiyuyu/article/details/80438630 以上是莫烦对L1和L2的理解 l2正则:权重的平方和,也就是一个圆 l1正则:权重 ...

  4. 搭建 webpack、react 开发环境(三)

    配置 react-router-dom   我们开发一个 React 工程肯定不是一两个“页面”就可以满足需求的,所以我们需要一个在多个“页面”中跳转的功能,在使用 React 构建的单页面应用中,要 ...

  5. HDFS文件的基本操作

    HDFS文件的基本操作: package wjn; import java.io.BufferedInputStream; import java.io.BufferedReader; import ...

  6. MVC使用Area:CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)

    一,如图: 解决方法是:将区域生成的的文件夹下的web.config中的using System.Web.Optimization删掉 如下,Area文件目录找到Web.config Web.conf ...

  7. Xcode开发时碰到的问题

    1.打包成功后,发布到蒲公英上,显示"未签名,只能越狱手机可以安装". 出现这个问题,是因为打包的时候签名没有获取到.下面是配置签名的大概步骤. 打包的时候需要点击左上角选择这个设 ...

  8. Vue小白篇 -Vue 的模板语法

    可以插入任何你想插入的内容,除了 if-else if-else用三元运算符代替 <div id="box"> <!--模板语法--> <h2> ...

  9. dlib 基于摄像流检测眨眼次数

    眼睛纵横比(EAR) 在讨论EAR之前,先看看68个人脸特征点:  人脸特征点检测本身的算法是很复杂的,dlib中给出了相关的实现. 每只眼睛由6个(x,y)坐标表示,从眼睛的左角开始,然后围绕该区域 ...

  10. YUV/RGB与H264之间的编解码

    1.源码下载 http://download.videolan.org/x264/snapshots/ 2.编译 ./configure --prefix=./_install --enable-sh ...