歡迎您光臨本站 註冊首頁

pureftpd+mysql限制單個ip或A、B、C類地址登陸的方法

←手機掃碼閱讀     火星人 @ 2014-03-05 , reply:0

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;
 
 
 本文也收錄在本人的blog中,因個人水平有限,如有錯誤請予指正,並請大家多提寶貴意見。



[火星人 ] pureftpd+mysql限制單個ip或A、B、C類地址登陸的方法已經有201次圍觀

http://coctec.com/docs/service/show-post-45498.html