ubuntu下ftp服务器的配置

学了linux快三个月了,一开始从命令开始学,后来就自己搭建一个ftp服务器,感觉还是不错的。现在linux选修课,白老师让我们搭建三个服务器

作为期末成绩。呵呵,你懂的~


一:我的电脑是ubuntu12.04系统,没有在虚拟机环境下搭建,直接在操作系统下搭建服务器~

首先让我介绍一下FTP服务器


FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件


         (1)检查sftpd软件是否安装

          ubuntu是否安装了vsftpd服务器

          #rpm    - qa|grep vsftp

          若没有显示信息,则表明你的电脑没有安装这个服务器,接下来要使用

           #sudo apt-get install vsftpd

             一会就安装完了

                 vsftp的卸载也很简单

                使用以下命令

                sudo apt-get autoremove vsftp

    (2)  vsftp软件的使用

          

           启动ftp:service vstfpd start 

           关闭ftp:service vsftpd stop

          重启ftp: service vsftp restart


   (3)配置 FTP服务器

  我的电脑配置文件在   /etc/vsftpd.conf 下

  FTP服务器使用/etc/vsftpd.conf作为他的主配置文件。如果改变了这个配置文件,那么改变将在重启之后生效

下面我使用gedit编辑器来编辑配置文件,由于本人一开始就用习惯了gedit,老师一直用的是vi,我对vi用的不是很熟

用户登录控制:

 

                       anonymous_enable=YES,允许匿名用户登录。

 

                       no_anon_password=YES,匿名用户登录时不需要输入密码。

 

                       local_enable=YES,允许本地用户登录。

 

                       deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。

 

                       banned_email_file=/etc/vsftpd/banned_emails,保存电子邮件黑名单的目录(默认)

 

用户权限控制:

 

                        write_enable=YES,开启全局上传

 

                        local_umask=022,本地文件上传的umask设置为022,系统默认。

 

                        anon_upload_enable=YES,允许匿名用户上传,当然要在write_enable=YES的情况下。同时必须建立一个允许ftp用户读写的目录。

 

                        anon_mkdir_write_enable=YES,允许匿名用花创建目录

 

                        chown_uploads=YES,匿名用户上传的文件属主转换为别的用户,一般建议为root。

 

                        chown_username=whoever,改此处的whoever为要转换的属主,建议root

 

                        chroot_list_enable=YES,用一个列表来限定哪些用户只能在自己目录下活动。

 

                        chroot_list_enable=/etc/vsftpd/chroot_list,指定用户列表文件

 

                        nopriv_user=ftpsecure,指定一个安全账户,让ftp完全隔离和没有特权的账户

 

其他的建议不要配置。

 

用户连接和超时设置:

 

                                     idle_session_timeout=600,默认的超时时间

 

                                     data_connection_timeout=120,设置默认数据连接的超时时间

 

(4)服务器日志和欢迎信息

 

                     dirmessage_enable=YES,允许为配置目录显示信息

 

                     ftpd_banner=Welcome to blah FTP service. ftp的欢迎信息

 

                     xferlog_enable=YES 打开日志记录功能

 

                     xferlog_file=/var/log/xferlog  日志记录文件的位置

 

我们可以更改以上的各个设置,然后重启ftp服务就可以实现对ftp的配置了。


FTP服务器配置实例


1:测试默认匿名用户登入

看到网上的服务器的配置好像在/var/ftp/pub  都有这个目录,我在/var 目录下面没有看到 /ftp的这个目录。于是我新建了一个目录

命令:

#cd /var

切换到那个目录

然后  # sudo mkdir ftp

         #cd  /ftp

       #sudo mkdir   pub

好了,基本搞定

    2: 在pub目录下面新建一个文件

    #touch  Hello.c

   3:测试默认匿名用户的登入

   默认匿名用户不能离开FTP服务器上的匿名用户目录/var/ftp。匿名用户只能下载文件,而没有上传文件到FTP服务器上

下面是登入过程,连接本电脑的IP

root@xiongyao-Lenovo:~# ftp 172.18.71.12
Connected to 172.18.71.12.
220 (vsFTPd 2.3.5)
Name (172.18.71.12:xiongyao): annoymous

Name (172.18.71.12:xiongyao): annoymous
331 Please specify the password.
Password:

Login successful

Remote system is UNIX

Using binary mode to transfer files

ftp> 

登入成功

接下来又要切换到pub目录

ftp> cd /var/ftp/pub
250 Directory successfully changed.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0             117 Nov 30 09:46 Hello.java
226 Directory send OK.
ftp> get Hello.java
local: Hello.java remote: Hello.java
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for Hello.java (117 bytes).
226 Transfer complete.
117 bytes received in 0.00 secs (598.2 kB/s)

下载成功
ftp> put Hello.java
local: Hello.java remote: Hello.java
200 PORT command successful. Consider using PASV.
553 Could not create file.
ftp> 

上传失败


4:允许匿名用户能够上传和下载文件,并允许创建用户自己的目录

(1):创建匿名用户上传目录

#sudo mkdir /var/ftp/up

#sudo chmod o+w /var/ftp/up  //使这个目录具有执行和写的权限

(2):编辑/etc/vsftpd.conf配置文件

annoymous_enable=YES

anno_upload_enable=YES

anno_mkdir_write_enable=YES

write_enable=YES

 这样匿名用户就可以上传和下载文件了~

对了,要上传的文件一定要设置它的权限,否则上传不了

#sudo chmod 777  Hello.java

ftp> cd /home/xiongyao
250 Directory successfully changed.
ftp> put Hello.java
local: Hello.java remote: Hello.java
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp>


好了。现在我的ftp服务器能实现上传和下载文件了!、


三:下面的是限制用户目录


 在默认情况下,用户登入到FTP服务器上后,可以访问服务器中出自己目录之外的其他目录。为了提高FTP服务器的安全性,可以限制用户只能访问自己的主目录,而不能访问其他的目录

(1):创建用户

使用以下命令可以创建用户并设置密码

root@xiongyao-Lenovo:/home/xiongyao# cd
root@xiongyao-Lenovo:~# useradd gujian
root@xiongyao-Lenovo:~# passwd gujian
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
root@xiongyao-Lenovo:~# 

2:编辑/etc/vsftpd.conf配置文件

root@xiongyao-Lenovo:~# cd /etc
root@xiongyao-Lenovo:/etc# gedit /vsftpd.conf


chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


3:创建/etc/vsftpd/chroot_list

#cd  /etc

#gedit chroot_list

gujian

4:重启ftp

service ftp restart

5:在客户端进行测试

root@xiongyao-Lenovo:/etc# ftp 172.18.71.12
Connected to 172.18.71.12.
220 (vsFTPd 2.3.5)
Name (172.18.71.12:xiongyao): gujian
331 Please specify the password.
Password:
login successful

ftp:cd/home

Failed to  change directory


5:最后一项:

使用Mozilla Firefox浏览器



哈哈~~ 一切ok了




 



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值