使用FTP服务
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服务的更多相关文章
- centos下开启ftp服务
如果要ftp访问linux需要安装ftp服务,vsftpd是Linux下比较好的的FTP服务器. 一.检查安装vsftp //检查是否安装vsftpd rpm -qa | grep vsftpd // ...
- 关于linux服务器上搭建ftp服务的流程
小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...
- mac下打开FTP服务
MAC下打开FTP服务 周银辉 mac下一般用smb服务来进行远程文件访问,但要用FTP的话,高版本的mac os默认关掉了,可以用如下命令打开: sudo -s launchctl load -w ...
- 除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止
ftp站点就建成了,试下启动,右击站点,"管理ftp站点"-"启动".如果启动不了,出现“除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法 ...
- ftp服务配置文件记录
因为南京的客户死活要ftp服务而不是sftp,所以我作手用vsftp作为服务器,尝试在windows ftp软件登录进去,特记录vsftp的用法. 配置文件在/etc/vsftpd.conf 有如下代 ...
- CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FT ...
- 5. 网络配置与FTP服务笔记
IP地址: Ipv4 2*32 Ipv6 tcp 网络通讯协议 udp 用户数据报协议 常见网络端口: 20 21 ftp服务 文件共享 22 ...
- win7配置ftp服务
1.首先开启ftp服务 2.配置ftp站点 3.让ftp服务器通过防火墙 4.编辑ftp访问权限,使用户能通过账号密码访问ftp,当然,在此之前,需要创建一个新的用户 到此,就可以远程访问ftp了
- Linux安装FTP服务
转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1. 在Linux和其他机器之间共享文件(在linux下安装ft ...
- ftpget 从Windows FTP服务端获取文件
/********************************************************************************* * ftpget 从Windows ...
随机推荐
- Python笔记(四)_字符串的方法
字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, en ...
- PAT甲级【2019年9月考题】——A1163 PostfixExpression【25】
7-3 Postfix Expression (25 分) Given a syntax tree (binary), you are supposed to output the correspon ...
- QTP——改变Excel的单元格颜色
Public Function QTP_Change_Color(pathway,sheetname,x,y,color) Dim srcData,srcDoc,sp1,sp2,num, ...
- UVA10271_Chopsticks
Chopsticks 大致就是有一堆筷子,知道了他们的长度,现在选长度为abc的三个筷子a<=b<=c为一对筷子,质量为(a-b)平方,现在选k双这样的筷子,求质量最小 思路: 第一次看到 ...
- Java程序的设计环境配置
一.下载主要的开发工具 JDK的下载 www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Ecli ...
- python RBAC权限控制模型扩展 基于JWT实现
jwt,全称 json web token,是使用一定的加密规则生成的token串来保证登录状态.验证用户身份.做权限认证等工作 以往保存用户登录状态多用session实现,但是当服务涉及多台服务器分 ...
- 重读ORB_SLAM之Tracking线程难点
1. 初始化 当获取第一帧图像与深度图后,首先设置第一帧位姿为4*4单位矩阵,然后为整个map添加关键帧与地图点.且更新地图点与关键帧的联系,例如地图点被哪个关键帧观测到,而此关键帧又包含哪些地图点. ...
- 使用extract-text-webpack-plugin处理css文件路径问题
首先看到我们的文件夹目录如下: webpack.config.js //解析分离cssconst ExtractTextPlugin = require('extract-text-webpack-p ...
- IntelliJ Idea 环境搭建
安装IntelliJ Idea 可以去官网下载: https://www.jetbrains.com/idea/download/#section=windows 选择Ultimate.一路下一步安装 ...
- 常用的kubectl命令
本文主要介绍kubernetes排查问题时经常用到的命令.这里主要借助kubectl命令来实现.以下列出常用命令,后面会对每个命令进行详细解释,并举例: kubectl核心命令 get 获取列出一个 ...