ftp文件共享服务详解
文件共享服务,文件的上传下载 跨平台,tcp协议 21号(命令端口) 20号(数据端口,主动模式) 默认情况
vsftpd:软件 非常安全的
rpm -qi vsftpd
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.
主动模式:
被动模式:
验证:
默认是在被动模式下,被动模式和主动模式可以切换
主动:
server client
20 21 n m
<-------------
-------------->
---------------------------------------->
<---------------------------------------
被动:
server client
随机端口 21 n m
3000-3005
<---------------
---------------->
<--------------------------------------------
---------------------------------------------
客户端工具:
windows:firefox、ie、fileZilla
linux:lftp、ftp、sftp
思路:
1、关闭防火墙和selinux
2、配置yum源
3、软件三步曲(安装|确认是否安装成功|查看软件列表)
4、了解配置文件
5、通过需求修改配置文件
6、测试验证
步骤:
1、
2、
3、
rpm -qc vsftpd
/etc/logrotate.d/vsftpd 日志轮转
/etc/pam.d/vsftpd 验证
/etc/vsftpd/ftpusers 用户访问控制列表(黑名单)
/etc/vsftpd/user_list 用户访问控制列表(可黑可白)
/etc/vsftpd/vsftpd.conf 主配置文件
/var/ftp 匿名用户的默认目录
/var/ftp/pub 匿名用户的扩展目录
/usr/sbin/vsftpd 二进制命令
/etc/rc.d/init.d/vsftpd 启动脚本
4、了解配置文件
anon:代表匿名用户
local:代表本地用户
# cat /etc/vsftpd/vsftpd.conf |grep -v ^#
anonymous_enable=YES 开启匿名用户
local_enable=YES 开启本地用户
write_enable=YES 本地用户可写
local_umask=022 ——>755 本地用户的默认权限
dirmessage_enable=YES 开启访问消息
xferlog_enable=YES 启用日志
connect_from_port_20=YES 默认开启20号端口(支持主动和被动模式,默认是被动模式)
xferlog_std_format=YES 日志格式
listen=YES 独立服务
pam_service_name=vsftpd 认证模块
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 支持tcp_wrappers功能
5、不修改配置文件
测试验证
client:192.168.5.2
yum -y install lftp ftp
结果:本地用户可以上传下载文件;匿名用户不可以上传只能下载文件
demo1:允许匿名用户上传文件、创建目录重命名等
1、vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
2、重启服务
注意:
不要把/var/ftp目录的权限修改为777或者o+w,因为会导致报错。
通常的做法是在/var/ftp目录里创建一个子目录,修改子目录的权限为777就可以,匿名用户上传的文件保存到子目录里就可以。
2、匿名用户下载其他匿名用户所上传的文件
vim /etc/vsftpd/vsftpd.conf
anon_umask=022
重启服务
demo2:开启本地用户的消息功能
useradd user01
echo “welcome to uplook” >/home/user01/.message
banner_file=/etc/vsftpd/banner
vim /etc/vsftpd/banner
@@@@@@@@@@@@
@ @
@ ^ ^ @
@ _ @
demo3:将所有本地用户禁锢在自己的家里面
chroot_local_user=YES 所有用户都禁锢
需求1:只允许user01用户来回切换,其他用户禁锢
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
echo user01>/etc/vsftpd/chroot_list
需求2:只禁锢user02用户,其他人都可以切换
#chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
demo4:
ftp服务自身的用户访问控制
ftpusers 黑名单
user_list 可黑可白
echo user01 >ftpusers
# ftp 192.168.5.1
Connected to 192.168.5.1 (192.168.5.1).
220-@@@@@@@@@@@@
220-@ @
220-@ ^ ^ @
220-@ _ @
220
Name (192.168.5.1:root): user01
331 Please specify the password.
Password:
530 Login incorrect. userlist_deny=NO,echo user01>> user_list
Login failed.
ftp>
# ftp 192.168.5.1
Connected to 192.168.5.1 (192.168.5.1).
220 (vsFTPd 2.2.2)
Name (192.168.5.1:root): user01
530 Permission denied. userlist_deny=YES(default) echo user01>>ftpusers
Login failed.
如果ftpusers和user_list文件冲突,拒绝优先。
demo5:更改匿名用户和本地用户的ftp家目录
默认:anon的家 /var/ftp
local的家 /home/$username
# mkdir /ftp/data -p
# mkdir /local/data -p
# vim vsftpd.conf
anon_root=/ftp/data
local_root=/local/data
其他访问控制:
max_clients:允许多少个链接(最大连接数)默认2000
max_per_ip:每个IP地址的最大连接数 默认没有限制
local_max_rate:限制本地用户下载速率,默认没有限制
tcp_wrappers:访问控制的一个工具,类似防火墙,但是其功能没有防火墙强大;配置简单。
/etc/hosts.deny
/etc/hosts.allow
./configure --help --enable-libwrap
rpm
# ldd /usr/sbin/vsftpd |grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f13adcf9000)
# ldd /usr/sbin/sshd|grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f9a0f28e000)
访问控制机制:先去匹配/etc/hosts.allow,再去匹配/etc/hosts.deny;如果两个文件都没有,全部都允许;如果两个文件都存在hosts.allow优先
需求:
vim /etc/hosts.deny
vsftpd,sshd:all 禁止所有人
vsftpd:192.168.5.0/255.255.255.0 EXCEPT 192.168.5.254
vsftpd:all EXCEPT .uplookg.com
vsftpd:192.168.5.1
注意:子网掩码不支持/24/8/16这种写法
练习一:
搭建一个ftp服务器,要求如下:
1、匿名用户可以上传下载文件,同时也可以下载其他人所上传的文件,并且所有匿名用户上传的文件的属主都是root,放在/ftp/data目录里。
mkdir /ftp/data -p
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
chown_uploads=YES
chown_username=root
anon_root=/ftp
重启服务:service vsftpd restart
# chmod o+w /ftp/data
2、创建一个本地用户zhangsan(自己名字),可以访问ftp服务但是不能登录操作系统,并且只能在自己的家里活动。
useradd zhangsan -s /sbin/nologin
chroot_local_user=YES 禁锢所有本地用户
3、zhangsan用户可以上传下载文件,并且所上传的文件都放在/local/data下
mkdir /local/data -p
vim vsftpd.conf
...
local_root=/local/data
4、在你的本地主机/tmp/zhangsan(自己名字)目录下创建5个文件,通过客户端工具以匿名用户身份将整个以你名字命名的目录上传到服务器192.168.5.1上。
mkdir /tmp/zhangsan
touch /tmp/zhangsan/file{1..5}
lftp 192.168.5.1:/> mirror -R /tmp/zhangsan/ data/ 上传本地目录到远端
5、使用客户端工具(除了浏览器)用本地用户redhat(密码123)下载192.168.5.1上的“2016-04-18”目录到你的本地/tmp/zhangsan(自己名字)里
lftp redhat@192.168.5.1:~> mirror /ftp/2016-04-18/ /tmp/zhangsan/ 下载远端到本地
6、不允许192.168.5.2访问你的ftp服务器,但是只允许192.168.5.1访问
vim /etc/hosts.deny
vsftpd:192.168.5.2
vim /etc/hosts.allow
vsftpd:all EXCEPT 192.168.5.2 不生效,和hosts.deny一起使用
7、把被动连接的端口范围控制在2000~2050之间
pasv_enable=YES 可以不写,默认就是被动模式
pasv_max_port=2050
pasv_min_port=2000
练习二:
将vsftpd服务托管给xinetd服务管理
# service xinetd status
xinetd (pid 18628) is running...
创建子配置文件在/etc/xientd.d/vsftpd
# cat vsftpd
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service ftp
{
disable = no
flags = IPv4
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
log_on_failure += USERID
}
vim /etc/vsftpd/vsftpd.conf
...
linsen=NO
重启服务xined:
service xinetd restart
# netstat -tlnp|grep 21
tcp 0 0 :::21 :::* LISTEN 18628/xinetd
测试验证
ftp文件共享服务详解的更多相关文章
- 【转】SSH服务详解
[转]SSH服务详解 第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Gro ...
- (转)SSH服务详解
SSH服务详解 原文:http://www.cnblogs.com/clsn/p/7711494.html 第1章 SSH服务1.1 SSH服务协议说明SSH 是 Secure Shell Proto ...
- winxp计算机管理中服务详解
winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blo ...
- Android中Service(服务)详解
http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...
- WCF中队列服务详解
WCF中队列服务详解 一.引言 在前面的WCF服务中,它都要求服务与客户端两端都必须启动并且运行,从而实现彼此间的交互.然而,还有相当多的情况希望一个面向服务的应用中拥有离线交互的能力.WCF通过服务 ...
- HTTPD之二————HTTPD服务详解————httpd的配置文件常见设置
HTTPD之二----HTTPD服务详解----httpd的配置文件常见设置 HTTP服务器应用 http服务器程序 httpd apache nginx lighttpd 应用程序服务器 IIS,a ...
- angular-ngSanitize模块-$sanitize服务详解
本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块. 要学习这个服务,先要了解另一个指令: ng-bing-html. 顾名思义,ng-bind-html和 ...
- Java从入门到精通——数据库篇Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- windows 7 系统进程服务详解
windows 7已经发布有段时间了,相信很多网友都已经换上了传说中非常完美的win7系统.win7不仅继承而且还超越了vista的美观界面,性能优化方面也下足了功力.还拥有强大的win xp兼容性, ...
随机推荐
- 常见的 CSRF、XSS、sql注入、DDOS流量攻击
CSRF攻击 :跨站请求伪造攻击 ,CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性 攻击者一般会使用吸引人的图片去引导用户点击进 ...
- vagrant的centos镜像,怎么用root用户登录?
vagrant的centos镜像,默认用户和密码都是vagrant,如果要用root用户登录,应该怎么办呢? 百度了一下,有一篇博客是这样说的: 默认的登录用户是vagrant,如果想实现默认root ...
- InputFormat的数据划分、Split调度、数据读取
在执行一个Job的时候,Hadoop会将输入数据划分成N个Split,然后启动相应的N个Map程序来分别处理它们.数据如何划分?Split如何调度(如何决定处理Split的Map程序应该运行在哪台Ta ...
- html5调用手机摄像头(图片可多选 限pc)
html5自带的 input file=”” ,纯html5,并且不涉及到js ,就可以实现.代码如下: <input type="file" accept="im ...
- python学习笔记(8)--random库的使用
伪随机数:采用梅森旋转算法生成的伪随机序列中元素 使用random库 一.基本随机函数 随机数需要一个种子,依据这个种子通过梅森旋转算法产生固定序列的随机数.seed(a=None) 初始化给定的随 ...
- java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms
Request idle timed out at 123000 ms. That means there was no activity (read or write) for 123000 ms ...
- PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ,you must purchase the retail version.
PLSQL过期:Your trial period for PL/SQL Developer is over .If you want to continue using this software ...
- JarvisOJ Misc 炫酷的战队logo
欣赏过了实验室logo,有人觉得我们战队logo直接盗图比较丑,于是我就重新设计了一个,大家再欣赏下? 一开始拿到的BMP文件就打不开,用010打开发现文件头被抹去了,补上了BMP,与文件大小后,发现 ...
- 人工智能将继续壮大,两会委员建议增加“AI+教育”支持板块
导读 今年上海两会期间,上海市政协委员.上海交通大学机械与动力工程学院教授范秀敏提交提案,建议政府在推进上海人工智能专项建设中,增加“AI+教育”专项支持板块,并鼓励集聚发展AI产业的各个区,在人工智 ...
- Android与H5交互 原理与对比
原文: https://www.jianshu.com/p/345f4d8a5cfa 1.Android调用JS的方法有2种: (1)通过WebView的loadUrl() // 调用js中的函数: ...