自己练习FTP

需要软件:
lftp-3.5.1-2.fc6
vsftpd-2.0.5-12.el5 FTP的21端口是命令端,20端口是数据端,21只负责聊天,数据传输就交给20

主动连接:
就是服务器的20端口主动向客户端发起连接请求。主动连接如果客户端在路由(NAT)之后的话,是不能连接成功的,那个时候就要启动被动连接
被动连接:
就是服务器的大于1024的某一个端口被动等待客户端发起连接请求,被动连接是不开放20端口的。

配置文件是: /etc/vsftpd/vsftpd.conf
在vsftpd目录下还有这些文件,这些文件的功能需要在配置文件中把对应的功能打开才有效。
chroot_list:(默认不存在,需自己建立)这个里面装用户帐号的,一行一个用户,设置用户是否被关在家目录,他有两种功能,具体下面讲。
fstpuser:这个里面的用户是拒绝登录的,不想要某人登录,就把某人写进去,一行一个用户。
user_list:这个里面的用户是设置是否允许登录的,有两种设置,一行一个用户。
vsftpd_conrate.shf_mig:这个脚本搞不清楚,不理他。 配置文件里面的内容:#号代表注释掉,有些参数是没有的,需要自己添加,麻烦得很
anonymous_enable=YES:          是否允许匿名登录

local_enable=YES                是否允许本地用户登录(/etc/passswd内的用户)

write_enable=YES                是否允许写入(跟实体和匿名用户都有关)

local_umask=022                 实体用户建立文件的掩码(匿名用户是默认的077)

#anon_upload_enable=YES         是否允许匿名上传

#anon_mkdir_write_enable=YES    是否允许匿名建立目录(YES的话,匿名写入也要打开)

dirmessage_enable=YES          

xferlog_enable=YES              是否要记录用户上传和下载的记录
xferlog_file=/var/log/vsftpd.log  设置这个记录文件的位置,跟上个参数连用

connect_from_port_20=YES        设置连接端口(数据)

#chown_uploads=YES              
#chown_username=whoever         设置匿名上传的文件指定一个特定用户

xferlog_std_format=YES

#idle_session_timeout=600       设置会话(命令)超时时间,就是用户在600妙内没有命令就强制离线(秒)

#data_connection_timeout=120    设置数据连接后的超时时间(秒)
 
#nopriv_user=ftpsecure         

#async_abor_enable=YES

#ascii_upload_enable=YES       设置客户端以ASCII格式上传文件
#ascii_download_enable=YES     同上,下载而已

#ftpd_banner=Welcome to blah FTP service. 设置欢迎内容

#deny_email_enable=YES         设置拒绝某些登录来的EMAIL地址([email protected]
#banned_email_file=/etc/vsftpd/banned_emails 同上连用,里面一行一个EMAIL地址,表示拒绝此地址帐号的连接 #chroot_list_enable=YES        是否启动强制用户在家目录功能
#chroot_list_file=/etc/vsftpd/chroot_list   设置文件夹的位置,同上连用,一行一个帐号
#chroot_local_user=YES         设置所有用户都关在家目录内,同上连用

#ls_recurse_enable=YES


listen=YES                     设置YES代表是以单一模式来启动的

#listen_ipv6=YES               IPV6的支持

pam_service_name=vsftpd        PAM模块的设置

userlist_enable=YES
            启动FTP的阻止机制来拒绝某些帐号登录,与下面设置有关,在默认下,写入文件内的是拒绝用户登录的,没有写入的是允许登录的(系统所有帐号没写入都能登录,危险),下面两个的设置可以改变他成为只有写入才允许登录的功能。和谐
userlist_deny=no            
userlist_file=/etc/vsftpd/user_list   设置文件位置,
当这三个这样设置后,只有写入这个文件内的帐号,才有登录的权限,一般情况下都要恩个设置,除非吃多老
tcp_wrappers=YES               防火墙的东东 下面这些参数是配置文件里面没有的,可以自己添加:
listen_port=21               设置命令通道的监听端口(默认没有,是21)
pasv_enable=yes              设置被动连接模式(一般来说都开被动)
use_localtime=yes            设置本地时间,VSFTP默认用格林威治时间,会跟现实相差8小时,一般来说都启动本地时间
accept_timeout=60            如果用户以被动模式连接时,当服务器的被动端口在超过60秒没收到客户端请求就强制断线(秒)
connect_timeout=60           如果用户以主动模式连接时,当服务器的20端口在超过60秒没有收到客户端连接请求回应就强制断线(秒)
max_Clients=0                如果VSFTP是以单一模式启动的,那么这个就k可以设置同一时间内最大的客户端连上FTP   0为不限制
max_per_ip=0                 同上,这里指IP
pasv_max_port=0
pasv_min_port=0              这两个跟被动模式有关,如果要使用33007-33017这几个端口来被动连接的话。就分别写入0的位置,0代表随机,不限制
local_max_rate=0             实体用户的传输限制,单位bytes/s, 0表示不限制
guest_enable=yes             当这个设置YES后,所有非匿名用户的帐号都会被假设成为guest,guest默认会取得ftp用户的相关权限,可以通过下面这个来修改
guest_username=ftp           当上面是YES才生效,修改指定访客的身份而已
local_max_rate=0             实体用户的传输限制,单位bytes/s, 0表示不限制
anon_umask=077              匿名用户建立文件和目录的 掩码,默认077
anon_max_rate=0              限制匿名用户的传输速度,0表示不限制,单位是B/s,(30KB=30000)
anon_other_write_enable=YES  允许匿名用户具有建立目录,上传之外的权限,如重命名,删除,(最好不开,用户有删除权限后危险)
# \4 b, w% S  u: p& n* s( V listen_address=192.168.*.*   监听地址,(多个网卡有用)
匿名的登录:
软件装好后,就直接可以匿名登录了,因为配置文件里面的匿名登录是开启的,但是不能匿名上传和写入,可以下载,匿名用户登录进来后的家目录为ftp用户的家目录:使用的权限也是FTP用户的权限, /var/ftp/,这个目录的权限为755,是不能更改的,更改了要影响和谐,匿名用户已经被chroot了,所以,他被关在家目录中的。
XP下的命令测试ftp 192.168.*.*   用户名 ftp 密码
ls          查看
pwd         当前位置
cd          进入目录
put 文件名  上传
get 文件名  下载
linux本机下的命令测试lftp 192.168.*.* 帐号的登录:
anonymous_enable=NO      把匿名登录关掉

local_enable=YES

write_enable=YES
local_umask=022
这三个是系统默认的,不管

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
这三个代表,写入这个文件内的帐号可信任,没有被chroot,可以到处跑

userlist_enable=YES

userlist_deny=no            
userlist_file=/etc/vsftpd/user_list
这三个代表,只有写入这个文件内的帐号才能登录

XP下的命令测试:              ftp   帐号@ 192.168.*.*
linux本机下的命令测试:       lftp 帐号@ 192.168.*.*

用户登录后的家目录为自己帐号的家目录,可以配合 Apache来使用 被动模式和主动模式的设置:
系统默认为主动式,被动需要一下设置
connect_from_port_20=no     这个要设置为NO,不然没效果
pasv_enable=yes             被动授予改为YES

为了测试准确与否,使用 tcpdump 命令来抓包,看传输数据的时候,是否使用20端口。
使用方法: tcpdump -i eth0 -nn src host 192.168.1.100 抓取1.100主机到服务器的eth0端口的数据包,如果没得20端口就可以老 无法访问到FTP家目录以外目录的连接设置:
vsftp出于安全考虑。禁止访问到ftp家目录以外的目录的链接。
比如,ftp的根目录是 /home/eo
在此目录下做一个软链接
ln -s /var/samba  /home/eo
在这种情况下,通过ftp软件,是无法进入到这个链接中的
proftp倒是可以。
如果不想更换ftp服务器的话,可以用mount命令来实现
如果链接指向的是个目录,可以用
mount --bind  /var/samba  /home/eo/samba
如果链接指向的是个设备,可以直接用
mount /dev/hda* /home/eo/hda*

mount --bind是什么意思?

mount --bind 是将一个目录中的内容挂载到另一个目录上,用法是

mount --bind  A目录  B目录

这个命令使得自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:

mount --move B目录  A目录 (即可)

如果mount --bind 也想写入fstab中的话格式如下:

A目录  B目录  none bind 0 0

本文出自 “eo” 博客,谢绝转载!

你可能感兴趣的:(ftp,职场,休闲,自己)