pure-ftpd 安裝組態設定
$ /usr/ports/ftp/pure-ftpd
先下載 source 及套用 patch
$ make patch
修正中文(許功蓋)的問題
轉載自 http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/pure-ftpd.html
修改 /usr/ports/ftp/pure-ftpd/work/pure-ftpd-1.0.20/src/ftpd.c
搜尋
代碼:
while (*namepnt != 0) {
if (ISCTRLCODE(*namepnt) || *namepnt == '\\') {
return -1;
}
if (dot_ok == 0) {
if (*namepnt == '/') {
namepnt++;
改成 (即加上紅色的字)
代碼:
while (*namepnt != 0) {
#if 0
if (ISCTRLCODE(*namepnt) || *namepnt == '\\') {
return -1;
}
#endif
if (dot_ok == 0) {
if (*namepnt == '/') {
namepnt++;
讓 log 中直接顯示中文....不再經過編碼
轉載自 http://bbs.openfind.com.tw/cgi-bin/x_list?VAL=2174780829&BOARD=tw.bbs.comp.386bsd&DISPLEN=15&NO=17
修改 altlog.c
搜尋
代碼:
if ((quoted_filename = urlencode(filename)) == NULL) {
return -1;
}
改成
代碼:
/*
if ((quoted_filename = urlencode(filename)) == NULL) {
return -1;
}*/
quoted_filename = filename;
開始安裝,加上繁體中文(訊息)支援
$ make WITH_LANG=traditional-chinese install clean
代碼:
┌───────────────────────────────────┐
│ Options for pure-ftpd 1.0.20_1 │
│ ┌────────────────────────────────┐ │
│ │ [ ] LDAP Support for users in LDAP directories │ │
│ │ [ ] MYSQL Support for users in MySQL database │ │
│ │ [X] PAM Support for PAM authentication │ │
│ │ [ ] PGSQL Support for users in PostgreSQL database │ │
│ │ [ ] PRIVSEP Enable privilege separation │ │
│ │ [X] PERUSERLIMITS Per-user concurrency limits │ │
│ │ [X] THROTTLING Bandwidth throttling │ │
│ │ │ │
├─└───────────────────────────────┘─┤
│ [ OK ] Cancel │
└───────────────────────────────────┘
1. 組態 /usr/local/etc/pure-ftpd.conf
代碼:
# 使用者被鎖在登入的目錄中,不能切換到上一層
ChrootEveryone yes
# 同時可連線的人數
MaxClientsNumber 5
# 每一個來源 IP 同時可連線
MaxClientsPerIP 2
# 不顯示以 . 為啟始檔名的檔案
DisplayDotFiles no
# 不允許暱名登入
AnonymousOnly no
NoAnonymous no
# syslogd 中的 log 對象
SyslogFacility ftp
# 不反查 ip
DontResolve yes
# 發呆 15 分鐘後,自動斷線
MaxIdleTime 15
# 儲存 virtual user 的帳號、密碼檔 (通常路徑會定在與組態檔同一個目錄)
PureDB /usr/local/etc/pureftpd.pdb
--login=puredb:/usr/local/etc/pureftpd.pdb
LimitRecursion 2000 8
AnonymousCanCreateDirs no
MaxLoad 4
# 指定 Passive mode 所使用的埠號範圍
PassivePortRange 40000 40100
# 指定使用 Passive mode 時的連線 IP (在 NAT 後面的 FTP Server 必須使用)
# 此處的 IP 是 FTP Server 的對外 IP
ForcePassiveIP 61.62.128.140
#
AntiWarez yes
# FTP Server 的服務埠號 (如 Server 上有多張網卡,逗號前面可指定要服務的 IP)
Bind ,2100
# 檔案遮罩 (檔案:目錄)
Umask 133:022
# 可登入 FTP Server 的最小 UID
MinUID 100
# 是否允許使用 FXP Protocol
AllowUserFXP no
AllowAnonymousFXP no
# 是否允許讀寫以一點為啟始檔名的檔案
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
# 是否允許檔案自動更名
AutoRename no
# 是否允許暱名登入者上傳檔案
AnonymousCantUpload no
# 最大的磁碟使用量
MaxDiskUsage 99
#
CustomerProof yes
#
PerUserLimits 1
2. 組態 /etc/syslog.conf,讓 FTP Server 的 log 獨立於 syslog
2.1
找到 /var/log/messages 的那一行
在前一行加入
代碼:
ftp.* /var/log/ftplog
2.2
新增一個空白 log 檔
$ touch /var/log/ftplog
2.3
重新啟動 syslogd (重新讀取組態檔)
$ killall -HUP syslogd
3. 在系統中新增一個 FTP 帳號一個 FTP 群組給 virtual users 使用
$ pw group add FTP -g 5001
$ pw user add FTP -u 5001 -c FTP_USERS -d /nonexistent -s /nonexistent
4. 新增 virtual user
$ pure-pw useradd ftp001 -u FTP -g FTP -d /ftp/root/folder/for/ftp001/here -m
$ pure-pw useradd ftp002 -u FTP -g FTP -d /ftp/root/folder/for/ftp002/here -m
代碼:
useradd:新增一位使用者
-u:uid
-g:gid
-d:登錄後的根目錄
-m:即刻更新使用者資料檔
5. 列出 pure-ftpd 資料庫中的所有帳號
$ pure-pw list
6. 列出某一位使用者 (ftp001) 的所有設定
$ pure-pw show ftp001
7. 為某一位使用者加上下載檔案的頻寬限制
$ pure-pw usermod ftp001 -t 20 -T 100 -m
代碼:
usermod:修改已存在使用者的設定
-t:從 Server 下載檔案的頻寬限制 (單位KB/s)
-T:上傳檔案到 Server 的頻寬限制 (單位KB/s)
-m:即刻更新使用者資料檔
摘自:http://www.backup.idv.tw/viewtopic.php?t=1294
2010年6月3日 星期四
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言