Board logo

标题: Ubuntu安装FTP服务器 [打印本页]

作者: Nothing    时间: 2009-10-15 14:28     标题: Ubuntu安装FTP服务器

一、Ubuntu安装FTP服务器

所有操作都是在 sudo su 下:

安装:

$ sudo su 进入 #

# apt-get install vsftpd

# ps -e | grep ftp   #查看是否启动

安装完毕后或许会自动生成一个帐户”ftp”,/home下也会增加一个文件夹。

如果没有生成这个用户的话可以手动来,生成了就不用了:

代码:

sudo useradd -m ftp

sudo passwd ftp

有”ftp”帐户后还要更改权限

代码:

sudo chmod 777 /home/ftp

配置ftp:

备份一下源文件:

# cp /etc/vsftpd.conf /etc/vsftpd.conf_bak

然后修改

# vi /etc/vsftpd.conf



# gedit /etc/vsftpd.conf (vi 不熟的最好用 gedit )

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端口进行数据连接)

查看谁登陆了FTP,并杀死它的进程

ps –xf |grep ftp

kill 进程号

配置的时候注意文件权限的问题,开启匿名和本地后,关键是文件权限的设置,为了给不同的用户分配不同的权限,可以生成一个组,例如ftpuser,然后赋 予它何时的权限例如755,chroot()设置可以使得本地用户限制在登录时的目录,这对于安全很重要,可以这是local_root指定本地用户登录时的目录,负责为/home下相应目录。
作者: Nothing    时间: 2011-10-26 21:22

目前正在测试架设虚拟主机系统,需要使用到FTP登录,因为我的系统是Ubuntu,如果使用useradd添加用户修改用户的shell为false或nologin,这样用户是无法使用telnet和ssh,同样ftp也无法登录了,下面有一种解决方法,可以实现禁止用户telnet与ssh登录,但可以使用ftp登录,以vsftpd为例:
1,修改/etc/pam.d/vsftpd的验证模块
# Standard behaviour for ftpd( 8) .
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable
# pam_ftp.so.

# Standard blurb.
@include common-account
@include common-session

@include common-auth
#auth required pam_shells.so
注销下auth required pam_shells.so验证

2,修改/etc/vsftpd.conf文件,添加check_shell=NO

3,修改/etc/passwd用户的shell为false或nologin,重启/etc/init.d/vsftpd即可.
当然,也可以修改/etc/passwd中wp26  :1002:1002::/home/vhost/wp26:/bin/false的最后/bin/false为/usr/bin/passwd,让用户登录系统只能够修改密码。




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0