用Linux构建高效FTP服务器(3)
来源:Asp之家 发布时间:2010-08-23 19:05:00
在实际应用中,有时为了增加安全性,会将FTP服务器置于防火墙之后。如本文开头所述,被动传输模式适合于带有防火墙的情况。下面就来创建一个防火墙后的FTP服务器,该服务器FTP端口为2121,数据传输端口为2020。
执行以下两行指令,只允许2121和2020端口打开,其余端口关闭:
#iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT
#iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
修改/etc/vsftpd/vsftpd.conf文件,在文本最后添加以下两行:
listen_port=2121
ftp_data_port=2020
重新启动vsftpd:
#service vsftpd restart
有时希望直接在/etc/hosts.allow中定义允许或拒绝某一源地址,可以通过以下配置来实现。先确保/etc/vsftpd/vsftpd.conf中tcp_wrappers=YES,Red Hat 9.0中,这是默认值。重新启动vsftpd
#service vsftpd restart
假设提供168.192.2.1和210.31.8.1到210.31.8.254的连接,则可对/etc/hosts.allow进行如下设定:
vsftpd : 168.192.2.1 210.31.8. : allow
ALL : ALL : DENY
配置虚拟用户FTP
上面配置的FTP服务器有一个特点,就是FTP服务器的用户本身也是系统用户。这显然是一个安全隐患,因为这些用户不仅能够访问FTP,也能够访问其它的系统资源。如何解决这个问题呢?答案就是创建一个虚拟用户的FTP服务器。虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
下面介绍配置过程。
1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:
#vi account.txt
ylg
1234
zhanghong
4321
gou
5678
2.生成口令库文件,并修改其权限:
#db_load -T -t hash -f 。/account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
3.新建一个虚拟用户的PAM文件。加上如下两行内容:
#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
#useradd -d /ftpsite virtual_user
#chmod 700 /ftpsite
经过该步骤的设置,/ftpsite就是virtual_user用户的主目录,该用户也是/ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。
5.生成一个测试文件。先切换至virtual_user用户身份,然后在/ftpsite目录下创建一个文件:
#su -virtual_user
$vi /ftpsite/mytest
This is a test file.
$su - root
6.编辑/etc/vsftpd/vsftpd.conf文件,使其整个文件内容如下所示(去掉了注释内容):
anonymous_enable=NO
local_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu
上面代码中,guest_enable=YES表示启用虚拟用户;guest_username=virtual则是将虚拟用户映射为本地用户,这样虚拟用户登录后才能进入本地用户virtual的目录/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件为vsftp.vu。


猜你喜欢
- 1、一个月前的某天,我顾问的一个公司决定找专门的SEO服务优化他们的网站。开会的时候他们CEO精彩讲述了SEO将要给企业带来的价值和利益,以
- 据国家教育部统计,截至2009年7月1日,我国普通高校毕业生就业率为68%,约有200万毕业生未实现顺利就业。“我们作为
- 任何工作都有轻重缓急之分,很多职场人士都奉行轻重缓急,并把它作为提高工作效率的重要准则。只有分清哪些是最重要的并把它做好,工作才会变得井井有
- 原来先申请的Godaddy主机,后来申请的独立ip。主机会自动提示续费,而独立ip没有提示。续费方法:登陆后一下,进去“My Action”
- 当你有了自己域名、站点,有了自己的wordpress后,你是怎么更新维护的呢?你是否还是手工编辑一个css、js或php文件,然后用ftp工
- 当我们在使用VMware虚拟机的时候,有时候想让虚拟机直接使用物理机的硬件,这个时候就需要配置直通,本文以FC为例进行讲解1.在Vcente
- 很多管理员,特别是做虚拟主机可能到遇到过IIS cpu100%占用,但又不知道哪些网站资源占用多,下面介绍一个方法可以查看每个web站点的资
- 目前虽电子商务发展迅猛,市场潜力大,网购人群也是越来越多,毕竟网络的局限性时时刻刻影响网购安全,对于那些进入的中小企业来说,第一步确实很困难
- 虽然现在的站长界,无论是个人站还是门户站,都或多或少的用了“采集”的方式来建站,比如猫扑这个看起来不至于用采集的“大站”,而众多的个人网站就
- 10月28日下午消息,电子商务巨头阿里巴巴今日在杭州宣布,阿里巴巴(中国)教育科技有限公司(以下简称“阿里学院”)正式揭牌成立。新成立的阿里
- 下面先来给大家介绍windows下_mkdir函数#include<direct.h>int _mkdir( const cha
- ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。
- 1、支持多域名例如,让mail.jbxue.org、smtp.jbxue.org、pop3.jbxue.org 都指向同一个虚拟主机,可以写
- 我是侠客,自从创办“侠客站长站”的过程中,我真正的了解了我自己。如果,你想了解侠客站长站的成长,可以搜索“侠客站长站”的域名注册时间、ale
- POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到互联网上的邮件服务器和下载电子邮
- ---查看系统默认的最大文件句柄数,系统默认是1024# ulimit -n1024----查看当前进程打开了多少句柄数# lsof -n|
- 在安装配置过程中走过很多弯路,现在就简单点总结。方便大家学习参考。安装步骤如下:1、安装ftp,相信这步很简单# yum -y instal
- 今天闲来无事,继而顺手截图做一些IIS7的安装图文教程,以及fastcgi模式下配置PHP,现在网上很多IIS7下配置PHP的教程还停顿在I
- 1) Aaron Wall - SEOBook.com 是在互联网上最好的搜索引擎优化博客之一.我真的喜欢他直接了当的文章风格.在他文章里,
- 北京时间11月7日消息,据国外媒体报道,美国互联网流量监测机构comScore周五宣布,已发布今年9月全球10大互联网资产排行榜。以用户停留