ProFTPD + mod_clamav + Quota 建置備忘
- 安裝 ProFTPD + mod_clamav 建立具有防毒功能的 ftp server
- 限制 ftp user 的磁碟空間
環境
- Fedora Core 3
- ClamAV 0.91.2
安裝 proftpd + mod_clamav
下載 ProFTPD
tar jxf proftpd-*.bz2
cd proftpd-*/modules
wget http://www.uglyboxindustries.com/mod_clamav_new.c
mv mod_clamav_new.c mod_clamav.c
cd ../
./configure --with-modules=mod_clamav
make && make install
建立 ftp user, 設定 quota
#建立 ftp user 帳號密碼
useradd -s /bin/false user1 && passwd user1
useradd -s /bin/false user2 && passwd user2
useradd -s /bin/false user3 && passwd user3#建立 512MB 虛擬磁區 (for quota)
dd if=/dev/zero of=/opt/ftp.img bs=512K count=1 seek=1024
mkfs.ext2 /opt/ftp.img#將虛擬磁區掛載到 /var/ftproot, 並讓它支援 quota
mkdir /var/ftproot
mount -o loop,usrquota,grpquota /opt/ftp.img /var/ftproot#建立使用者 ftp 實體路徑
cd /var/ftproot
mkdir user1 user2 user3
chown user1:user1 user1
chown user2:user2 user2
chown user3:user3 user3
chmod 700 user?#建立 quota files (aquota.group & aquota.user)
quotacheck -vug /var/ftproot#設定磁碟空間使用額度: 10MB, 上限 15MB
edquota -u user1 -f /var/ftproot
Disk quotas for user user1 (uid 500): FileSystem blocks soft hard inodes soft hard /dev/loop0 0 10240 15360 0 0 0 #將 user1 的 quota 設定複製給其他 user
edquota -p user1 -u user2
edquota -p user1 -u user3#啟用 quota
quotaon -vug /var/ftprootTips:
- dd 參數亦可使用 bs=1024K count=512 產生 512MB 空間, 但速度不若 bs=512K count=1 seek=1024 來得快
- 使用 Linux console 計算機計算 quota 額度. 例如: 15MB = expr 1024 \* 15 = 15360
讓每個 user 登入 ftp server 後, root directory 為 /var/ftproot 裡對應自己名稱的資料夾
#在 user 家目錄中建立軟連結
cd ~user1
ln -s /var/ftproot/user1 ftp
cd ~user2
ln -s /var/ftproot/user2 ftp
cd ~user3
ln -s /var/ftproot/user3 ftp#編輯 proftpd 設定檔
vi /usr/local/etc/proftpd.conf
PassivePorts 60000 65000 IdentLookups off UseReverseDNS off AllowStoreRestart on AuthPAM off RequireValidShell off DefaultRoot ~/ftp (重點) User nobody Group nobody #啟用防毒功能
<IfModule mod_clamav.c>ClamAV on
ClamLocalSocket /tmp/clamd.socket</IfModule>
#啟動 clamd, clamd 的執行身份必須是 root (mod_clamav 0.5 需要 clamd)
clamd#啟動 proftpd
proftpdTips:
- 匿名使用者 (anonymous) 預設根目錄在 /var/ftp, 若要取消 anonymous 的登入功能, 將 <Anonymous> 全數註解或刪除即可
系統設定
#開放 Passive Ports
iptables -A INPUT -p tcp --dport 60000:65000 -j ACCEPT#開機自動掛載 ftp.img
vi /etc/fstab/opt/ftp.img /var/ftproot ext2 defaults,loop,usrquota,grpquota 0 0
#開機自動啟動 clamd 與 proftpd
vi /etc/rc.d/rc.local/usr/local/sbin/clamd
/usr/local/sbin/proftpd
參考資料
- ProFTPD module mod_clamav
- ProFTPD Configuration Directive List
- 鳥哥的 Linux 私房菜 - Linux 磁碟配額 (Quota)
- Jamyy's Weblog - proftod.conf 設定備忘
延伸閱讀
留言列表