目录服务器Linux Ubuntu上架设FTP

本篇文章是一篇关于目录服务器的帖子

    操作系统:ubuntu (GNU/Linux)

    为了在机子上架设ftp服务器,我们须要安装ftp服务器软件。Linux下具有代表性的ftp服务器软件有Wu-FTP,ProFTP和Vsftp。

    Wu-FTP(Washington University FTP)由美国华盛顿大学开发。它的功能壮大,配置较复制。由于开发时间较早,应用十分普遍,也因此成为黑客们重要的攻击目标。

    ProFTP针对Wu-FTP的弱项而开发,在安全性方面进行了改进,并供给了一些Wu-FTP没有的功能,大大简化了架设和管理FTP服务器的工作。

    Vsftp在安全性,高性能及稳定性3个方面上有上佳的表示。它供给的重要功能包括虚拟IP设置,虚拟用户,standalone(可自行独自启动的daemon),inetd操作模式(由一支特殊的super daemon管理),壮大的单用户设置能力以及带宽限流等。接下来我们重要讲解在ubuntu上如何架设vsftpd。

    vsftpd的安装:

    在ubuntu可直接通过apt安装    sudo apt-get install vsftpd

    安装终了,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口

    ps -eaf|grep vsftpd

    目录和服务器

    vsftpd进程已开启

    netstat -tnl|grep :21

    目录和服务器

    

端口21正在被监听

    vsftpd的配置文件:

    在ubuntu中,vsftpd的重要配置文件分布如下:

    /etc/vsftpd.conf    vsftpd服务器的配置文件

    /usr/sbin/vsftpd    vsftpd服务器的进程文件

    /etc/pam.d/vsftpd   vsftpd服务器的PAM接口配置文件

    /var/ftp            vsftpd服务器匿名用户的工作目录

    配置vsftpd服务器:

    vsftpd服务器的配置文件以及各参数代表的意思如下:

    /etc/vsftpd.conf

    

    

    vsftpd.conf

    

    

listen=YES
listen_ipv6=YES    # listen=YES和listen_ipv6=YES 设为YES表示将以独立的方式运行(可自行独自启动的daemon),前者监听ipv4,后者监听ipv6,但两者不能同时在一个配置文件中设置

anonymous_enable=YES        # 表示答应匿名用户登录FTP服务器
anon_world_readable_only=NO    # 只要ftp用户在操作系统中有读权限,就可以下载文件
anon_root=/var/ftp/anonymous    # 匿名用户登录后进入到/var/ftp/anonymous目录中,可以下载该目录中的文件
anon_uploads_enable=YES        # 匿名用户可以上传文件
anon_mkdir_write_enable=YES    # 匿名用户可以在服务器上创建目录
anon_other_write_enable=YES     # 匿名用户可以在服务器长进行命名,删除等写操作

local_enable=YES        # 表示答应当地用户帐号登录
local_umask=022            # 表示当地用户创建新的文件时,该文件初始的权限值。022表示初始的权限值是创建者有全体的权限,其他用户(包括组用户,其他用户)只有读和执行权限,077表示初始创建者具有全体权限,其他用户没有权限

write_enable=YES        # 表示服务器接收与写有关的控制命令

dirmessage_enable=YES        # 表示用户第一次进入一个新目录时,会给用户一些提示信息
use_localtime=YES        # 表示服务器显示当地时区时间,默许是显示GMT时间


xferlog_enable=YES        # 答应产生日志
xferlog_std_format=YES        # 日志采取标准的xferlog格式
xferlog_file=/var/log/vsftpd.log# 日志文件以及所在目录

connect_from_port_20=YES    # 使用20端口作为建立数据连接时的源端口

pam_service_name=vsftpd        # 指定PAM服务配置文件的名字,在/etc/pam.d

chown_uploads=YES        # 这两个选项是一对相关的配置,表示匿名用户上传的文件所以者将变为whoever,这个配置是为了安全目的
chown_username=whoever        # 文件所有者变为其他用户后,匿名用户将不能再对文件进行删除,甚至读操作,例如作业上交FTP

idle_session_timeout=600    # 表示控制连接的超时值为600秒
data_connection_timeout=120    # 表示数据连接的超时值为120秒

nopriv_user=ftpsecure        # 表示当vsftpd进程处于非特权运行状态时,所使用的用户身份是ftpsecure

async_abor_enable=NO        # 表示vsftpd支撑”async ABOR“的FTP命令,这条命令会影响vsftpd的安全,一般使用默许的NO设置

ascii_upload_enable=YES
ascii_download_enable=YES    # 表示上传下载文件时真正答应ASCII模式。有些FTP服务器在实现ACSII传输模式时,轻易遭受DoS攻击。为了防止这类情况的发送,vsftpd给客户端回应时可以假装允AXSCII模式,但现实上使用的是binary模式,通过把这两个值设置为NO来到达。

ftpd_banner=Welcome to stone FTP service.    # 表示用户登录时,将显示Welcome to stone FTP service信息,没有这个选项时,将显示vsftpd服务器的名称和版本信息,存在安全问题,因而这样做的目的是为了隐藏这些信息

deny_email_enable=YES                # 匿名用户如果输入aaa@做为登录密码,将被拒绝,重要目的是为了防止一些自动登录工具进行登录。
banned_email_file=/etc/vsftpd.banned_emails    # 指定的deny_mail的文件

chroot_list_enable=YES                # 这两个选项制订了一个用户列表,这个列表放在/etc/vsftpd/chroot_list文件中。当 chroot_local_user
chroot_list_file=/etc/vsftpd/chroot_list    # 设为NO后,这些用户登录FTP服务器后,他们看到的根目录是他们自己的个人目录,也就是说虽然在现实的文件系统中,这些用户个人目录的上级还有目录,但是不能切换到这些上级目录

chroot_local_user=YES                # 当chroot_local_user被设置为YES时,上述用户列表将不会被制约在个人目录中,可以进一步转到其他目录

ls_recurse_enable=YES        # 表示客户端在使用ls命令时可以加-R参数,-R参数表示ls命令可以列出整个目录树的内容,须要一些处理时间,特殊存在恶意用户时,情况会更严重

anon_max_rate=0        # 用于设置匿名用户客户端可以到达的最大速率,其值是一个数值,单位为b/s,0表示无制约
local_max_rate=0    # 该选项制约的是当地用户的速率
max_clients=0        # vsftpd能接收的最大客户端连接数
max_per_ip=5        # 制约每一台主机可以连入的客户端数,用户为了加快下载速度,可能会打开很多的客户端连接,影响其他用户的正常使用

    

    匿名用户配置:

    配置匿名用户,使得

    1 FTP服务器支撑匿名用户(帐号:anonymous   密码:任意)登录

    2 只要ftp用户(操作系统用户)在操作系统有读权限,就可以下载文件

    3 匿名用户登录后进入/var/ftp/anonymous目录,可以下载该目录中的文件

    4 可以上传文件到目录/var/ftp/anonymous/upload目录中,但不能下载或删除该目录中的文件

    每日一道理
整个世界,因为有了阳光,城市有了生机;细小心灵,因为有了阳光,内心有了舒畅。明媚的金黄色,树丛间小影成像在叶片上泛有的点点破碎似的金灿,海面上直射反映留有的随波浪层层翻滚的碎片,为这大自然创造了美景,惹人醉的温馨之感,浓浓暖意中夹杂着的明朗与柔情,让雨过天晴后久违阳光的心灵重新得到了滋润!

    利用vim修改vsftpd.conf文件

    anonymous_enable=YES

    anon_world_readable_only=NO

    anon_root=/var/ftp/anonymous

    anon_upload_enable=YES

    chown_uploads=YES

    在/var目录下新建目录anonymous,所以者为root,在/var/anonymous目录下新建目录upload,所有者为ftp

    重启vsftpd进程

    sudo killall -HUP vsftpd

    测试匿名用户

    以匿名用户登录当地FTP服务器(127.0.0.1)

    目录和服务器

    

列出目录,下载文件
目录和服务器

    

进入upload目录,上传文件,列出目录

    目录和服务器

    测试终了

    虚拟主机的配置:

    作甚虚拟主机?vsftpd的虚拟主机是指在一台主机上配置多个vsftpd服务,各个vsftpd服务可以采取不同的配置,给用户的感觉似乎这些vsftpd服务是不同的主机上运行的。vsftpd的虚拟主机是基于IP地址。既然是基于IP地址的,那您可能会问我只有一个网卡一个IP怎么配置虚拟主机?

    这时,我们可以利用linux的逻辑网卡来实现不同IP。

    一个虚拟主机的配置例子:

    1 增加逻辑网卡,我当初的IP地址为192.168.1.100,增加逻辑网卡IP为192.168.1.101

    sudo ifconfig eth0:1 192.168.1.101 netmask 255.255.255.0 up

    2 停止vsftpd服务

    sudo killall vsftpd

    3 修改vsftpd.conf配置,增加以下一栏

    listen_address=192.168.1.100

    4 重新启动vsftpd服务 & 表示后台运行

    sudo /usr/sbin/vsftpd /etc/vsftpd.conf &

    5 为第二个vsftpd服务器建立匿名用户对应的当地帐号以及个人目录,参数-d指定个人目录,需自己建立,-s指定登录shell,/sbin/nologin是一种不登录shell

    sudo useradd -d /var/ftp/myftp -s /sbin/nologin myftp

    6 创建/var/ftp/myftp目录,转变/var/ftp/myftp的所有者(默许就是root),目的是使myftp用户对其没有写权限

    sudo mkdir /var/ftp/myftp

    sudo chown root /var/ftp/myftp

    7 复制vsftpd.conf,命名为myvsftpd.conf放在/etc目录下

    sudo cp /etc/vsftpd.conf /etc/myvsftpd.conf

    8 修改myvsftp.conf

    ftpd_banner=Welcome to my virtual FTP server

    ftp_username=myftp

    listen=YES

    listen_address=192.168.1.101

    9 启动第二个vsftpd

    sudo /usr/sbin/vsftpd /etc/vsftpd/myvsftpd.conf

    测试虚拟主机:

    登录192.168.1.100 和 192.168.1.101

    目录和服务器

    测试终了

    虚拟用户的配置:

    vsftpd中的用户有3种。匿名用户,当地用户。还有一种就是接下来分析的虚拟用户,该用户没法登录你的操作系统,但是可以登录FTP服务器,而且当存在很多虚拟用户,您并不须要在操作系统上为每个虚拟用户新建一个弗成登录的当地用户,只须要一个。而且还有一个更壮大的用法,我们可以通过为每个虚拟帐号创建一个配置文件来不同虚拟帐号不同的权限,目录,这将对我们管理FTP用户有很大的便利。

    1 新建user.txt,输入以下内容,表示有2个虚拟用户,分别为xuni1(密码pass1),xuni2(密码pass2)

    

    

    user.txt

    

    xuni1

    pass1

    xuni2

    pass2

    

    2 接下来我们须要生成虚拟帐号数据库,先安装DB库工具

    sudo apt-get install db4.8-util

    在/etc下新建目录/etc/vsftpd

    sudo mkdir /etc/vsftpd

    将数据库文件导入到刚刚产生的目录

    sudo db4.8_load -T -t hash -f /home/stone/user.txt /etc/vsftpd/vsftpd_login.db

    将数据库文件设置权限为600,并不须要被其他用户读,修改

    sudo chmod 600 /etc/vsftpd/vsftpd_login.db

    3 新建/etc/pam.d/vsftpd_login文件,输入以下内容

    

    

    vsftpd_login

    

    

auth required /lib/i386-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vsftp_login
account required /lib/i386-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vsftp_login

    

    所有支撑PAM的程序都有一个与PAM进行对接的配置文件,它们存放在/etc/pam.d目录,vsftpd与PAM的对接配置文件名可以由vsftpd.conf文件中的pam_service_name选项指定,默许是pam_service_name=vsftpd,当以后认证当地用户时,会根据/etc/pam.d/vsftpd文件的配置内容进行认证。

    4 建立所有FTP虚拟用户帐号使用的操作系统帐号,须要我们自己新建目录,并设置该帐号工作目录的权限,所有者(貌似可以修改使之自动新建目录)

    sudo useradd -d /home/ftpsite -s /sbin/nologin ftp_virt

    sudo mkdir /home/ftpsite

    sudo chown ftp_virt /home/ftpsite

    sudo chgrp ftp_virt /home/ftpsite

    sudo chmod 700 /home/ftpsite

    5 在vsftpd.conf配置文件中添加有关虚拟帐号用户的配置内容

    guest_enable=YES

    guest_username=ftp_virt

    pam_service_name=vsftpd_login

    最后一项将于原来的默许值冲突,可以注释掉原来的项,重启vsftpd之后,你将发现当地用户没法登录vsftpd了

    6 设置虚拟用户的权限,我们可以通过添加下面这一行,来指定放置用户配置文件的目录位置是/etc/vsftpd

    user_config_dir=/etc/vsftpd

    解释下这一项的作用,添加这一项之后,当我们以虚拟用户登录vsftpd时,服务器将会寻找/etc/vsftpd目录下于虚拟用户名相同的配置文件,从而确定该虚拟用户的权限等属性。这便利了我们管理FTP虚拟用户。

    7 配置虚拟用户配置文件

    在/etc/vsftpd下,我们新建文件xuni1,输入以下内容

    

    

    xuni1

    

    local_root=/home/ftpsite

    

    新建文件xuni2,输入以下内容

    

    

    xuni2

    

    

local_root=/home/ftpsite
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=YES
write_enable=YES

    

    8 然后重启vsftpd

    先关闭

    sudo killall vsftpd

    启动

    sudo /usr/sbin/vsftpd /etc/vsftpd.conf &

    测试

    目录和服务器

    虚拟用户具体的权限,目录配置方法将可以通过各种方法来配置,这里不再描述。

    http://www.blogjava.net/stonestyle/articles/369104.html

文章结束给大家分享下程序员的一些笑话语录: 系统程序员
  1、头皮经常发麻,在看见一个蓝色屏幕的时候比较明显,在屏幕上什幺都看不见的时候尤其明显;
  2、乘电梯的时候总担心死机,并且在墙上找reset键;
  3、指甲特别长,因为按F7到F12比较省力;
  4、只要手里有东西,就不停地按,以为是Alt-F、S;
  5、机箱从来不上盖子,以便判断硬盘是否在转;
  6、经常莫名其妙地跟踪别人,手里不停按F10;
  7、所有的接口都插上了硬盘,因此觉得26个字母不够;
  8、一有空就念叨“下辈子不做程序员了”;
  9、总是觉得9号以后是a号;
  10、不怕病毒,但是很害怕自己的程序;

--------------------------------- 原创文章 By
目录和服务器
---------------------------------

你可能感兴趣的:(ubuntu)