因為有兩台ftp主機身處不同地方
OS是linux
預計是裝suse或fedora
希望可以達到說以其中一台為主要的
另一台為副
某一台更動了ftp的帳號
另一台就自動也跟著變動
因為有朋友建議說可以用ldap但是太複雜,短時間要做的起來不容易orz
想請問是否有除了ldap以外方式可以達成此目標?謝謝
$ mkdir pure-ftpd $ cd pure-ftpd/ $ wget http://aur.archlinux.org/packages/pure-ftpd/pure-ftpd/PKGBUILD $ wget http://aur.archlinux.org/packages/pure-ftpd/pure-ftpd/pure-ftpd $ makepkg -g >> PKGBUILD $ makepkg -s # pacman -U pure-ftpd-1.0.29-3-i686.pkg.tar.xz
#scp /etc/pure-ftpd/pureftpd.pdb USER@SERVER_B:/USER_HOME/pureftpd.pdb #scp /etc/pure-ftpd/pureftpd.passwd USER@SERVER_B:/USER_HOME/pureftpd.passwd
cd /etc; ln -s /USER_HOME/pureftpd.passwd; ln -s /USER_HOME/pureftpd.pdb
pure-pw useradd user2 -u ftp -d /data/DIRECTORY pure-pw mkdb
您在問題中,沒提及這些帳號是只為FTP用?
還是也會在Web、Mail等其他服務用?
在此以只是單單為FTP下載用的情境來回答:
在FTP服務裡,可採用 virtual user 虛擬帳號有幾個,
其中 Pure-FTPd 的設定算是最簡單。
詳細可參考:
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
http://forums.freebsd.org/showthread.php?t=591
裡的設定說明。
簡單的做法大概是這樣:
1.在 /etc/pure-ftpd/pure-ftpd.conf 裡
把這一行的 # 拿掉:
PureDB /etc/pure-ftpd/pureftpd.pdb
就會以 指定的帳號密碼檔 為身分驗證的機制。
2.執行:
pure-pw useradd 帳號 -u ftp -d /該帳號的家目錄
來產生虛擬帳號,
會產生
/etc/pure-ftpd/pureftpd.passwd
這帳號密碼檔,
然後再執行:
pure-pw mkdb
來產生程式會讀的密碼檔 /etc/pure-ftpd/pureftpd.pdb
3.此密碼檔同步的方式:
(1)做一script檔,在產生帳號後,
同時透過sync或scp等方式,
將 pureftpd.pdb 複製到另台機器,
並把另一台的 pure-ftpd 重新啟動。
(2)仍是用 2. 的方式產生帳密,
而在另外一台以 crontab 的方式,
定時以比對另台帳密檔是否與本機不同,
如果不同就複製過來,並重新啟動pure-ftpd
如果不用ldap、radius、MySQL等單一驗證機制的話,
就只能靠script來同步虛擬帳號的方式,
達到您的目的。
那想請問一下pureftpd.pdb
這個檔是否可以透過具有ftp存取能力的同步軟體來做到覆蓋功能?
另外每次複製完都需要重新啟動?
不好意思說
pureftpd.conf是唯讀檔
可以把他改成可寫入嗎?@@
有關:
kevin7326提到:
這個檔是否可以透過具有ftp存取能力的同步軟體來做到覆蓋功能?
另外每次複製完都需要重新啟動?
回覆在討論裡,
請參閱。
而 pureftpd.conf 用root就可改該內容,
改好之後,也不大會有機會需再修改。
用sync的方式,多少都還會存在一些時間差,建議還是透過LDAP去認證吧。
chang0206提到:
建議還是透過LDAP去認證吧
LDPA容易嗎?
The FTP account file on the active system can be replicated to the same file on the passive system.
In general, the account file is in /etc/passwd file. You can use a replication tool to sync data between active and passive server, it is doable.
除了使用LDAP或同步密碼檔之外,也可透過SQL DB的方式儲存帳戶資訊並進行認證。
Pure-FTPd本身就能支援MySQL,可自定SQL queries,因此AAA資訊均可儲存於MySQL中,使用彈性很高
User info can also be centralized in MySQL databases, with or without transactions. All queries are fully customizable, and requests can be built with user names, remote client addresses, local IP addresses and ports. That way, complex hosting rules can be easily implemented, even with multiple virtual servers on the same host, and multiple virtual domains with many users.
同時也能支援同時多重認證機制
Multiple authentication methods can be chained in any order. For instance, SQL accounts, LDAP directories and system accounts can be used at the same time.
另外一種解決方式則是可以透過PAM,例如透過PAM POP3或者是PAM_MySQL,使用彈性也不錯,端看您需要哪種機制。
使用script同步passwd file是種解決方式,但有時會會因為lock, 使用權限,多重複寫的問題,而讓整個服務掛掉,如非必要,盡量不要在兩台上線機器上使用。