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

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 181 ::
收藏到网摘: 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=