如何在Ubuntu Linux系统建立FTP服务器
2009-04-18 09:48
597 查看
如何在Ubuntu Linux系统建立FTP服务器
环境:Ubuntu 8.10
步骤:
一:安装vsftpd
vsftpd是Ubuntu自带的FTP服务器,直接安装即可:
sudo apt-get install vsftpd
如果提示你说没有找到软件包vsftpd,可能你的源没有更新,
或者你所用的源不提供软件包,可以换个源试试。
编辑更新源命令:sudo gedit /etc/apt/sources.list
更新命令:sudo apt-get update 或 sudo apt-get dist-upgrade
http://sns.linuxpk.com/space-43898-do-blog-id-15275.html提供了不
错的更新源列表,大家可以参考。
安装后/home/下会出现一个ftp目录。
如果没有生成,可以手动生成,并修改权限:
sudo useradd -m ftp
sudo chown root:root /home/ftp
sudo chmod 755 /home/ftp
此时如果访问下ftp://IP地址,会看到一个空白内容的ftp
空间。获得本地IP地址的命令为:ifconfig。
二:匿名用户设置
这些权限主要在 /etc/vsftpd.conf文件中设置。默认设置下匿名
用户可以下载,但不能写入或是上传。
要让匿名用户无法访问,只需要把Anonymous_enable=YES这一项
<
15314
span style="font-size:12pt;font-family:'宋体';">注释掉变为:#Anonymous_enable=YES
或使得Anonymous_enable=NO。
另外必须把ftp目录删除,否则匿名用户仍可登录。
最后别忘了要重启ftp服务器(使修改过的配置文件生效):
sudo /etc/init.d/vsftpd restart
如果要是匿名用户同时具有下载、上传、下载的功能
把vsftpd.conf文件设置为(其它设置不变):
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=NO
还要改变共享目录的权限:
sudo chown root:root /home/ftp sudo chmod 755 /home/ftp
要说明的是,匿名开FTP上传是极其不安全的,不推荐使用。
二:本地用户设置
只要把vsftpd.conf文件设置为(其它设置不变):
local_enable=YES
write_enable=YES
这样输入用户名密码后会显示用户的根目录。
还有一个问题,这样的设置允许用户跳到任何其他目录。
为了对此限制,在vsftpd.conf中设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
接下来我们就能在vsftpd.chroot_list上写进去我们要限制
哪些用户:
vi vsftpd.chroot_list
如果需要制定特定的目录,在vsftp.conf中加入:
user_config_dir=/etc/myfile
#myfile是自己定义一个设置个别用户用的文件夹地址
根据自己设置的地址,建立一个相应的文件夹myfile,然后
往里面建立和用户名相同的文件myfile,myfile文件中的
内容为:
local_root=/home/username/mydir
其中username为已经建立的本地用户,mydir为你希望进入
ftp显示的根目录。
当然了,设置完后别忘了重启ftp服务器哦~~
三:虚拟用户设置
假定我们现在需要设置三个虚拟用户:
user1, user2, user3,密码为用户名,
主目录分别为dir1, dir2, dir1,使得user1在dir1目录下
只有只读权限,user2在dir2目录下只有只读权限,
user3在dir2目录下具有所有权限。
步骤如下:
1. 创建文本文件loguser.txt
格式为:
user_name
Password
根据要求我们的/home/loguser.txt文件应该是这样的:
user1
user1
user2
user2
user3
user3
2. 生成数据库
Ubuntu 8.10使用libdb4.6-util 软件包,可以执行以下命令
安装libdb4.6-util
sudo apt-get install db4.6-util
同样若出现提示说无法找到软件包,可以试着更新源。
然后为了生成对应的数据库我们执行:
sudo db4.6_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
还要设置一下数据库文件的访问权限,使其只能被拥有者
访问和修改:
sudo chmod 600 /etc/vsftpd_login.db
3. 配置pam文件
新建/etc/pam.d/vsftpd.vu 内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
这里用到了已经建立的vsftpd_login数据库;稍后我们将通过
/etc/vsftpd.conf文件中的语句
pam_service_name=vsftpd.vu
来启用PAM文件,使得建立的虚拟用户采用PAM进行验证。
4. 为虚拟用户创建本地用户
1)新建一个系统用户virtual,用户家目录为/home/ftp,
用户登录终端设为/bin/false(即使之不能登录系统)
sudo useradd virtual -d /home/ftp -s /bin/false
sudo chown virtual:virtual /home/ftp
sudo chown virtual:virtual /home/dir1
sudo chown virtual:virtual /home/dir2
2)根据需要创建/etc/vsftpd.conf,一般要确保:
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
#表示启用虚拟用户
guest_username=virtual
#将虚拟用户映射为本地用户,
#使虚拟用户登录后能进入本地
#用户virtual的目录
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
现在为止,3个用户都可以工作了,可是它们的根目录
现在都是/home/ftp,但权限一样。
3)配置/etc/vsftpd_user_conf
注意上面的配置中有
user_config_dir=/etc/vsftpd_user_conf ,
表示各个用户的配置文件放到目录
/etc/vsftpd_user_conf中
我们如下操作:
sudo mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
sudo touch user1 user2 user3
使得user1文件中的内容为:
local_root=/home/ftp/dir1
user2文件中的内容为:
local_root=/home/ftp/dir2
User3文件中的内容为:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/dir1
最后重启服务器就完成了~~
四:vsftpd.conf中的配置信息
Anonymous_enable=YES (允许匿名登陆)
Local_enble=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 服务器)*
Anon_upload_enable=YES (开放匿名用户的上传权限)
Anon_mkdir_write_enable=YES (匿名用户可创建目录的同时可以在此目录中上传文件)
Write_enable=YES (开放本地用户写的权限)
Anon_other_write_enable=YES (匿名帐号可以有删除的权限)
Anon_world_readable_only=NO (放开匿名用户浏览权限)
Ascii_upload_enable=YES (启用上传的 ASCII 传输方式)
Ascii_download_enable=YES (启用下载的 ASCII 传输方式)
Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)
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 端口进行数据连接)
Write_enable=YES (本地帐户登陆后可以删除和修改文件)
Chroot_local_user=YES (本地所有帐户都只能在自家目录)
Chroot_list_enable=YES (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
(前提是 chroot_local_user=NO)
Userlist_enable=YES (在指定的文件中的用户不可以访问)
Userlist_deny=YES
Userlist_file=/指定的路径/vsftpd.user_list
Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)
Ls_recurse_enable=NO
Async_abor_enable=YES
One_process_model=YES
Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)
Guest_enable=YES (虚拟用户可以登陆)
Guest_username=所设的用户名 (将虚拟用户映射为本地用户)
User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹
(指定不同虚拟用户配置文件的路径)
Chown_uploads=YES (改变上传文件的所有者为 root)
Chown_username=root
Deny_email_enable=YES (是否允许禁止匿名用户使用某些邮件地址)
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=YES ( 服务器端用被动模式)
User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)
环境:Ubuntu 8.10
步骤:
一:安装vsftpd
vsftpd是Ubuntu自带的FTP服务器,直接安装即可:
sudo apt-get install vsftpd
如果提示你说没有找到软件包vsftpd,可能你的源没有更新,
或者你所用的源不提供软件包,可以换个源试试。
编辑更新源命令:sudo gedit /etc/apt/sources.list
更新命令:sudo apt-get update 或 sudo apt-get dist-upgrade
http://sns.linuxpk.com/space-43898-do-blog-id-15275.html提供了不
错的更新源列表,大家可以参考。
安装后/home/下会出现一个ftp目录。
如果没有生成,可以手动生成,并修改权限:
sudo useradd -m ftp
sudo chown root:root /home/ftp
sudo chmod 755 /home/ftp
此时如果访问下ftp://IP地址,会看到一个空白内容的ftp
空间。获得本地IP地址的命令为:ifconfig。
二:匿名用户设置
这些权限主要在 /etc/vsftpd.conf文件中设置。默认设置下匿名
用户可以下载,但不能写入或是上传。
要让匿名用户无法访问,只需要把Anonymous_enable=YES这一项
<
15314
span style="font-size:12pt;font-family:'宋体';">注释掉变为:#Anonymous_enable=YES
或使得Anonymous_enable=NO。
另外必须把ftp目录删除,否则匿名用户仍可登录。
最后别忘了要重启ftp服务器(使修改过的配置文件生效):
sudo /etc/init.d/vsftpd restart
如果要是匿名用户同时具有下载、上传、下载的功能
把vsftpd.conf文件设置为(其它设置不变):
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=NO
还要改变共享目录的权限:
sudo chown root:root /home/ftp sudo chmod 755 /home/ftp
要说明的是,匿名开FTP上传是极其不安全的,不推荐使用。
二:本地用户设置
只要把vsftpd.conf文件设置为(其它设置不变):
local_enable=YES
write_enable=YES
这样输入用户名密码后会显示用户的根目录。
还有一个问题,这样的设置允许用户跳到任何其他目录。
为了对此限制,在vsftpd.conf中设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
接下来我们就能在vsftpd.chroot_list上写进去我们要限制
哪些用户:
vi vsftpd.chroot_list
如果需要制定特定的目录,在vsftp.conf中加入:
user_config_dir=/etc/myfile
#myfile是自己定义一个设置个别用户用的文件夹地址
根据自己设置的地址,建立一个相应的文件夹myfile,然后
往里面建立和用户名相同的文件myfile,myfile文件中的
内容为:
local_root=/home/username/mydir
其中username为已经建立的本地用户,mydir为你希望进入
ftp显示的根目录。
当然了,设置完后别忘了重启ftp服务器哦~~
三:虚拟用户设置
假定我们现在需要设置三个虚拟用户:
user1, user2, user3,密码为用户名,
主目录分别为dir1, dir2, dir1,使得user1在dir1目录下
只有只读权限,user2在dir2目录下只有只读权限,
user3在dir2目录下具有所有权限。
步骤如下:
1. 创建文本文件loguser.txt
格式为:
user_name
Password
根据要求我们的/home/loguser.txt文件应该是这样的:
user1
user1
user2
user2
user3
user3
2. 生成数据库
Ubuntu 8.10使用libdb4.6-util 软件包,可以执行以下命令
安装libdb4.6-util
sudo apt-get install db4.6-util
同样若出现提示说无法找到软件包,可以试着更新源。
然后为了生成对应的数据库我们执行:
sudo db4.6_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
还要设置一下数据库文件的访问权限,使其只能被拥有者
访问和修改:
sudo chmod 600 /etc/vsftpd_login.db
3. 配置pam文件
新建/etc/pam.d/vsftpd.vu 内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
这里用到了已经建立的vsftpd_login数据库;稍后我们将通过
/etc/vsftpd.conf文件中的语句
pam_service_name=vsftpd.vu
来启用PAM文件,使得建立的虚拟用户采用PAM进行验证。
4. 为虚拟用户创建本地用户
1)新建一个系统用户virtual,用户家目录为/home/ftp,
用户登录终端设为/bin/false(即使之不能登录系统)
sudo useradd virtual -d /home/ftp -s /bin/false
sudo chown virtual:virtual /home/ftp
sudo chown virtual:virtual /home/dir1
sudo chown virtual:virtual /home/dir2
2)根据需要创建/etc/vsftpd.conf,一般要确保:
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
#表示启用虚拟用户
guest_username=virtual
#将虚拟用户映射为本地用户,
#使虚拟用户登录后能进入本地
#用户virtual的目录
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
现在为止,3个用户都可以工作了,可是它们的根目录
现在都是/home/ftp,但权限一样。
3)配置/etc/vsftpd_user_conf
注意上面的配置中有
user_config_dir=/etc/vsftpd_user_conf ,
表示各个用户的配置文件放到目录
/etc/vsftpd_user_conf中
我们如下操作:
sudo mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
sudo touch user1 user2 user3
使得user1文件中的内容为:
local_root=/home/ftp/dir1
user2文件中的内容为:
local_root=/home/ftp/dir2
User3文件中的内容为:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/dir1
最后重启服务器就完成了~~
四:vsftpd.conf中的配置信息
Anonymous_enable=YES (允许匿名登陆)
Local_enble=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 服务器)*
Anon_upload_enable=YES (开放匿名用户的上传权限)
Anon_mkdir_write_enable=YES (匿名用户可创建目录的同时可以在此目录中上传文件)
Write_enable=YES (开放本地用户写的权限)
Anon_other_write_enable=YES (匿名帐号可以有删除的权限)
Anon_world_readable_only=NO (放开匿名用户浏览权限)
Ascii_upload_enable=YES (启用上传的 ASCII 传输方式)
Ascii_download_enable=YES (启用下载的 ASCII 传输方式)
Banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)
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 端口进行数据连接)
Write_enable=YES (本地帐户登陆后可以删除和修改文件)
Chroot_local_user=YES (本地所有帐户都只能在自家目录)
Chroot_list_enable=YES (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
(前提是 chroot_local_user=NO)
Userlist_enable=YES (在指定的文件中的用户不可以访问)
Userlist_deny=YES
Userlist_file=/指定的路径/vsftpd.user_list
Banner_fail=/路径/文件名 (连接失败时显示文件中的内容)
Ls_recurse_enable=NO
Async_abor_enable=YES
One_process_model=YES
Listen_address=10.2.2.2 (将虚拟服务绑定到某端口)
Guest_enable=YES (虚拟用户可以登陆)
Guest_username=所设的用户名 (将虚拟用户映射为本地用户)
User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹
(指定不同虚拟用户配置文件的路径)
Chown_uploads=YES (改变上传文件的所有者为 root)
Chown_username=root
Deny_email_enable=YES (是否允许禁止匿名用户使用某些邮件地址)
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=YES ( 服务器端用被动模式)
User_config_dir=/任意指定的路径//任意文件目录 (指定虚拟用户存放配置文件的路径)
相关文章推荐
- Ubuntu Linux系统建立FTP服务器方法步骤
- 虚拟机中linux系统下如何建立ftp用户以及破解ftp用户!!
- 『系统管理』Linux如何建立FTP(ProFTP的设置)
- Ubuntu系统建立FTP服务器学习教程
- 用Ubuntu Linux系统架设cacti监控服务器
- 手把手教你如何建立自己的Linux系统(-)
- 双系统(win7和ubuntu),重装win7后如何找回linux
- 在VMware 8虚拟机下,ubuntu系统如何安装 vmware tools【使用所有Linux系统安装vmware tools】
- ubuntu下建立ftp服务器
- 如何在linux上搭建FTP服务器以及在windows上访问
- Linux中如何搭建一个ftp服务服务器-超详细
- linux下如何更改服务器的系统时间
- ubuntu16.04如何远程远程登录linux系统
- 移植vsftpd FTP服务器到ARM-Linux系统
- 关于用java搭建FTP服务器和远端Linux系统传输文件
- Linux系统之路——如何在服务器用U盘安装CentOS7.2(一)
- 第二版 手把手教你如何建立自己的Linux系统(LFS速成手册)
- Ubuntu/Debian系统中 Linux服务器的初步配置流程
- 如何安装win7/win10和linux [ubuntu16.04LTS]双系统(与原系统共存方式)
- 如何在Ubuntu上安装LAMP服务器系统?