这是我自己上网百度和自己尝试的结果,部分是摘录别人的,如果转载,请注明,谢谢!同时共享给大家,希望共同进步!首先虚拟机要处于联网状态:1.安装vsftpd直接从源里面安装 sudo apt-get install vsftpd
需要输入yes的,输入下,然后一直enter下去
如果安装失败请重新安装 sudo apt-get --reinstall install vsftpd如果要卸载的话清除式卸载(同时清除配置):sudo apt-get --purge remove vsftpd 清除式卸载(清除配置文件):sudo apt-get purge vsftpd
安装完毕后或许会自动生成一个帐户"ftp",/home下也会增加一个文件夹。如果没有生成这个用户的话可以手动来:mkdir /home/ftp 生成了就不用了。sudo useradd -m ftp (添加一个ftp用户)sudo passwd ftp (更改Linux密码)
有"ftp"帐户后还要更改权限代码:sudo chmod 777 /home/ftp (改变文件夹权限)sudo chmod 777 -R /home/ftp (改变文件夹及子文件权限)
在这个目录下我建立一个文件夹专门保存需要共享的内容
2.配置文件
备份一下源文件:# cp /etc/vsftpd.conf /etc/vsftpd.conf_bak
然后修改# vi /etc/vsftpd.conf或# gedit /etc/vsftpd.conf (vi 不熟的最好用 gedit )
配置文件比较简单,如下简单的登录下载模式:#独立模式启动listen=YES
#同时允许4客户端连入,每个IP最多5个进程max_clients=200max_per_ip=4
#不允许匿名用户访问,允许本地(系统)用户登录anonymous_enable=NOlocal_enable=YESwrite_enable=NO
#是否采用端口20进行数据传输connect_from_port_20=YES
#生成日志xferlog_enable=YES
#指定登录转向目录local_root=/home/ftp/ftp
配置完成后,在终端上ifconfig获取IP地址
这样,在同局域网的电脑上,在浏览器中输入ftp://IP地址,用帐号和对应密码就可以登录了!账户和密码网上说是自己开始设置的,我用的是我登录虚拟机的账户和密码!我用TC尝试登录了虚拟机的ftp,发现可以下载文件,如果需要更为详细的服务,请参照下面重新修改配置文件。对了,更改配置后不要忘了重启ftp服务代码:sudo /etc/init.d/vsftpd restart 有的虚拟机可能会报错,尝试下面的重启命令:sudo service vsftpd restart
此外还有开启关闭服务的命令代码:sudo /etc/init.d/vsftpd startsudo /etc/init.d/vsftpd stop有的虚拟机可能会报错,尝试下面的命令:sudo service vsftpd startsudo service vsftpd stop
如果你需要详细的FTP设置,请参照以下代码:anonymous_enable=yes (允许匿名登陆)
dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
local_umask=022 (FTP上本地的文件权限,默认是077)
connect_form_port_20=yes (启用FTP数据端口的数据连接)
xferlog_enable=yes (激活上传和下传的日志)
xferlog_std_format=yes (使用标准的日志格式)
ftpd_banner=XXXXX (欢迎信息)
pam_service_name=vsftpd (验证方式)
listen=yes (独立的VSFTPD服务器)
功能:只能连接FTP服务器,不能上传和下传
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项
开启匿名FTP服务器上传权限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)
Anon_world_readable_only=no (开启匿名服务器下传的权限)
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传(W)写----上传 (X)执行----如果不开FTP的目录都进不去
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传
用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可
限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
安全选项
Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒)(将数据连接空闲2分钟断)
Accept_timeout=60(秒)(将客户端空闲1分钟后断)
Connect_timeout=60(秒)(中断1分钟后又重新连接)
Local_max_rate=50000(bite)(本地用户传输率50K)
Anon_max_rate=30000(bite)(匿名用户传输率30K)
Pasv_min_port=50000 (将客户端的数据连接端口改在
Pasv_max_port=60000 50000—60000之间)
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)
配置的时候注意文件权限的问题,开启匿名和本地后,关键是文件权限的设置,为了给不同的用户分配不同的权限,可以生成一个组,例如ftpuser,然后赋 予它何时的权限例如755,chroot()设置可以使得本地用户限制在登录时的目录,这对于安全很重要,可以这是local_root指定本地用户登录时的目录,负责为/home下相应目录。补充:
# ps -ef | grep ftp #查看是否启动