FTP服务器高级配置案例.docx
- 文档编号:22839097
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:16
- 大小:24.61KB
FTP服务器高级配置案例.docx
《FTP服务器高级配置案例.docx》由会员分享,可在线阅读,更多相关《FTP服务器高级配置案例.docx(16页珍藏版)》请在冰豆网上搜索。
FTP服务器高级配置案例
###########################################################
FTP服务器高级配置案例
企业环境:
公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关文档的下载。
对所有权互联网开放共享目录,允许下载产品信息,禁止上传。
公司的合作单位能够使用FTP服务器进行上传和下载,但不可以删除数据。
并且保证服务器的稳定性,进行适当优化设置
需求分析:
根据企业的需求,对于不同用户进行不同的权限限制,FTP服务器需要实现用户的审核。
需考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。
为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。
再加一点:
上传资源通过管理员审核合格后再提供给学生下载,服务器要实现IP限制(如限制外网访问),时间限制:
(晚上12点到早上6点不能下载)
*****
netstat-tnl查看21端口如果有就证明了ftp打开了。
如果你还不信可以在局域网的另外一台机登陆你的ftp服务器看看。
使用root权限运行netstat-lnp看看20、21端口是给哪个程序占用了,如果不是vsftpd,就要把那个程序先停下来在启动vsftpd。
不然端口冲突了。
查看/etc/hosts.allow文件,添加语句vsftpd:
ALL(开启ftp)查看防火墙21端口是否开放/etc/init.d/iptablesstatus若没有,开放端口/sbin/iptables-IINPUT-ptcp--dport21-jACCEPT/etc/rc.d/init.d/iptablessave/etc/init.d/iptablesrestart
你的linux能上网么如果能执行下面命令就安装了(不一定成功)
然后你去网上找个配置的教材或者你直接搜鸟哥vsftpd就可以
#wgethttp:
//ftp.yz.yamagata-u.ac.jp/pub/linux/centos/4/os/SRPMS/vsftpd-2.0.1-8.el4.src.rpm
#rpm-ivhvsftpd-2.0.1-8.el4.src.rpm
#####可能会遇到的问题
1、输入命令启动servicevsftpdstart时提示:
unrecognizedservice
解答:
很显然,你的vsftp应该由xinetd来管理。
运行:
#servicexinetdrestart
or:
vi/etc/xinetd.d/vsftpd把disable=yes改成no,然后打开ftp服务
把server_args=-l-a改成server_args=-l把-a去掉,这样系统的用户才有权限用ftp登陆
[root@BZXXDBS02~]#
[root@BZXXDBS02~]#servicexinetdrestart
2、[root@serviceroot]#ftplocalhost
Connectedtolocalhost(127.0.0.1).
500OOPS:
couldnotbindlisteningIPv4socket
解答:
因为xinetd已经启动了vsftpd,而vsftpd设置成了stardalone模式,所以,先
停止xinetd服务,servicexinetdstop,然后/usr/local/sbin/vsftpd&
启动ftp服务
_______________
一、创建用户数据库
1.创建用户文本文件
touch/etc/vsftpd/vsftpd_virtualuser.txt
vi/etc/vsftpd/vsftpd_virtualuser.txt
public
123
vip
456
2.生成数据库
db_load-T-t-f/etc/vsfptd/vsftpd_virtualuser.txt/etc/vsftpd/vsftpd_virtualuser.db
3.修改数据库文件访问权限
chmod600/etc/vsftpd/vsftpd_virtualuser.db
二、创建PAM文件
vi/etc/pam.d/vsftpd
authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_vritualuser
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_vritualuser
三、创建虚拟用户
mkdir/var/ftp/share
chmod-R500/var/ftp/share只下
useradd-d/var/ftp/share/ftpuser//建立帐号并把指定的文件夹给帐户
chownftpuser.ftpuser/var/ftp/share
mkdir/var/ftp/vip
chmod-R700/var/ftp/vip可下可上//先设设权限。
如果不设置可执行用户登录会出不能更改目录错误
useradd-d/var/ftp/vip/ftpvip//就算我们建立了虚拟账号但始终还是要用的linux系统本身的用户所以必须建一个用户与虚拟用户相关联(可以理解成一个实际用户对应多个虚拟用户)
chownftpvip.ftpvip/var/ftp/vip
四、建立配置文件
1.修改主配置文件vi/etc/vsftpd/vsftpd.conf
listen=YES//就是独立守护程序运行模式
anonymous_enable=yes//禁用匿名帐户
local_enable=yes//启用本地帐户
anon_mkdir_write_enable=NO//不允许匿名用户创建目录这个最好不要打开否则会带来不可预测的后果
anon_other_write_enable=NO//不开放用户的改名、删除文件等权限;
anon_upload_enable=NO//不允许匿名上传
将所有本地用户限制在家目录中,
chroot_local_user=yes//将所有本地用户限制在家目录中
pam_server_name=vsftpd
user_config_dir=/etc/vsfptd/virtualuserconfig//设置虚拟帐号的主目录为/virtualuserconfig
max_clients=30
max_per_ip=10
2.建立虚拟帐号的配置文件
在user_config_dir指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段
首先建立公共帐号ftp的配置文件:
mkdir/etc/vsftpd/virtualuserconfig
touch/etc/vsftpd/virtualuserconfig/ftp
touch/etc/vsftpd/virtualuserconfig/vip
vi/etc/vsftpd/virtualuserconfig/ftp
guest_enable=yes//开启虚拟帐户
guest_username=ftpuser//设置FTP对应的系统帐号为ftpuser(对应上面的虚拟帐号)
anon_world_readable_only=no//允许匿名用户可以访问整个服务器的文件系统,允许其下载
anon_other_write_enable=no//匿名帐号可以有删除的权限
anon_max_rate=50000//限定传输速率为50KB/S
注意:
vsftpd对于文件传输速度限制并不是绝对锁定在一个数值上,而是在80%~120%之间变化,比如设置100KB/s则实际是速度在80KB/s~120KB/s之间变化
vi/etc/vsftpd/virtualuserconfig/vip下面是客户帐号的配置文件vip
guest_enable=yes//开启虚拟帐户
guest_username=ftpvip//设置FTP对应的系统帐号
anon_world_readable_only=no
write_enable=yes//开放本地用户写的权限
anon_mkdir_write_enable=yes//允许创建目录,这个最好不要打开否则会带来不可预测的后果
anon_upload_enable=yes//开启用户上传功能
anon_max_rate=100000
anonymous_enable=YES//允许匿名用户登陆
local_enable=YES//允许本地用户登陆如果这个不打开的话uid500以下的人都被访问拒绝
write_enable=YES//允许客户端写命令
local_umask=022//本地用户新文件的umask的值就等于ground和other部分的可写部分去掉
anon_upload_enable=YES//允许匿名用户上传文件
anon_mkdir_write_enable=YES//允许匿名用户创建目录这个最好不要打开否则会带来不可预测的后果
dirmessage_enable=YES//允许使用目录的消息
Ascii_upload_enable=yes启用上传的ASCII传输方式
Ascii_download_enable=yes启用下载的ASCII传输方式
ftpd_banner=Welcometoweihua0722'sFTPservice.//登陆欢迎辞词
ls_recurse_enable=YES//允许使用ls-R命令
由于我的ftp是自己编译的所以启动时默认是standalone模式因此用
/usr/local/sbin/vsftpd&启动注意用这个启动先要把xinetd模式关了否则可能会出现错误
五.进一步配置vsftpd之优化启动命令
vsftpd有两种工作模式,standalone(独立守护进程)模式和xinetd(系统守护进程)守护进程模式,{standalone一次性启动,运行期间一直驻留在内存,反应快,但占资源。
更有利于PAM
验证功能的应用。
inetd则相反,只在外部连接发送请求时才调用FTP进程,因此不适合应用在连接数量较多的系统。
}
在standalone模式下,每次修改配置文件必须重新启动vsftpd服务才能生效,而且每次用到的命令启动服务比较麻烦,我们做一个脚本来启动和停止服务。
建立一个新文件/etc/rc.d/init.d/vsftpd,把以下内容复制到文件中:
#!
/bin/bash
#
#vsftpdThisshellscripttakescareofstartingandstopping
#standalonevsftpd.
#
#chkconfig:
-6050
#description:
Vsftpdisaftpdaemon,whichistheprogram/
#thatanswersincomingftpservicerequests.
#processname:
vsftpd
#config:
/etc/vsftpd/vsftpd.conf
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
#Sourcenetworkingconfiguration.
./etc/sysconfig/network
#Checkthatnetworkingisup.
[${NETWORKING}="no"]&&exit0
[-x/usr/local/sbin/vsftpd]||exit0
RETVAL=0
prog="vsftpd"
start(){
#Startdaemons.
if[-d/etc];then
foriin`ls/etc/vsftpd.conf`;do
site=`basename$i.conf`
echo-n$"Starting$progfor$site:
"
/usr/local/sbin/vsftpd$i&
RETVAL=$?
[$RETVAL-eq0]&&{
touch/var/lock/subsys/$prog
success$"$prog$site"
}
echo
done
else
RETVAL=1
fi
return$RETVAL
}
stop(){
#Stopdaemons.
echo-n$"Shuttingdown$prog:
"
killproc$prog
RETVAL=$?
echo
[$RETVAL-eq0]&&rm-f/var/lock/subsys/$prog
return$RETVAL
}
#Seehowwewerecalled.
case"$1"in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if[-f/var/lock/subsys/$prog];then
stop
start
RETVAL=$?
fi
;;
status)
status$prog
RETVAL=$?
;;
*)
echo$"Usage:
$0{start|stop|restart|condrestart|status}"
exit1
esac
exit$RETVAL
注释:
没什么好说的重点是看清楚目录了自己修改下
保存文件,再给该文件加上执行权限:
#chmod755/etc/rc.d/init.d/vsftpd
这样我们就可以通过下面的方法来管理服务了:
#servicevsftpd{start|stop|restart|condrestart|status}
-------
六、进一步优化配置vsftpd之用户时间限制
前面我们提过,vsftpd服务是支持在linux下的两种服务模式:
独立(standalone)模式和守护进程(xinetd)模式。
在standalone模式下,vsftpd进程启动后会一直占用系统资源,当有连接请求时,它会迅速反应;
在xinetd模式下,ftp服务是由守护进程统一管理,当出现ftp连接请求时,守护进程才将ftp服务启动,这种方式最大的优点是没有连接的时候ftp服务不会占用系统资源,处于睡眠状态,但因为要花费时间去唤醒该服务,所以响应时间较长。
现在我们尝试用守护进程来控制vsftpd。
我们需要在守护进程配置目录/etc/xinetd.d/里建立vsftpd的守护进程文件。
我们在安装时已经将该文件考到/etc/xinetd.d/目录下了。
我们稍稍修改其内容:
#vi/etc/xinetd.d/vsftpd
serviceftp
{
disable=no
socket_type=stream
wait=no
user=root
server=/usr/local/sbin/vsftpd
server_args=/etc/vsftpd.conf
nice=10
}
接下来把配置文件(vsftpd.conf)中的listen=yes或listen_ipv6=yes去掉,停掉vsftpd服务,重启xinetd服务:
#sesrvicevsftpdstop
#servicexinetdrestart
重新启动守护进程后,vsftpd服务就会让守护进程来管理了。
在守护进程管理过程中,我们再修改主配置文件的话,就不需要重新启动服务了。
现在我们开始实现ip和时间限制了
1.ip限制
在配置文件/etc/xinetd.d/vsftpd的{}中加入
only_from=主机表
如:
only_from=192.168.1.0//表示只允许192.168.1.0网段内的主机访问
no_access=主机表
例如:
no_access=192.168.1.0//表示禁止192.168.1.0网段内的主机访问
2.时间限制
同样在配置文件/etc/xinetd.d/vsftpd的{}中加入
access_time=hour:
min-hour:
min
例如:
access_time=18:
00-23:
59//表示只有在下午6点到午夜0点之前才能访问此FTP服务器;
又如:
access_time=8:
30-11:
3013:
00-18:
00//表示只有在上午8点半到11点半和下午1点到下午6点才能访问此FTP服务器。
####注意修改完后一定要重启下xinetd服务
[root@serviceroot]#servicexinetdrestart
Stoppingxinetd:
[OK]
Startingxinetd:
[OK]
其实通过xinetd还有很多要学的东西这里只是简单地满足vsftpd服务器的需求。
————————————————————————————————————————————
vsftpd.conf中的所有配置信息
Anonymous_enable=yes允许匿名登陆
Dirmessage_enable=yes切换目录时,显示目录下.message的内容
Local_umask=022FTP上本地的文件权限,默认是022
Connect_form_port_20=yes启用FTP数据端口的数据连接*
Xferlog_enable=yes激活上传和下传的日志
Xferlog_std_format=yes使用标准的日志格式
Ftpd_banner=XXXXX欢迎信息
Pam_service_name=vsftpd验证方式*
Listen=yes独立的VSFTPD服务器*
Anon_upload_enable=yes开放上传权限
Anon_mkdir_write_enable=yes可创建目录的同时可以在此目录中上传文件
Write_enable=yes开放本地用户写的权限
Anon_other_write_enable=yes匿名帐号可以有删除的权限
Anon_world_readable_only=no放开匿名用户浏览权限
Ascii_upload_enable=yes启用上传的ASCII传输方式
Ascii_download_enable=yes启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒)用户会话空闲后10分钟
Data_connection_timeout=120(秒)将数据连接空闲2分钟断
Accept_timeout=60(秒)将客户端空闲1分钟后断
Connect_timeout=60(秒)中断1分钟后又重新连接
Local_max_rate=50000(bite)本地用户传输率50K
Anon_max_rate=30000(bite)匿名用户传输率30K
Pasv_min_port=50000将客户端的数据连接端口改在
Pasv_max_port=6000050000—60000之间
Max_clients=200FTP的最大连接数
Max_per_ip=4每IP的最大连接数
Listen_port=5555从5555端口进行数据连接
Local_enble=yes本地帐户能够登陆
Write_enable=no本地帐户登陆后无权删除和修改文件
下面这是一组
Chroot_local_user=yes本地所有帐户都锁定在自家目录
Chroot_list_enable=yes文件中的名单可以调用
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list前提是chroot_local_user=no
这又是一组
Userlist_enable=yes在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/指定的路径/vsftpd.user_list
又开始单的了
Banner_fail=/路径/文件名连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2将虚拟服务绑定到某端口
Guest_enable=yes虚拟用户可以登陆
Guest_username=所设的用户名将虚拟用户映射为本地用户
User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹指定不同虚拟用户配置文件的路径
又是一组
Chown_uploads=yes改变上传文件的所有者为root
Chown_username=root
又是一组
Deny_email_enable=yes是否允许禁止匿名用户使用某些邮件地址
Banned_email_file=//任意指定的路径/xx/
又是单的
Pasv_enable=yes服务器端用被动模式
User_config_dir=/任意指定的路径//任意文件目录指定虚拟用户存放配置文件的路径
——————————————————————————————————————————————————————————————————————————————————————
######
(启用虚拟账号一定要把匿名用户关掉)
*******凡是与匿名用户有关的anon都要关掉(这里要说明下我把下面有NO的语句都注释了结果可以用匿名登陆)
anonymous_enable=NO//允许匿名用户登陆
local_enable=YES//允许本地用户登陆如果这个不打开的话uid500以下的人都被访问拒绝
write_enable=NO//允许客户端写命令
anon_upload_enable=NO//允许匿名用户上传文件
anon_mkdir_write_enable=NO//允许匿名用户创建目录这个最好不要打开否则会带来不可预测的后果
dirmessage_enable=YES//允许使用目录的消息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP 服务器 高级 配置 案例
![提示](https://static.bdocx.com/images/bang_tan.gif)