`

linux下ftp服务器的搭建.txt

阅读更多
linux下ftp服务器的搭建 

RHEL4中ftp服务器的搭建

首先修改配置文件使主机获得永久ip地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=172.16.16.111
NETMASK=255.255.0.0
GATEWAY=172.16.16.1
ONBOOT=yes
TYPE=Ethernet
重启配置文件使之生效
# /etc/init.d/network restart
Shutting down interface eth0:  [  OK  ]
Shutting down loopback interface:  [  OK  ]
Setting network parameters:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  [  OK  ]

需要关掉iptables系统防火墙,使用命令:
# service iptables stop
把安全级别调低
# vi /etc/selinux/config
把其中的:SELINUXTYPE=targeted改为SELINUXTYPE=disabled

在系统中vsftpd并没被默认安装,需要使用rpm命令安装一下
它在RHEL4的第1张光盘中,包文件的名称是vsftpd-2.0.1-5.i386.rpm
首先需要挂载光盘
# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/RedHat/RPMS
# ls -l vsftpd*
-rw-r--r--  25 root root 122195 Jan  6  2005 vsftpd-2.0.1-5.i386.rpm
挂载上去后,把它安装上去
# rpm -ivh vsftpd-2.0.1-5.i386.rpm
warning: vsftpd-2.0.1-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...                ########################################### [100%]
我们看一下vsftpd.conf的配置文件
# grep -v '#' /etc/vsftpd/vsftpd.conf(去除注释行后的配置文件)
anonymous_enable=YES     //anonymous_enable设置为yes时,ftp服务器允许匿名登录,即用户可使用用户名ftp或anonymous进行ftp登录,登录口令为用户E-mail地址。
local_enable=YES     //local_enable设置为yes时允许本地用户登录,本地用户指lunux系统中的用户账号。
write_enable=YES     //write_enable设置为yes时,ftp服务器开放对本地用户的写权限
local_umask=022     //local_umask设置项设置本地用户的文件生成掩码,配置文件中的设置为022。
dirmessage_enable=YES    //dirmessage_enable设置为yes时,当切换到ftp服务器中的某个目录时,将显示该目录下的".message"隐含文件的内容.     
xferlog_enable=YES     //xferlog_enable设置为yes时,ftp服务器将启用上传和下载日志。
connect_from_port_20=YES     //connect_from_port_20设置为yes时,ftp服务器将启用ftp数据端口的连接请求。
xferlog_std_format=YES     //xferlog_std_format设置为yes时,ftp服务器将使用标准的ftpd xferlog日志格式。
pam_service_name=vsftpd      //pam_service_name设置PAM认证服务的配置文件名称,该文件保存在"/etc/pam.d/"目录下。
userlist_enable=YES     //userlist_enable设置为yes时,ftp服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器;userlist_file配置项的默认值是"/etc/vsftpd.usr_list"文件。
listen=YES     //listen设置为yes时,ftp服务器将处于独立启动模式。
tcp_wrappers=YES     //tcp_wrappers设置为yes时,ftp服务器将使用tcp_wrappes作为主机访问控制方式。tcp_wrappers可以实现linux系统中网络服务的基于主机地址的访问控制,在"/etc"目录中的hosts.allow和host.deny两个文件用于设置tcp_wrappers的访问控制,hosts.allow文件设置允许访问记录,host.deny文件设置拒绝访问记录。

启动vsftpd服务器
# service vsftpd start
Starting vsftpd for vsftpd: [  OK  ]
关闭可以使用:
service vsftpd stop
Shutting down vsftpd: [  OK  ]
查看服务器的运行状态使用:
# service vsftpd status
vsftpd is stopped
添加两个本地用户,使用本地用户登录ftp
# useradd aa
# passwd aa
# useradd bb
# passwd bb
并改变目录的属主和属组
# chown aa.aa /home/aa
# chown bb.bb /home/bb
# ls -l /home
total 24
drwx------  4 aa   aa   4096 May 26 12:15 aa
drwx------  4 bb   bb   4096 May 26 12:16 bb
设置宿主目录权限
# chmod 770 /home/aa
# chmod 770 /home/bb
# ls -l /home
total 24
drwxrwx---  4 aa   aa   4096 May 26 12:15 aa
drwxrwx---  4 bb   bb   4096 May 26 12:16 bb
这时可以登录ftp
1、使用匿名用户登录
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,208,47)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Oct 04  2004 pub
226 Directory send OK.
其中匿名用户登录使用ftp或anonymous作为ftp登录的用户名,在vsftpd的默认设置时输入任何字符串或直接回车都可以登录,匿名用户登录后将以ftp服务器系统中的"/var/ftp"目录作为匿名用户的ftp根目录。
2、使用本地用户登录
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): aa
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,223,86)
150 Here comes the directory listing.
-rw-r--r--    1 0        0              19 May 26 03:48 11.txt
226 Directory send OK.
使用put命令可以将ftp客户机中的文件上传到ftp服务器中。
ftp> put 22.txt
local: 22.txt remote: 22.txt
227 Entering Passive Mode (172,16,16,121,86,19)
150 Ok to send data.
226 File receive OK.
30 bytes sent in 0.00086 seconds (34 Kbytes/s)
使用get命令可以将ftp服务器中的文件下载到ftp客户机中。
ftp> get 22.txt
local: 22.txt remote: 22.txt
227 Entering Passive Mode (172,16,16,121,143,82)
150 Opening BINARY mode data connection for 22.txt (30 bytes).
226 File send OK.
30 bytes received in 0.0005 seconds (58 Kbytes/s)
不过使用本地ftp用户账号存在一定的安全性,首先它是系统账号,一旦ftp服务器出现安全漏洞会对整个ftp服务器所在的linux主机造成威胁;另外就是本地用户账号可以离开用户宿主目录,转换到系统中的其他目录中,这对系统的安全有着一定的威胁。
可是设置ftp本地用户禁锢在宿主目录中,这样可以防止它切换到其他的目录中。
在vsftpd服务器的配置文件vsftpd.conf中添加配置项chroot_local_user设置为YES,vsftpd服务器将会把本地用户禁锢在用户宿主目录中。
chroot_local_user=YES
配置完后记得要重启服务,这样ftp本地用户就只可以访问自己的目录了。
配置ftp服务器的虚拟目录
在vsftpd服务器中支持匿名用户、本地用户和虚拟用户3类用户账号
在前面认识了两种,其中匿名用户是名为anonymous或ftp的ftp用户,匿名ftp用户登录后将ftp服务器中的"/var/ftp"作为ftp根目录。匿名用户通常用于提供公共文件的下载。
本地用户账号时ftp服务器中的系统用户账号,使用ftp本地用户账号登录ftp服务器后,登录目录为本地用户的宿主目录。本地ftp用户账号通常和web服务器一起提供虚拟主机服务,作为网页虚拟主机更新网页的途径。
虚拟用户账号时为了保证ftp服务器的安全性,由vsftpd服务器提供的非系统用户账号。虚拟用户ftp登录后将把指定的目录作为ftp根目录。虚拟用户与本地用户具有类似的功能。
虚拟用户账号的设置过程
1、建立虚拟用户口令库文件.
建立虚拟用户的口令库,文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令.
使用文本编辑器建立名为logins.txt的用户口令库文件
# vi logins.txt
ee
123
rr
456
2、生成vsftpd的认证文件.
首先我们需要安装一下db4-utils-4.2.52-7.1.i386.rpm,在第3张光盘中.
# cd /media/cdrom/RedHat/RPMS/
# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm
warning: db4-utils-4.2.52-7.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...                ########################################### [100%]
        package db4-utils-4.2.52-7.1 is already installed
然后使用db_load命令生成认证文件,"-f"命令选项设置的值时虚拟用户的口令库文件,即:logins.txt.命令的参数设置为需要生成的认证文件名vsftpd_login.db,该文件放置在目录"/etc/vsftpd"中.   
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
设置vsftpd_login.db文件的权限只对root用户可读可写.即600.
# chmod 600 /etc/vsftpd/vsftpd_login.db
[root@benet01 ~]# ls -l /etc/vsftpd/vsftpd_login.db
-rw-------  1 root root 12288 May 26 12:54 /etc/vsftpd/vsftpd_login.db
3、建立虚拟用户所需的PAM配置文件.
在"/etc/pam.d"目录中建立vsftpd虚拟用户身份认证所需的PAM配置文件,名称为vsftpd.vu.
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
4、建立虚拟用户及所要访问的目录并设置相应权限.
建立vsftpd虚拟用户所需的系统用户账号,账号为zhen,指定用户的宿主目是"/home/ftpsite/",设置宿主目录的权限是700(vsftpd服务器中的所有虚拟用户账号登录后都将在"/home/ftpsite"目录中)
# useradd -d /home/ftpsite zhen
# chmod 700 /home/ftpsite
5、设置vsftpd.conf配置文件
在对vsftpd.conf配置文件修改前,先将它原来的文件备份,以便出现配置错误时可进行恢复.
# cd /etc/vsftpd
# cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf配置文件添加虚拟用户的配置项:
guest_enable=yes
guest_username=zhen
pam_service_name=vsftpd.vu
所有配置完成后,重新启动vsftpd服务程序
# service vsftpd restart
Shutting down vsftpd: [  OK  ]
Starting vsftpd for vsftpd: [  OK  ]
可以对不同的用户设置不同的权限.
vsftpd服务器中的虚拟用户可以灵活的针对不同的用户账号设置不同的用户权限:
1、设置主配置文件
在vsftpd配置文件中添加user_config_dir配置项,并设置用户配置文件的保存路径
user_config_dir=/etc/vsftpd_user_conf(设置在"/etc/vsftpd_user_conf"目录中保存虚拟用户的配置文件.)
2、建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
3、为虚拟目录建立单独的配置文件
为用户建立独立的配置文件,配置文件名称和用户名相同,并给他相应的权限.
# vi /etc/vsftpd_user_conf/rr
anon_world_readable_only=no  //表示用户可以浏览ftp目录和下载文件.
# ftp 172.16.16.121
Connected to 172.16.16.121.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (172.16.16.121:root): rr
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,16,121,250,156)
150 Here comes the directory listing.
-rw-r--r--    1 0        0              29 May 26 05:27 44.txt
-rw-r--r--    1 0        0               0 May 26 05:30 55.txt
-rw-r--r--    1 503      503             0 May 26 05:24 afile
-rw-r--r--    1 503      503             0 May 26 06:10 file01




分享到:
评论

相关推荐

    Linux下ftp服务器搭建.ppt

    Linux下FTP服务器允许登陆的帐号包括拥有系统帐号的用户和匿名用户anonymous(ftp)。默认情况下,匿名用户登陆后的目录和能够浏览的录都是/var/ftp,而其他用户登陆后的目录为该用户home目录。匿名用户的登陆名称为...

    linux课程设计-Linux下FTP服务器的搭建.pdf

    Linux课程设计-Linux下FTP服务器的搭建 Linux课程设计题目概述: FTP(File Transfer Protocol)是一种在TCP/IP网络上两台计算机之间传送文件的协议,是最早使用的协议之一。尽管World Wide Web(WWW)已经替代了...

    基于stupid-ftpd的海思3531D 嵌入式linux搭建ftp服务器.pdf

    根据提供的文件信息,以下是关于“基于stupid-ftpd的海思3531D嵌入式Linux搭建FTP服务器”相关的详细知识点: ### 1. 环境准备 #### 1.1 运行环境介绍 - **芯片**: 海思Hi3531D V100,一款广泛用于视频编解码的...

    Linux搭建FTP服务器实现匿名上传.doc

    Linux 搭建 FTP 服务器实现匿名上传 Linux 操作系统中搭建 FTP 服务器可以实现匿名上传文件的功能。FTP(File Transfer Protocol)是一种标准的网络协议,用于在网络上进行文件传输。Linux 操作系统提供了多种 FTP ...

    linux课程设计-Linux下FTP服务器的搭建.docx编程资料

    linux课程设计-Linux下FTP服务器的搭建.docx

    Linux的Ftp服务器搭建的个人总结

    总结,Linux上的FTP服务器搭建涉及多个步骤,包括选择和安装服务器软件、配置服务器参数、创建用户以及确保安全。理解并熟练掌握这些步骤,可以有效地管理和维护FTP服务器。在实际应用中,应根据具体需求进行调整,...

    Linux下搭建Ftp服务器.doc

    总结来说,搭建Linux下的FTP服务器涉及软件的安装、配置文件的修改、权限设置以及安全策略的实施。通过合理的配置,可以提供安全且功能丰富的文件传输服务。在实际操作中,应根据具体需求和系统环境调整这些步骤,...

    linux下搭建ftp服务器实验报告借鉴.pdf

    Linux 下搭建 FTP 服务器实验报告借鉴 本实验报告旨在指导读者在 Linux 系统下搭建 FTP 服务器,熟练运用 FTP 服务器,并掌握 FTP 服务器的配置和使用。 一、实验目的 本实验的目的是让读者掌握在 Linux 系统下...

    linux下搭建ftp服务器

    ### Linux 下搭建 FTP 服务器详解 #### 一、概述 在 Linux 系统中搭建 FTP (File Transfer Protocol) 服务器是一种常见的需求,特别是在需要提供文件共享服务时。本文将详细介绍如何在 Red Hat Enterprise Linux 5 ...

    linux下搭建ftp服务器实验报告知识.pdf

    学生需要在该目录下建立一个 test.txt 文件,然后使用 FTP 服务器的 IP 进行测试。 4. 客户端访问 FTP 服务: 学生需要在客户端访问 FTP 服务,前提条件是需要保证主机与虚拟机可以互相 ping 通。学生需要在窗口...

    Linux下搭建Ftp服务器.pdf

    Linux下搭建Ftp服务器 Linux下搭建Ftp服务器是通过文件传输协议(FTP)来实现文件传输的一种方法。FTP是一种非常普遍的文件传输方法,几乎所有的平台上面都有FTP的客户端和服务端软件,因此用FTP来传送文件也是很...

    Linux服务器搭建.docx

    Linux 服务器搭建 Linux 服务器搭建是指在 ...Linux 服务器搭建需要规划和设计、Linux 平台的准备、FTP 服务器配置、DNS 服务器配置等步骤。只有通过合适的规划和设计,才能搭建一个稳定、安全、高效的 Linux 服务器。

    利用虚拟机在linux中搭建ftp服务器.pdf

    利用虚拟机在linux中搭建ftp服务器.pdf

    开题报告(基于Linux系统云服务器的搭建与设计).docx

    开题报告(基于Linux系统云服务器的搭建与设计).docx开题报告(基于Linux系统云服务器的搭建与设计).docx开题报告(基于Linux系统云服务器的搭建与设计).docx开题报告(基于Linux系统云服务器的搭建与设计).docx开题报告...

    linux搭建ftp服务器汇总整理.rar

    本篇文章将详细阐述如何在Linux上搭建FTP服务器,以及如何确保其在局域网和互联网上的正常运行。 首先,我们需要选择一个FTP服务器软件。常见的有vsftpd、ProFTPD和vsftpd等。这里以广泛使用的vsftpd为例进行讲解。...

    ftp服务器搭建.pdf

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地...

    Linux环境下快速搭建ftp服务器.docx

    总的来说,搭建Linux环境下的FTP服务器涉及安装、配置vsftpd以及设置合适的权限。正确配置FTP服务器不仅提供了一个方便的文件传输平台,还能确保数据的安全性。记得定期检查和更新你的配置,以适应不断变化的需求和...

Global site tag (gtag.js) - Google Analytics