ftp基础1
来源:互联网 发布:菜谱制作软件 编辑:程序博客网 时间:2024/06/07 16:22
一. 查看服务与端口的对应文件
vim /etc/services
二. ftp是工作在应用层上的
FTP:基于tcp协议 两个链接
一个事命令(控制)链接 一个事数据链接
当你连上服务器 发现有你想要的的文件时 发出下载请求 会开启数据链接
分为两种工作模式
1.主动模式(默认端口:21传指令,20传数据)
客户端请求服务器的21端口,服务器响应,建立命令链路;当想要传输数据时,客户端会发送PORT指令告诉服务器,“我开启了xxx端口,来连我吧”,然后服务器就会开启20端口,与客户端建立数据链路,传输数据。
2.被动模式(端口:21端口传指令,开一个大于1024的随机端口传数据)
客户端请求服务器的21端口,服务器响应,建立命令链路;当想要传输数据时,客户端会发送PASV指令告诉服务器,我要发数据,服务器就会告诉客户端自己开了哪个端口,之后等待客户端来连接,客户端就按照服务器的指示来连接那个大于1024的端口,建立数据链路。
ftp命令 (get 下载 mget对文件下载 put上传 mput多文件上传 )
http传输时 会利用mine把二进制变成文本传输,而ftp传输时,原本是什么格式,就用什么格式传输,二进制就传输
二进制,文本就传输文本
三.vsftp 在redhat里
/var/ftp:作为其提供服务的根目录(除了root外 任何人不能有些权限)
要上传下载文件时,需要在/var/ftp/目录下建个子目录,给子目录写权限,用ftp来上传文件时,首先要现金这个新建的目录,在里面进行上传和下载 否则会报错553 Could not create file.
为安全,不要给ftp用户登录系统的权限
root@lyw:/etc/pam.d# finger ftp产看ftp用户的家目录在哪
root用户可以直接通过修改“/etc/passwd” 文件来修改用户的登录shell,也可以使用usermod命令来进行修改
usermod -s /bin/csh ftp
linux系统里一般都用vsftp(安全的ftp)
ftp用户分为3类:
匿名用户-------> 需要对应一个系统用户 一般是ftp
系统用户
虚拟用户---------> 需要对应一个系统用户 一般是ftp
//------------------------------------------------------------------------------------------------------------
1.匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
2.本地用户形式:以/etc/passwd中的用户名为认证方式
3.虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于ftp的本地用户形式来说,虚拟用户只是ftp服务器的专有用户,虚拟用户只能访问ftp服务器所提供的资源,这大大增强了系统本身的安全性。
相对于匿名用户而言,虚拟用户需要用户名和密码才能获取ftp服务器中的文件,增加了对用户和下载的可管理性。
对于需要提供下载服务,但又不希望所有人都可以匿名下载,即需要对下载用户进行管理,又考虑到主机安全和管理
方便的ftp站点来说,虚拟用户是一种极好的解决方案。
//-------------------------------------------------------------------------------------------------------------
debian安装vsftp (用系统用户登录ftp,默认都登录到他的家目录下)
1. apt-get install -y vsftpd
2.添加ftp账号和目录
useradd -d /data/vsftpd -s /bin/false pwftp
3.修改账户密码
passwd pwftp
4.修改指定目录的权限
mkdir -p /data/vsftpd
chown -R pwftp.pwftp /data/vsftpd
root@lyw:/lib64# ls -ld /data/vsftpd/
drwxr-xr-x 2 pwftp pwftp 4096 Oct 19 09:14 /data/vsftpd
5.配置vsftp
vim /etc/vsftpd.conf
将配置文件中“anonymous_enable=YES” 改为 “anonymous_enable=NO” 是否允许匿名用户登录
取消如下配置前的注释符号:
local_enable=YES
write_enable=YES 定义本地用户是否能上传文件
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_list_user 是否将所有用户限制在主目录,YES为请用 NO为禁用(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到主目录之外的)
ftp 127.0.0.1 登陆报错
530 Login incorrect.
Login failed.
解决方法:
vim /etc/pam.d/vsftpd
#auth required pam_shells.so 将这行注释掉
问题:远程连接登录不上ftp
解决:
vim /etc/vsftpd.conf
在最下面添加以下信息
pasv_enable=YES 开启被动模式 (主动模式下对方可能有防火墙限制连接不进去)
pasv_min_port=4000 随机最小端口
pasv_min_port=4005 随机最大端口
然后在加载内核
root@lyw:~# modprobe ip_conntrack_ftp
root@lyw:~# modprobe ip_nat_ftp
重启服务器
root@lyw:/lib64# /etc/init.d/vsftpd restart
//------------------------------------------------------------------------------
添加匿名用户登录
anonymous_enable=YES运行匿名用户登录
anon_root=/home/luyiwei匿名用户登录后的位置
anon_upload_enable=yes支持匿名用户上传
anon_mkdir_write_enable=yes 支持匿名用户创建目录
注意:/home/luyiwei/ 这个目录只能给root写权限别人都没写权限 然后在/home/luyiwei 下在建立一个目录,这个目录可以让所有人或者ftp用户有写权限 把要下载的东西放入这个新建的目录。让用户上传下载 都进入这个新的目录进行操作。
匿名登录时,也需要填账号名 anonymous或ftp 不需要添加密码
ftp>help 查询命令帮助
具体的信息可以通过抓包工具来查看
如:tcpdump抓包
tcpdump -i eth0 prot 80 -vv -X -nn
//-------------------------------------------------------------
xferlog_enable=YES 是否打开传输日志
xferlog_file=/var/log/vsftpd.log 传输日志位置
Listen=YES ftp是否工作在一个独立守护进程(每次登陆ftp时,使用时间都很长就用独立守护进程)
//--------------------------------------------------------------
安全通信方式
ftps:ftp+ssl/tls
sftp: openssh提供的子系统SubSystem,sftp(基于ssh实现安全的传输功能)
参考文章:
http://www.cnblogs.com/ilinuxer/p/5087447.html
http://blog.csdn.net/bluishglc/article/details/42398811
- ftp基础1
- FTP命令基础使用
- FTP基础命令
- Linux FTP基础
- C# Ftp基础操作
- FTP协议基础
- Linux基础配置ftp
- ftp服务器基础
- C# Ftp基础操作
- shell操作ftp--基础篇
- 25-Linux-服务-FTP基础
- FTP 基础及连接跟踪
- php【基础学习十八】ftp
- FTP:基础概念及使用
- FTP(1)
- Ubuntu操作系统学习笔记之FTP基础
- Linux基础(FTP服务搭建)
- python基础 -- 01FTP服务器搭建
- n个数的阶乘
- 运用@Transactional,自己抛出异常时不会回滚的原因
- adb logcat的技巧
- 开发者必看:超全机器学习术语词汇表!
- 设计模式——Builder 模式
- ftp基础1
- 三星手机又陷“冒烟门”,航班起飞后冒烟;阅文集团IPO融资规模最多达11亿美元丨价值早报
- 创投日报:10月23日收录投融资项目14起
- 这位旅英年轻人,如何让“自如模式”出口到了英国?
- 羊毛党大揭秘:上亿黑卡在手,撸垮上市公司
- flume 启动不输出运行日志
- 图表Echarts配置项
- 三个数排序
- 安卓开原项目汇总