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. Objective-C Properties 详解

    关于Objective-C 的property,很多iOS开发的新手都会很迷惑,也会包括有经验的iOS开发程序员, 因为Objective-C的property,说多不多,说少却也不少,从MRR(Ma ...

  2. 面试题30:包含min函数的栈

      思路: 1.首先将栈的基本结构写出 #初始化栈的写法 def __init__(self): self.stack = [] #栈的压入 (加self是实例化,如果前面加入静态装饰器啥的,就不需要 ...

  3. 关于Ext4 extraParams 不能传递动态参数的问题解决办法

    可以监听请求发送之前的事件:beforeload ,然后再添加请求的参数 me.store = Ext.create('Ext.data.JsonStore', { remoteSort: true, ...

  4. python基本数据类型集合set操作

    转:https://www.cnblogs.com/tina-python/p/5468495.html 一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值 ...

  5. 【数据驱动】python之mysql的操作

    1.准备工作 在本篇中,我们使用python版本为python3.7.在python3中,连接mysql数据库我们需要使用pymysql这个第三方库.我们可以直接使用pip命令来安装,安装的命令为: ...

  6. smb.conf - Samba组件的配置文件

    总览 SYNOPSIS smb.conf是Samba组件的配置文件,包含Samba程序运行时的配置信息.smb.conf被设计成可由swat (8)程序来配置和管理.本文件包含了关于smb.conf的 ...

  7. Linux 下安装sql server 时 2G内存限制的最新(2019-08-15) 解决方案

    关于 sqlserver 在linux下安装时有最小内存限制的问题,网上有很多类似的说明,那些操作都是正确的,如果不成功可能 “姿势”不对. 需要注意的是:不能使用最新版本!!!  不能在线下载!!! ...

  8. 在脚本中使用set命令调试脚本

    当脚本文件较长时,可以使用set命令指定调试一段脚本.在脚本中使用set -x命令开启调式模式:使用set +x命令关闭调式模式. 例如: #!/bin/bash #Scriptname: greet ...

  9. JAVA中的SimpleDateFormat yyyy和YYYY的区别

    最近有一个功能是对输入的日期格式化,设计给出的范例是 YYYY-MM-dd HH:mm:ss,于是我简单验证了一下是可以的,然后就这么在手册里写了.然后偶然发现有地方也用yyyy啊,这个到底有神马区别 ...

  10. STL sort源码剖析

    转载自:http://www.cnblogs.com/imAkaka/articles/2407877.html STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后 ...