设为首页 收藏本站
查看: 1071|回复: 0

[经验分享] Ubuntu 搭建FTP服务器

[复制链接]

尚未签到

发表于 2015-11-6 10:34:30 | 显示全部楼层 |阅读模式
环境:Ubuntu 9.04 Server+VSFTPD 2.0.7
slmagicbox@ubuntu904server:~$ uname -a
Linux ubuntu904server 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686 GNU/Linux

slmagicbox@ubuntu904server:~$ dpkg -l | grep vsftpd
ii vsftpd                                    2.0.7-0ubuntu1                    The Very Secure FTP Daemon

原始配置文件/etc/vsftpd.conf:
本配置文件为安装vsftpd后默认生成的,以“#”开头为注释项
# Example config file /etc/vsftpd.conf
   listen=YES               #以standalone模式运行vsftpd
   #listen_ipv6=YES
    anonymous_enable=YES #允许匿名用户访问
   #local_enable=YES
   #write_enable=YES
   #local_umask=022
   #anon_upload_enable=YES
   #anon_mkdir_write_enable=YES
   dirmessage_enable=YES    #当用户首次进入FTP服务器的目录时,显示该目录下的message消息,默认为.message文件,可以用message_file来定义
   xferlog_enable=YES #启用日志,默认路径/var/log/vsftpd.log
   connect_from_port_20=YES #数据连接使用默认的ftp-data端口(20端口)
   #chown_uploads=YES
   #chown_username=whoever
   #xferlog_file=/var/log/vsftpd.log
   #xferlog_std_format=YES
   #idle_session_timeout=600
   #data_connection_timeout=120
   #nopriv_user=ftpsecure
   #async_abor_enable=YES
   #ascii_upload_enable=YES
   #ascii_download_enable=YES
   #ftpd_banner=Welcome to blah FTP service.
   #deny_email_enable=YES
   #banned_email_file=/etc/vsftpd.banned_emails

   # chroot_list_enable below.
   #chroot_local_user=YES
   #chroot_list_enable=YES
   #chroot_list_file=/etc/vsftpd.chroot_list
   #ls_recurse_enable=YES

   # Debian customization
   secure_chroot_dir=/var/run/vsftpd #忽略
   pam_service_name=vsftpd #忽略
   rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #忽略
   rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #忽略
   

修改后功能:

首先我们在/home/ftp目录下建立了以下两个子目录

    * ftphome1
    * ftphome2

然后,我们创建3个虚拟用户,密码分别是用户名后加"test"

    * ftpvuser1
    * ftpvuser2
    * ftpvuser3

    * 用户ftpvuser1 的主目录为 ftphome1 ,只读权限
    * 用户ftpvuser2 的主目录为 ftphome2,只读权限
    * 用户ftpvuser3 的主目录仍为 ftphome2 ,拥有所有权限

步骤:
1. 创建虚拟用户数据库
       1.1 创建文本文件/etc/vsftpd.ftpvuser_list,内容为:         
           ftpvuser1
           ftpvuser1test
           ftpvuser2
           ftpvuser2test
           ftpvuser3
           ftpvuser3test
           slmagicbox@ubuntu904server:~$ sudo touch /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser1" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser1test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser2" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser2test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser3" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser3test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ sudo cat /etc/vsftpd.ftpvuser_list
   确认显示内容与上面列表的相同。   
     
       1.2 安装db4.6-util工具(Berkeley v4.6 database utilities),生成数据库/etc/vsftpd_vuser.db
           slmagicbox@ubuntu904server:~$ sudo apt-get install db4.6-util
           slmagicbox@ubuntu904server:~$ sudo db4.6_load -T -t hash -f /etc/vsftpd.ftpvuser_list /etc/vsftpd_vuser.db
           slmagicbox@ubuntu904server:~$ sudo chmod 600 /etc/vsftpd_vuser.db
      
2. 配置PAM文件
       2.1 新建/etc/pam.d/vsftpd.vuser 内容为:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd_vuser

   slmagicbox@ubuntu904server:/etc/pam.d$ sudo vim /etc/pam.d/vsftpd.vuser
       slmagicbox@ubuntu904server:/etc/pam.d$ cat /etc/pam.d/vsftpd.vuser

      
       2.2 修改配置文件 /etc/vsftpd.conf
   pam_service_name=vsftpd.vuser        #该名字与上面的文件名对应
3.为虚拟用户创建本地系统用户
       3.1 新建一个系统用户ftpvuser,用户家目录为/home/ftp, 用户登录终端设为/bin/false(该用户不能登录系统)
       slmagicbox@ubuntu904server:/etc/pam.d$ sudo useradd ftpvuser -d /home/ftp -s /bin/false
              slmagicbox@ubuntu904server:/etc/pam.d$ sudo chown ftpvuser:ftpvuser /home/ftp
   
4.编辑配置文件/etc/vsftpd.conf
       4.1     

listen=YES  #以standalone模式运行vsftpd
anonymous_enable=NO  #禁止匿名
dirmessage_enable=YES #显
示目录下的message消息
xferlog_enable=YES #启用日志
xferlog_file=/var/log/vsftpd.log #设定日志路径
xferlog_std_format=YES #使用标准日志格式
chroot_local_user=YES #限定用户在家目录

guest_enable=YES #启用虚拟用户
guest_username=ftpvuser #虚拟用户帐号
#user_config_dir=/etc/vsftpd_user_conf #先不启用,后面启用时再说明
pam_service_name=vsftpd.vuser #设置pam服务名,上面2.2已经说明
local_enable=YES
secure_chroot_dir=/var/run/vsftpd #忽略


5. 区分虚拟用户权限
       上面的设置,3个虚拟用户都可以正常登录,但是3者的家目录都在/home/ftp,权限都是一样的,接下来我们通过设置来区分3个虚拟的权限。
      
       5.1 首先启用上面配置文件中的user_config_dir项
              user_config_dir=/etc/vsftpd_user_conf   #启用用户配置文件,设定配置文件存放目录
       5.2 创建配置文件存放目录,并新建用户配置文件,文件名与虚拟用户名相同
              slmagicbox@ubuntu904server:~$sudo mkdir /etc/vsftpd_user_conf
       slmagicbox@ubuntu904server:~$cd /etc/vsftpd_user_conf
       slmagicbox@ubuntu904server:/etc/vsftpd_user_conf$sudo touch ftpvuser1 ftpvuser2 ftpvuser3

      5.3 编辑虚拟用户配置文件
            ftpvuser1内容为:

local_root=/home/ftp/ftphome1

            ftpvuser2内容为:

local_root=/home/ftp/ftphome2

           ftpvuser3内容为:

local_root=/home/ftp/ftphome1
write_enable=YES   #开启全局上传(写)权限
anon_world_readable_only=NO #关闭匿名用户只读(下载)权限
anon_upload_enable=YES #开启匿名用户上传权限
anon_mkdir_write_enable=YES #开启匿名用户建目录权限
anon_other_write_enable=YES  #开启匿名用户除上传和建目录之外的写权限(如重命名,删除等)


           现在达到我们想要的效果了。^_^

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135799-1-1.html 上篇帖子: FTP显示乱码及no such file or directory错误的解决方法 下篇帖子: FTP服务器的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表