辽 宁 工 业 大 学
linux 课程设计(论文)
题目: REDHAT LINUX 系统下搭建FTP 服务器
学 院: 软件学院
专业班级: 软件工程125班
学 号: 121301143
学生姓名: 张白冰
指导教师: 陈 浩
教师职称: 讲 师
起止时间: 2012.12.1—2012.12.5
课程设计(论文)任务及评语
学 院:软件学院 教研室:
目录
第一章 安装VSFTP套件. 1
1.1首先查看我的Redhat5上是否已经安装. 1
1.2 如果没有安装话,就要选择一种方式安装. 1
1.3 VsFtp的配置文件. 3
第二章 配置FTP服务器. 4
2.1最简单的vsfrpd.conf设定. 4
2.2 配置好FTP服务器后,使用匿名用户及实体用户上传下载文件进行测试。. 5
第三章 总结. 9
参考文献. 10
第一章 安装VSFTP套件
1.1首先查看我的Redhat5上是否已经安装
rpm -qa| grep vsftpd
如果已经安装就会出现vstfp的版本号相关的信息,如果没有出现就是没有安装
1.2 如果没有安装话,就要选择一种方式安装
可以到官方网站去下载 http://vsftpd.beasts.org
也可以用光盘安装,RedHat 5的安盘里自带的,所以我选择光盘安装
(1)先把光盘挂载到系统上:
mount /dev/cdrom /mnt
这样光盘的内容就被挂载到/mnt的设备上,现在可以通过/mnt访问光盘上的内容了
(2)在光盘上安装vsftp,并且启动vsftp
rpm -ivh vsftpd*
(3)修改启动方式,改为系统启动时,自动启动
chkconfig vsftpd on
也可以查看启动方式
chkconfig --list |grep vsftpd
只要在第2--5为on就能随机启动
(4)启动ftp
service vsftpd start
(5)连接测试
vsftp默认安装目录是:/etc/vsftpd
默认有一个ftp目录:var/ftp
vsftp默认是用允许匿名用户【anonymous】登陆,允许下载,但是不允许上传
如果连不上,可能是linux 防火墙的原因
停止防火墙:service iptables stop
开启防火墙:service iptables start
(1)从光盘中找到从光盘中找到从光盘中找到从光盘中找到 vsftp的的的的rpm安装包安装包安装包安装包
图1
(2)rpm -ivh --force --nodeps vsftpd-2.0.1-5.EL4.5.i386.rpm
图2
(3)检验是否安装成功
图3
(4)尝试启动
图4
(5)Windows下尝试连接,在地址行中输入ftp://ip地址,,如果能访问则表示启动成功。
(6)创建FTP用户,在Linux中,ftp用户和系统用户是同一个的,因此,创建系统用户就等于创建了FTP用户。
图5
(7)设置用户,需要设置ftp的用户不能使用的ssh登入,同时系统用户也不能使用通过ftp进行登入。可以通过修改/etc/vsftp目录下的ftp_user文件来对权限进行控制。
图6
8. 设置ftp的主目录,vsftp的用户是与系统用户相同的,所以ftp的主目录也就是该系统用户的根目录也就是该系统用户的根目录,如果有多个用户,则指定所有用户都为同一个根目录即可。
9. 将防火墙设置为允许ftp通过模式,重启ftp服务,尝试登入。
1.3 VsFtp的配置文件
/etc/vsftpd/vsftpd.conf----------主配置文件
/etc/rc.d/init.d/vsftpd ----------启动脚本
/etc/pam.d/vsftpd ----------- PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers -------------禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。
/etc/vsftpd/user_list-------------禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。
/var/ftp -----------------------------匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub------------------------匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log--- Vsftpd的日志文件
第二章 配置FTP服务器
2.1最简单的vsfrpd.conf设定
一、修改/etc/vsftpd/vsftpd.conf文件
[root@test root]# vi /etc/vsftpd/vsftpd.conf //
以下是关于主机与安全性的设定
Use_localtime=YES //
Dirmessage_enable=YES //发送修改目录信息
Connect_from_port_20=YES //允许使用数据传输端口 20
Xferlog_enable=YES //登陆记录
Xferlog_std_format=YES //标准登陆记录
Pam_service_name=vsftpd //设置PAM论证服务的配置文件名称,存入/etc/pam.d/目录
Userlist_enable=YES //由于默认userlist_deny=YES
Tcp_wrappers=YES //
以下是关于anonymous的设定
Anonymous_enable=YES //允许匿名用户登陆
以下是关于实体用户的设定
Local_enable=YES //允许实体用户登陆
Write_enabel=YES //允许写操作
Local_umask=022 //文件掩码
Userlist_enable=YES //
二、重新启动vsftpd服务器,使更新的配置文件有效
[root@test root]#/etc/rc.d/init.d/vsftpd restart //重新启动
三、进行客户端测试。以匿名用户登录Linux下的FTP服务器的过程如下:
C:\Documents and Settings\Administrator>ftp 172.25.1.126 //ftp加IP地址
Connected to 172.25.1.126.
200(vsFTPD 1.1.3)
User(172.25.1.126:(none)):anonymous //输入用户名为anonymous
331 please specify the password.
Password: //输入密码anonymous
230 login successful. Have fun.
Frp>is //查看命令
200 port command successful.consider using pasv //显示信息
150 here comes the directory listing.
Pub //is命令结果
226 directory send ok.
ftp:5 bytes received in 0.00seconds 5000.00kbytes/sec.
以实体用户(如yangzongde)登陆linux下的FTP服务器的过程如下:
C:\Documents and Settings\Administrator>ftp 172.25.1.126
Connected to 172.25.1.126.
200(vsFTPD 1.1.3)
User(172.25.1.126:(none)):yangzongde
331 please specify the password.
Password:
230 login successful. Have fun.
Frp>is
200 port command successful.consider using pasv //显示信息
150 here comes the directory listing.
a.txt
226 directory send ok.
ftp:5 bytes received in 0.00seconds 5000.00kbytes/sec.
2.2 配置好FTP服务器后,使用匿名用户及实体用户上传下载文件进行测试。
一、设定配置文件内容
[root@test root]# vi /etc/vsftpd/ vsftpd.conf
#关于主机与安全性的设定
Using_localtime=YES
Dirmessage_enable=YES
Xferlog_enable=YES
Connect_from_port_20=YES
Pam_service_name=vsftpd
Tcp_wrappers=YES
#关于anonymous的设定
Anonymous_enable=NO
#关于real user的设定
Local_enable=YES
write_enable=YES
local_umask=022
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
local_max_rate=100000
二、限制实体用户在自己的主目录内设定文件
[root@test root]# vi /etc/vsftpd.chroot_list
test1
test2
三、以PAM模式限制某些帐号无法登录主机的设定。
[root@test root]# vi /etc/pam.d/vfsftpd
auth ….. file=/etc/vsftpd.ftpusers …
[root@test root]# vi /etc/vsftpd.ftpusers
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
四、以userlist_file限制某些帐号的登录。
[root@test root]# vi /etc/vsftpd.user_list
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
五、设定进入目录时显示的讯息
[root@test root]# vi /home/.message
this is the home dictionary!
六、重新启动xinetd。
[root@test root]# /etc/rc.d/init.d/vsftpd restart
七、测试。以匿名用户为例的测试过程如下:
c:\Documents and Settings\Administrator>ftp 172.25.1.126
Connected to 172.25.1.126.
220 (vsFTPd 1.1.3)
User (172.25.1.126:(none)): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
以实体用户为例的(非test1和test2)测试过程如下:
c:\Documents and Setting\Aministrator>ftp 172.25.1.126
Connected to 172.25.1.126.
220 (vsFTPd 1.1.3)
User (172.25.1.126:(none)): yangzongde
331 Please specify the password.
Password:
230 Login successful. Have fun.
ftp> cd /
250 Directory successfullty changed.
以test1用户为例的测试过程如下:
c:\Documents and Settings\Administrator>ftp 172.25.1.126
Connected to 172.25.1.126.
220 (vsFTPd 1.1.3)
User (172.25.1.126:(nonr)): test1
331 Please specify the password.
Password:
230 Login successful. Have fun.
ftp> pwd
257 ”/”
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
第三章 总结
本次实验惊醒的还算顺利,遇到的问题基本上都能解决,实验过程就是一个学习的过程,本次课程让我了解了linux,此次实验让我受益匪浅。
linux登录部分:在使用非root用户登录后不能使用的一些命令要注意在登录后切换角色,有时候不是su root就能完全切换过来的,必要时用su –l root,这时候基本上是可以搞定了。
ip配置部分:考虑到本机所在网段,最好是把VMware net8配置到和本机在同一网段,还有就是在本机上对net8和net1进行配置只是对虚拟机的网卡的所在网段进行配置,需要在虚拟机内部把ip地址配到和net8在同一网段,否则会出现和我前面出现的一样情况,能ping通,但是不能连接。
本地用户登录部分:本地用户登录后能在整个linux文件内部进行切换,如果要实现本地用户的上传和下载需要在vsftpd.conf进行一系列配置,具体操作参看实验内容部分。
匿名用户部分:在默认情况下,匿名用户是可以登录的,也可以下载,但是没有上传的权限,需要在vsftpd.conf里面修改anon_upload_enable=YES,此时重新启动vsftpd就行了,敲入service vsftpd restart 重启。
虚拟用户部分:首先要了解虚拟用户的功能,参看csdn上面大牛们的工作日记可以了解到:公司要重新搭建一个vsftp,考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。因为 vsftpd 的虚拟用户采用了不与系统账户口令文件合二为一的方法,也就是说,为了认证这些虚拟用户vsftpd 使用单独的口令库文件(pam_userdb),由可插拔认证模块(PAM)进行认证。使用这种方式更加安全,并且配置更灵活,可以代替本地用户登录FTP服务器。
参考文献
1 李善平,刘文峰,王焕龙.Linux与嵌入式系统(2).北京:清华大学出版社,2006.3,208~211
2 Kurt Wall等.GNU/Linux编程指南(2).张辉译.北京:清华大学出版社,2002.6,372~390
3 马季兰,彭新光.Linux操作系统(3).北京:电子工业出版社,2004.8,132~155
4 Neil Matthew,Richard Stones.Linux程序设计(3).陈健,宋健健等译.北京:人民邮电出版社,2007.7,579~604
5 倪继利.Qt及Linux操作系统窗口设计.北京: 电子工业出版社,2006.12,218~236
6 徐成等著.嵌入式Linux系统实训教程.北京:人民邮电出版社,2010.4,180~201
7 韦东山.嵌入式Linux应用开发完全手册.北京:人民邮电出版社,2007.4,32~45
8 苗忠良,宛斌.Qtopia编程之道.北京:清华大学出版社,2009.1,92~104
9 吴鑫毅.基于Qt和ARM的无线点菜系统软件设计. (硕士学位论文) .厦门大学:机械电子工程,2009.06.01,16~35
10 杨向文.基于ARM-LINUX的嵌入式媒体播放器的研究与实现.(硕士学位论文).大连海事大学:计算机科学与技术,2009.06.01,40~44
11 李年倏.基于Linux的多媒体播放器的软件设计与实现.三明学院:数学与计算机科学系,2009.12,1~6
12 王森林.基于嵌入式Linux的多媒体播放器设计. (硕士学位论文).西南交通大学:电力电子与电力传动,2007.04.01,16~24
13 郑建文.嵌入式多媒体开发平台的设计和实现.(硕士学位论文).厦门大学:电路与系统,2008.08.01,9~12