FTP服务详解
2013-09-27 23:34
162 查看
FTP是仅基于TCP的服务,不支持UDP。减少或消除了在不同操作系统下处理文件的不兼容性。同时FTP回建立两个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。
(1),主动模式:
主动与被动的模式均相对于FTP服务器而言的,客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。在请求连接时发送的为IP及两位数的组合如XXXX.XXXX.XXX.XXXij而打开的端口N为i*256+j。
(2)被动方式
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORTP命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
二。rhel6-FTP配置
1.FTP服务
开机启动
553.权限报错550.服务报错
getsebool-a|grepftp过滤FTP的selinux策略
allow_ftpd_full_access--》on去除selinux对于ftp的影响
chcon-tpublic_content_rw_t/var/ftp/pub/修改目录安全上下文
anon_umask=022设置下载文件权限
新建目录:anon_mkdir_write_enable匿名用户可以新建目录
anon_world_readable_enable=NO匿名用户可以下载不用设置anon_umask=022时匿名用户可以下载
匿名用户可以删除anon_other_write_enable=YES
本地用户:
lftp-utest(本地用户)192.168.0.25以本地用户身份登录
selinux开启时不允许普通用户切换道家目录
[root@server81pub]#setsebool-Pftp_home_diron打开切换家目录
并且可以查看根分区
chroot_local_user=NO允许本地用户切换到根分区
chroot_local_user=YES不允许本地用户切换到根分区
chroot_list_enable=NO不读取/etc/vsftpd/chroot_list列表(黑名单记载的用户不可以切换根分区)YES读取列表
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(在chroot_root添加的用户不能切根)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(在chroot_root中的用户能切根)
chown_uploads=YES
chown_username=test以test的身份上传文件,即将上传的文件的所有者改为test,上传的文件只有登录test用户才可以下载
userlist_enable=YES则读取user_list黑名单(记录的用户不能登录FTP)NO不读取user_list黑名单
不管userlist_enable=YES还是NO都会读取ftpusers(永久黑名单)
userlist_deny=NO将user_list转换成白名单
如果在ftpusers与user_list有相同的用户则优先读取永久黑名单
白名单:
ftpusers永久拒绝列表
user_list暂时拒绝列表可以转为白名单
内外网,多ip的ftp策略:
[root@server81vsftpd]#ifconfigeth0:0192.168.0.141netmask255.255.255.0
----cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd1.conf
listen_address=192.168.0.81本配置文件只监听192.168.0.81即配置信息只对此ip有效在不同的配置文件的中可以监听不同的ip
速度控制:
anon_max_rate=10240(10K)匿名用户最大上传速度(数字默认为字节)
local_max_rate=102400本地用户最大上传速度
虚拟用户:
#cd/etc/vsftpd
#vimusers
user1用户名
westos密码
user2
westos
.....
#yum-yinstalldb4-utils
#db_load-T-thash-fuserslogin.db
db_load命令用法
由林夕昱于2010-04-12at3:41上午发表
[root@localhostRPMS]
#rpm-ivhdb4-utils-4.2.52-7.1.i386.rpm
warning:db4-utils-4.2.52-7.1.i386.
rpm:V3DSAsignature:NOKEY,keyIDdb42a60e
Preparing…###########################################[100%]
1:db4-utils###########################################[100%]
[root@localhostRPMS]#db_
db_archive
db_deadlock
db_dump185
db_printlog
db_stat
db_verify
db_checkpoint
db_dump
db_load
db_recover
db_upgrade
[root@localhostRPMS]#db_load
usage:db_load[-nTV][-cname=value][-ffile]
[-hhome][-Ppassword][-tbtree|hash|recno|queue]
db_file
db_load命令需要安装db4-utils这个软件包,在RHEL4.5中,这个软件包在第三个VCD光盘中.
db_load命令几个相关选项:
-T
The-Toptionallowsnon-BerkeleyDBapplicationstoeasilyloadtextfilesintodatabases.
IfthedatabasetobecreatedisoftypeBtreeorHash,orthekeywordkeysisspecifiedasset,theinputmustbepaired
linesoftext,
wherethefirstlineofthepairisthekeyitem,andthesecondlineofthepairisitscorrespondingdata
item.
IfthedatabasetobecreatedisoftypeQueueorRecnoandthekeyworkkeysisnotset,theinputmustbelinesoftext,
whereeachlineisanewdataitemforthedatabase.
选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,
为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
Ifthe-Toptionisspecified,theunderlyingaccessmethodtypemustbespecifiedusingthe-toption.
如果指定了选项-T,那么一定要追跟子选项-t
-t
Specifytheunderlyingaccessmethod.Ifno-toptionisspecified,thedatabasewillbeloadedintoadatabaseofthesametypeaswasdumped;
forexample,aHashdatabasewillbecreatedifaHashdatabasewasdumped.
BtreeandHashdatabasesmaybeconvertedfromonetotheother.
QueueandRecnodatabasesmaybeconvertedfromonetotheother.
Ifthe-koptionwasspecifiedonthecalltodb_dumpthenQueueandRecnodatabasesmaybeconvertedtoBtreeorHash,
withthekeybeingtheintegerrecordnumber.
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
-f
参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码,例如:
yonghu1
mima1234
yonghu2
mima1234
将用户信息文件转换为数据库并使用hash加密
db_load-T-thash-f/etc/vsftpd/logins.txt/etc/vsftd/vsftpd_login.db
#cd/etc/pam.d
#vimvirtual(文件名自定义)
authrequiredpam_userdb.sodb=/etc/vsftpd/login
accountrequiredpam_userdb.sodb=/etc/vsftpd/login
#vim/etc/vsftpd/vsftpd.conf
修改内容:
pam_service_name=virtual(与pam.d内的文件名一定要相同否则会有530报错)
添加内容:
guest_enable=YES
登录虚拟用户时将直接到pub目录虚拟用户没有家目录
添加家目录
cd/var/ftp/
mkdirvirtual目录位置及目录名自定义
cdvirtual
mkdiruser1
mkdiruser2家目录
在配置文件添加内容:
local_root=/var/ftp/virtual/$USER(与建立内的目录名一定要相同否则会有530报错)
guest_username=test登录虚拟用户时继承本地用户test权限
user_sub_token=$USER
lftp-uuser1192.168.0.X
tcp_wrappers设置
tcp_wrappers将会对所有的具有tcp_wrappers属性的服务具有限制作用、类似于火墙
#whichvsftpd
/usr/sbin/vsftpd
#ldd/usr/sbin/vsftpd查看服务的tcp_wrappers属性
#vim/etc/hosts.deny
ALL:ALL
拒绝所有用户登录所有服务
#vim/etc/hosts.allow
ALL:127.0.0.允许本地回环使用所有服务
vsftpd,sshd:192.168.0.0/24(或*.example.com)EXCEPT192.168.0.141除过141,192.168.0.0/24网段均可登录ftp,sshd服务
监控登录本机信息:
ALL:ALL:spawn`date`form%cto%s|mail-swarningroot
c从那个用户
%s从哪个服务
监控所有用户,所有服务,并将监控信息以邮件的形式发往root
本文出自 “王兹银的博客” 博客,请务必保留此出处http://wangziyin.blog.51cto.com/6948950/1302946
(1),主动模式:
主动与被动的模式均相对于FTP服务器而言的,客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。在请求连接时发送的为IP及两位数的组合如XXXX.XXXX.XXX.XXXij而打开的端口N为i*256+j。
(2)被动方式
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORTP命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
二。rhel6-FTP配置
1.FTP服务
开机启动
553.权限报错550.服务报错
getsebool-a|grepftp过滤FTP的selinux策略
allow_ftpd_full_access--》on去除selinux对于ftp的影响
chcon-tpublic_content_rw_t/var/ftp/pub/修改目录安全上下文
anon_umask=022设置下载文件权限
新建目录:anon_mkdir_write_enable匿名用户可以新建目录
anon_world_readable_enable=NO匿名用户可以下载不用设置anon_umask=022时匿名用户可以下载
匿名用户可以删除anon_other_write_enable=YES
本地用户:
lftp-utest(本地用户)192.168.0.25以本地用户身份登录
selinux开启时不允许普通用户切换道家目录
[root@server81pub]#setsebool-Pftp_home_diron打开切换家目录
并且可以查看根分区
chroot_local_user=NO允许本地用户切换到根分区
chroot_local_user=YES不允许本地用户切换到根分区
chroot_list_enable=NO不读取/etc/vsftpd/chroot_list列表(黑名单记载的用户不可以切换根分区)YES读取列表
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(在chroot_root添加的用户不能切根)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(在chroot_root中的用户能切根)
chown_uploads=YES
chown_username=test以test的身份上传文件,即将上传的文件的所有者改为test,上传的文件只有登录test用户才可以下载
userlist_enable=YES则读取user_list黑名单(记录的用户不能登录FTP)NO不读取user_list黑名单
不管userlist_enable=YES还是NO都会读取ftpusers(永久黑名单)
userlist_deny=NO将user_list转换成白名单
如果在ftpusers与user_list有相同的用户则优先读取永久黑名单
白名单:
ftpusers永久拒绝列表
user_list暂时拒绝列表可以转为白名单
内外网,多ip的ftp策略:
[root@server81vsftpd]#ifconfigeth0:0192.168.0.141netmask255.255.255.0
----cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd1.conf
listen_address=192.168.0.81本配置文件只监听192.168.0.81即配置信息只对此ip有效在不同的配置文件的中可以监听不同的ip
速度控制:
anon_max_rate=10240(10K)匿名用户最大上传速度(数字默认为字节)
local_max_rate=102400本地用户最大上传速度
虚拟用户:
#cd/etc/vsftpd
#vimusers
user1用户名
westos密码
user2
westos
.....
#yum-yinstalldb4-utils
#db_load-T-thash-fuserslogin.db
db_load命令用法
由林夕昱于2010-04-12at3:41上午发表
[root@localhostRPMS]
#rpm-ivhdb4-utils-4.2.52-7.1.i386.rpm
warning:db4-utils-4.2.52-7.1.i386.
rpm:V3DSAsignature:NOKEY,keyIDdb42a60e
Preparing…###########################################[100%]
1:db4-utils###########################################[100%]
[root@localhostRPMS]#db_
db_archive
db_deadlock
db_dump185
db_printlog
db_stat
db_verify
db_checkpoint
db_dump
db_load
db_recover
db_upgrade
[root@localhostRPMS]#db_load
usage:db_load[-nTV][-cname=value][-ffile]
[-hhome][-Ppassword][-tbtree|hash|recno|queue]
db_file
db_load命令需要安装db4-utils这个软件包,在RHEL4.5中,这个软件包在第三个VCD光盘中.
db_load命令几个相关选项:
-T
The-Toptionallowsnon-BerkeleyDBapplicationstoeasilyloadtextfilesintodatabases.
IfthedatabasetobecreatedisoftypeBtreeorHash,orthekeywordkeysisspecifiedasset,theinputmustbepaired
linesoftext,
wherethefirstlineofthepairisthekeyitem,andthesecondlineofthepairisitscorrespondingdata
item.
IfthedatabasetobecreatedisoftypeQueueorRecnoandthekeyworkkeysisnotset,theinputmustbelinesoftext,
whereeachlineisanewdataitemforthedatabase.
选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,
为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
Ifthe-Toptionisspecified,theunderlyingaccessmethodtypemustbespecifiedusingthe-toption.
如果指定了选项-T,那么一定要追跟子选项-t
-t
Specifytheunderlyingaccessmethod.Ifno-toptionisspecified,thedatabasewillbeloadedintoadatabaseofthesametypeaswasdumped;
forexample,aHashdatabasewillbecreatedifaHashdatabasewasdumped.
BtreeandHashdatabasesmaybeconvertedfromonetotheother.
QueueandRecnodatabasesmaybeconvertedfromonetotheother.
Ifthe-koptionwasspecifiedonthecalltodb_dumpthenQueueandRecnodatabasesmaybeconvertedtoBtreeorHash,
withthekeybeingtheintegerrecordnumber.
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
-f
参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码,例如:
yonghu1
mima1234
yonghu2
mima1234
将用户信息文件转换为数据库并使用hash加密
db_load-T-thash-f/etc/vsftpd/logins.txt/etc/vsftd/vsftpd_login.db
#cd/etc/pam.d
#vimvirtual(文件名自定义)
authrequiredpam_userdb.sodb=/etc/vsftpd/login
accountrequiredpam_userdb.sodb=/etc/vsftpd/login
#vim/etc/vsftpd/vsftpd.conf
修改内容:
pam_service_name=virtual(与pam.d内的文件名一定要相同否则会有530报错)
添加内容:
guest_enable=YES
登录虚拟用户时将直接到pub目录虚拟用户没有家目录
添加家目录
cd/var/ftp/
mkdirvirtual目录位置及目录名自定义
cdvirtual
mkdiruser1
mkdiruser2家目录
在配置文件添加内容:
local_root=/var/ftp/virtual/$USER(与建立内的目录名一定要相同否则会有530报错)
guest_username=test登录虚拟用户时继承本地用户test权限
user_sub_token=$USER
lftp-uuser1192.168.0.X
tcp_wrappers设置
tcp_wrappers将会对所有的具有tcp_wrappers属性的服务具有限制作用、类似于火墙
#whichvsftpd
/usr/sbin/vsftpd
#ldd/usr/sbin/vsftpd查看服务的tcp_wrappers属性
#vim/etc/hosts.deny
ALL:ALL
拒绝所有用户登录所有服务
#vim/etc/hosts.allow
ALL:127.0.0.允许本地回环使用所有服务
vsftpd,sshd:192.168.0.0/24(或*.example.com)EXCEPT192.168.0.141除过141,192.168.0.0/24网段均可登录ftp,sshd服务
监控登录本机信息:
ALL:ALL:spawn`date`form%cto%s|mail-swarningroot
c从那个用户
%s从哪个服务
监控所有用户,所有服务,并将监控信息以邮件的形式发往root
本文出自 “王兹银的博客” 博客,请务必保留此出处http://wangziyin.blog.51cto.com/6948950/1302946
相关文章推荐
- linux 下FTP服务的搭建详解
- 详解“FTP文件传输服务”安装配置实例
- ftp服务详解
- 创建ACL语句使真机访问虚拟服务器的web服务并禁止访问FTP服务详解
- FTP服务详解
- 搭建FTP服务详解及其应用
- ftp服务搭建详解
- ubuntu14.04 server ftp 服务安装配置详解
- linux中FTP服务搭建详解--2.家目录禁锢和黑白名单
- FTP服务的简介和配置详解
- ubuntu14.04 server ftp 服务安装配置详解
- 用三种不同的方法访问Linux系统上的FTP服务过程详解 推荐
- Java 实现FTP服务实例详解
- RHCE学习<7>DNS、FTP和DHCP服务配置详解
- win7创建FTP服务详解
- RHEL4- FTP服务(七)vsftpd配置文件详解(默认版)
- linux中FTP服务搭建详解--3.虚拟用户
- RHEL4- FTP服务(八)vsftpd配置文件详解(扩展版)
- ftp服务工作原理及配置详解终极篇
- FTP服务详解