当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > pure-ftpd+mysql实现限制ip登陆功能

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

Unix/Linux 中的 pure-ftpd+mysql实现限制ip登陆功能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 137 ::
收藏到网摘: n/a


介绍pureftpd+mysql中如何实现限制单个ip或A、B、C类地址等登陆的方法
因工作原因需要开ftp服务,通过cu等网站查阅了相关资料,选择了pure-ftpd+mysql作为ftp服务器,因需要限制指定用户的访问权限,而网上关于pure-ftpd+mysql的文章都没有介绍这方面的内容。在仔细查看pure-ftpd的说明文档后终于配置成功,现将经验贴出来跟大家分享。
系统:freebsd 5.3+pure-ftpd-1.0.21+mysql-5.0.3-beta
安装过程
1:更新cvs树,获得最新版本的pure-ftpd和mysql,再以port方式安装pure-ftpd和mysql,修改配置使之能正常登陆。关于这一步网上的文章很多,这里不再赘述
2:ee /usr/local/etc/pureftpd-mysql.conf (如果没有的话需要手工复制过来)
3:修改 “MYSQLGetPW SELECT Password FROM users WHERE User="\L" ”,将其改为“MYSQLGetPW SELECT Password FROM users WHERE User="\L" and (ipaccess='*' or ipaccess=SUBSTRING_INDEX("\R",".",3))”这里是限制C类地址登陆,限制单个ip可直接将ipaccess字段设为限制登陆的ip地址。以此类推,可以设定为限制A、B类地址或指定ip地址范围。
其实这个实现方法就是一个简单的sql语句,有兴趣的可在此基础上设计出更安全,效率更高的配置~
pureftpd-mysql.conf中各转义符的含义说明:# \L is replaced by the login of the user trying to authenticate.用“\L”置换尝试通过认证的用户名
# \I is replaced by the IP address the user connected to.用“\I”置换用户访问的IP地址(如ftp服务器在不同的ip地址上开放多个ftp服务,这个就能判断用户访问的是哪个ftp服务)

# \P is replaced by the port number the user connected to.以“\P”置换用户访问的端口号(作用同上)
# \R is replaced by the IP address the user connected from.以“\R”置换访问者的ip地址(这就是限制ip登陆的关键)
# \D is replaced by the remote IP address, as a long decimal number.以“\D”置换访问者的以十进制表达的ip地址。
mysql中用户表建表语句:DROP TABLE IF EXISTS `users`;CREATE TABLE `users` ( `User` varchar(16) NOT NULL default '', `status` enum('0','1') NOT NULL default '0', `Password` varchar(64) NOT NULL default '', `Uid` varchar(11) NOT NULL default '-1', `Gid` varchar(11) NOT NULL default '-1', `Dir` varchar(128) NOT NULL default '', `ULBandwidth` smallint(5) NOT NULL default '0', `DLBandwidth` smallint(5) NOT NULL default '0', `comment` tinytext NOT NULL, `ipaccess` varchar(15) NOT NULL default '*', `QuotaSize` smallint(5) NOT NULL default '0', `QuotaFiles` int(11) NOT NULL default '0', PRIMARY KEY (`User`), UNIQUE KEY `User` (`User`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
本文为lakesun原创并发布于Chinaunix,转载请注明作者及出处。
http://bbs.chinaunix.net/forum/viewtopic.php?t=568792&show_type=