[分享]菜鸟简单建立FTP的方法

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
tobyxmu
帖子: 116
注册时间: 2007-06-26 1:58

[分享]菜鸟简单建立FTP的方法

#1

帖子 tobyxmu » 2007-10-28 23:49

因为不想用WIN,不方便和周围同学共享文件,于是想在Ubuntu下建个FTP用。一阵论坛和google搜索后终于找到了正确的方法(vsftpd,Ubuntu7.04),至少保证周围局域网内用户可以访问。至于配置文件,内容比较少,反正对我来讲能用就ok了~不知道会不会很弱
有一个不错的中文联机手册可以参考:http://etony.9966.org/doc/other/vsftpd-man-zh.html
废话不说,进入正题

1.安装vsftpd
直接从源里面安装,easy

代码: 全选

sudo apt-get install vsftpd
安装完毕后或许会自动生成一个帐户"ftp",/home下也会增加一个文件夹。
如果没有生成这个用户的话可以手动来,生成了就不用了:

代码: 全选

sudo useradd -m ftp
sudo passwd ftp
有"ftp"帐户后还要更改权限

代码: 全选

sudo chmod 777 /home/ftp 
在这个目录下我建立一个文件夹专门保存需要共享的内容

2.配置文件
通过sudo gedit /etc/vsftpd.conf修改。
配置文件比较简单,如下

代码: 全选

#独立模式启动
listen=YES

#同时允许4客户端连入,每个IP最多5个进程
max_clients=200
max_per_ip=4

#不允许匿名用户访问,允许本地(系统)用户登录
anonymous_enable=NO
local_enable=YES
write_enable=NO

#是否采用端口20进行数据传输
connect_from_port_20=YES

#生成日志
xferlog_enable=YES

#指定登录转向目录
local_root=/home/ftp/ftp
这样,在同局域网的电脑上,用我的IP地址,用帐号"ftp"和对应密码就可以登录了,密码是第一步里面passwd那句指定的。

就这样就结束了,请大家拍砖!![/code]

----------------------------------
对了,更改配置后不要忘了重启ftp服务 :D

代码: 全选

sudo /etc/init.d/vsftpd restart
此外还有开启关闭服务的命令

代码: 全选

sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
上次由 tobyxmu 在 2007-11-18 22:23,总共编辑 1 次。
头像
percy
帖子: 508
注册时间: 2006-09-10 8:19
系统: Gentoo/Mac OS X
来自: Shanghai,China
联系:

#2

帖子 percy » 2007-10-31 11:58

简单实用,顺便问一下,有没有乱码呢?
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS

#3

帖子 xiehuoli » 2007-10-31 11:59

不错不错!
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
联系:

#4

帖子 dbzhang800 » 2007-10-31 16:31

percy 写了:简单实用,顺便问一下,有没有乱码呢?
这个问题不好说,如果你的ftp客户端只支持单一的编码,遇到其他编码的东西肯定乱码
头像
tobyxmu
帖子: 116
注册时间: 2007-06-26 1:58

#5

帖子 tobyxmu » 2007-10-31 21:13

percy 写了:简单实用,顺便问一下,有没有乱码呢?
直接在Ubuntu下拷贝中文文件到ftp目录里面,局域网电脑访问(没有设置编码之类)是有乱码的
cnk8sky
帖子: 1
注册时间: 2007-10-26 9:57

#6

帖子 cnk8sky » 2007-11-01 15:15

怎么改密码呢
xfoxying
帖子: 7
注册时间: 2007-09-28 22:09

#7

帖子 xfoxying » 2007-11-04 0:03

确实可行
谢谢楼主
我还在很多地方看到添加安全用户登录还是企业FTP规划
结果不能登录
不知道为什么?我把文章贴出来
大家来讨论一下
Linux下VsFTP配置全方案
纲要:
一, VsFTPd的简述
二, 企业Linux下vsFTPD方案
三, VsFTPD相关配置文件详解
一,VsFTPd的简述:
VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。除了安全和性能方面很优秀的外,还有很好的易用性。Red Hat公司在自己的FTP服务器(ftp.redhat.com)上就使用了vsFTPd
二,企业Linux下vsFTPD实战方案
要求:
1. 用户:netseek_com;FTP:ftp.netseek.com(192.168.0.21,我已经配置好了相关的DNS)
2. 禁止匿名登陆,禁止用户离开用户目录
3. 命令通道端口使用5021,数据通道端口使用5020(你可以改成你想设置的端口如1021,1020)
4. 允许使用被动模式使用端口范围为10010~10020.
5. 用户带宽设置为200kps;用户空间大小限制为300M,允许宽限期限内有10MB的缓冲
具体操作步骤如下:
为了更完全的描述安装全过程,我在我的另一台主机(netseek)上进行配置,在台机IP:192.168.0.20上绑定了192.168.0.21,也配置好了相关的DNS解析,在这里我就不多说了请参照”Linux全能web服务器架设”。
1. 配置相关服务
启动服务:
[root@netseek root]# #rpm –qa | grep vsftpd ;查看是否安装vsftpd服务
#/etc/init.d/vsftpd start ;启动服务
#chkconfig vsftpd on ;让系统服务随着系统启动而启动
配置相关文档:
#vi /etc/vsftpd/vsftpd.conf
禁止匿名用户访问:
anonymous_enable=YES,将YES改为NO
在文件末尾加如下的设置:
# new added by netseek
listen_port=5021 ;命令通道端口,默认为21
listen_data_port=5020 ;数据通道端口,默认为20
pasv_enable=YES ;允许被动模式
pasv_min_port=10000 ;被动模式使用端口范围
pasv_max_port=10010
local_max_rate=200000 ;用户宽带限制
chroot_local_user=YES ;禁用户离开主目录
listen_address=192.168.0.21 ;让他监听ip:192.168.0.21
注:在添加过程中请不要加上”;”和这些中文注释,在这里我上为了方便大家了解才加上的。
2. 添加虚拟主机用户
添加用户netseek_com,用户目录指定为/var/www/netseek.com,且此用户不能登陆系统.
#mkdir /var/www/netseek.com
#useradd –s /sbin/nologin –d /var/www/netseek.com netseek_com 问题就在这里,使用这句话后,就无法登录,如果改为useradd -s /bin/false 那就可以了
注-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/var/www/netseek.com
#passwd netseek_com (Do not Hack me 3ks) DnHm3ks 这是我设置的密码
#chown –R netseek_com:netseek_com /var/www/netseek.com
注:将用户目录及其子目录的所有和所属的组设置为netseek_com
3. 配置磁盘配额
我在安装过程中磁盘了多个区,分别/home,/var,/,/www,tmp,swap,/boot多个分区。建议你将磁盘分多个独单的分区,这样可以降低磁盘分区损坏造成的数据丢失风险.
#[root@netseek root]# rpm -qa | grep quota
quota-3.06-9 ; 我的系统已经安装了磁盘配额工具
#vi /etc/fstab
找到类似
LABEL=/var /var ext3 defaults 1 2
在defaults后加入usrquota,改为如下:
LABEL=/var /var ext3 defaults,usrquota 1 2
重新加载/var这个分区:
#mount –o remount /var
#cd /var 进入这个目录
#touch quota.user
#chmod 600 quota.user
#quotacheck –mf /var 对磁盘分区空间使用情况进行强制检测
[root@localhost var]# quotacheck -mf /var
quotacheck: WARNING - Quotafile /var/quota.user was probably truncated. Can't save quota settings...
重新启动系统
第一次运行时都会出现这个警告,再次运行的时候就不会啦
为指定用户定额:
#edquota netseek_com 为用户netseek_com设置磁盘配额。
Disk quotas for user netseek_com (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda5 6616 307200 0 15 0 0
注:
ilesystem blocks soft hard inodes soft hard
filesystem-正在设置的文件系统,不要修改或删除
bolock-当前使用的碰盘空间,单位为KB
soft(第一个)-软磁盘空间限制,默认0,表示无限制,我在这里设为300M。
hard(第一个)-硬配额限制,0表示无限制。
inodes-当前文件数量
soft(第二个)-对文件数量的软限制,0表示无限制
hard(第二个)-对文件数量的硬限制,0表示无限制

让系统启动是自动加载:
#vi /etc/rc.d/rc.local ,加入以下:
/etc/init.d/vsftpd start
/sbin/quotacheck
/sbin/quotaon –avu
现在查看netseek_com 用户使用磁盘空间的情况
[root@localhost ~]# quota -u netseek_com
Disk quotas for user netseek_com (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda5 6616 307200 0 15 0 0

注:关于更多的quota命令,请用man命令查看吧,乌哥(VBird)说,我们要学会找男人 !

4. 效果演示,登陆演示:

四, VsFTPd相关的配置详解
1.匿名用户相关设置
anonymous_enable=YES ,将YES改为NO, 禁止匿名用户登陆
#non_mkdir_write_enable=YES ,将#注释去掉,允许匿名用户创建目录
#non_upload_enalbe=YES ,将#去掉,允许匿名用户上传
anon_world_readable_only=YES ,允许匿名用户下载,默认是禁止的,这个可以自行添加。
Anon_other_write_enable=YES ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NO
no_anon_password=NO ,将其设为YES,匿名用户不会查询用户密码直接登陆。
ftp_username=ftp ,匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁。
2.FTP服务端口的指定
listen_port=8021 ,指定命令通道为8021,默认为21
listen_data_port=8020 ,指定数据通道为8020,默认为20
3.上传模式的设置
pasv_enable=YES ,是否允使用被动模式,默认是允许的。
pasv_min_port=10000 ,指定使用被动模式时打开端口的最小值
pasv_max_port=10004 ,指定使用被动模式时打开端口的最大值。
4.Vsftp服务器指定IP地址
listen_address=192.168.0.21 ,指定FTP,IP地址
注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsfpd文件,就要将该文件中的disable设置为yes,方可。
5. 锁定用户,禁止用户离开用户主目录
chroot_local_user=YES ,将其设为YES,就锁定在用户主目录,设为NO,可以切换
将指定用户设置为锁定用户主目录:
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
将其改为如下:
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
将上面保存,再做如下操作:
#touch /etc/vsftpd/vsftpd.chroot_list
#vi /etc/vsftpd/vsftpd.chroot_list ,在该文件中加入用户名单,如:
netseek_com
6.FTP服务器的流量控制
max_clients=100 ;允许的最大连接数,定义为100,默认为0,表没有限制
max_per_ip=5 ;每个IP允许的连接数,0表没有限制,需要运行于独立模式方可
anon_max_rate=50000 ;匿名用户最大带宽,单位为bps
local_max_rate=200000 ;系统用户最大带宽
如何对指定用户进行流量限制呢?
#vi /etc/vsftpd/vsftpd.conf,添加一行:
user_config_dir=/etc/vsftpd/userconf
#touch /etc/vsftpd/userconf/netseek_com 为netseek_com这个用户建立一个netseek_com文件
#vi /etc/vsftpd/userconf/netseek_com 添加以下内容
local_max_rate=100000
保存重启服务即可.
7.定制欢迎信息
目录说明设置
#vi /etc/vsftpd/vsftpd.conf
#dirmessage_enable=YES,前的#去掉。
然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中,就OK。

系统欢迎消息设置
ftpd_banner=Welcome to ftp.netseek.com , Yeah!!!
系统欢迎消息文件设置
banner_file=/etc/vsftpd/welcome 与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件.

上面的东西对我们来说很有中的,哪天你的公司也要你配置这样的服务器 我觉得这个可行!


希望大家能来讨论一下自己的想法。
lastbat
帖子: 18
注册时间: 2007-11-12 16:27

#8

帖子 lastbat » 2007-11-13 14:25

感谢楼主和七楼的分享。尝试一下,可行的话我也这么干 ^-^
Learn more, find more.
yl9931
帖子: 11
注册时间: 2007-08-08 0:07

#9

帖子 yl9931 » 2007-11-17 16:01

楼主为什么我按你说的做了以后登录不了啊。。。。

提示说:500 oops childdied

提示登录失败啊。。。。这是怎么办????
yl9931
帖子: 11
注册时间: 2007-08-08 0:07

#10

帖子 yl9931 » 2007-11-17 16:41

郁闷。。。为什么我改成ftpuser后就可能 了呢。。。郁闷~
头像
百草谷居士
帖子: 3909
注册时间: 2006-02-10 16:36
系统: Mint21.1/Deepin20.8

#11

帖子 百草谷居士 » 2007-11-18 16:05

在局域网内samba文件服务器和ftp服务器使用起来究竟是那个方便呢?哪个安全呢?给讲解一下吧。
debian 12 / 深度系统 20.9 / Mint 21.3

为何热衷于搞发行版的多,搞应用程序开发的少?Linux最多余的就是各种发行版,最缺的就是应用程序,特别是行业应用程序。
spectator
帖子: 178
注册时间: 2007-10-20 20:15

#12

帖子 spectator » 2007-11-18 18:51

sudo chmod 777 /home/ftp

这里有点疑问,vsftpd似乎不能设置anonymous的根目录有w的属性吧?
头像
tobyxmu
帖子: 116
注册时间: 2007-06-26 1:58

#13

帖子 tobyxmu » 2007-11-18 22:06

yl9931 写了:楼主为什么我按你说的做了以后登录不了啊。。。。

提示说:500 oops childdied

提示登录失败啊。。。。这是怎么办????
对不起,我没遇到过这个问题,请你搜索下吧
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#14

帖子 hubert_star » 2007-11-18 22:14

如果是简单共享,安装完ssh-server后就已经有一个sftp服务器了,用filezilla就可以上,而且对中文支持也不错,就是速度会稍微慢点。
头像
tobyxmu
帖子: 116
注册时间: 2007-06-26 1:58

#15

帖子 tobyxmu » 2007-11-18 22:16

百草谷居士 写了:在局域网内samba文件服务器和ftp服务器使用起来究竟是那个方便呢?哪个安全呢?给讲解一下吧。
应用方式上各有所长吧,samba相当于windows的网上邻居,局域网内且同一个域内使用的;ftp既可以应用于局域网又可以应用于互联网。若是在整个互联网上共享文件,还是ftp。

至于哪个更安全的问题...呃...这个我了解不多...但我想既然ftp是应用于互联网的,被攻击的可能性会大些吧 :wink: 但不必太care这个,vsftpd是款满强调安全性和易用性的软件。
回复