wu-ftp
Submitted by sasaki on 土曜, 2006-08-12 16:06.
wu-ftp
| |
目的
- ホームディレクトリ(/home/username)よりも上位のディレクトリのアクセスをさせないようにする
ユーザがftpするときに他のユーザのディレクトリが見えてはまずい。 これを解決する。
- ただし、管理者は全てをftpできるようにしておく。
1. 変更前の/etc/ftpd/ftpaccess
aagreeting brief class all real,guest,anonymous * email root@localhost loginfails 5
readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=*
compress yes all tar yes all chmod no guest,anonymous delete no guest,anonymous overwrite no guest,anonymous rename no guest,anonymous
log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg passwd-check rfc822 warn |
2. 変更後の/etc/ftpd/ftpaccess
赤:削除 青:追加または変更
reeting brief class all real,guest,anonymous * email root@localhost loginfails 5
readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=*
compress yes all tar yes all chmod no anonymous delete no anonymous overwrite no anonymous rename no anonymous
log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg passwd-check rfc822 warn
# specify group, user will be "guest" or "real". guestgroup users realuser koizumi
# path-filter (DON'T upload dot files) path-filter guest /etc/pathmsg ^[-A-Za-z0-9_\.]*$ ^\. ^- |
3. /etc/passwdの変更
アクセス制限を掛けたいユーザー(ここではkitano)のホームディレクトリを以下のように変更する。
【変更前】 kitano:x:502:100:Takeshi Kitano:/home/kitano:/bin/bash
ホームディレクトリである/home/kitanoを/homeに変更する。 ログインディレクトリを/home/kitano/にする。 このため、ホームディレクトリ/./ログインディレクトリのように/./で区切って記述する。
【変更後】 kitano:x:502:100:Takeshi Kitano:/home/./kitano:/bin/bash
webをアップロードすることが多ければ、アップロード先のpublic_htmlまで指定すればよい。 kitano:x:502:100:Takeshi Kitano:/home/./kitano/public_html:/bin/bash
4. ファイルやディレクトリが見えなくなるので
/homeがホームディレクトリになったのはOK。 しかし/homeより上のディレクトリは一切アクセスできなくなった。 なぜなら、/bin/lsが利用できないからだ。 ユーザはログインしたとき/homeが/に見えるので、/home/binと/home/libを作成すればよい。
ユーザのディレクトリに移動して、binとlibディレクトリを作る。 # mkdir /home/bin # mkdir /home/lib
lsコマンドが必要とするライブラリを調べる。 # ldd /bin/ls libc.so.6 => /lib/libc.so.6 (0x40018000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
よって、/bin/lsには/lib/libc.so.6と/lib/ld-linux.so.2が必要なのが分かった。 この2つのファイルをコピーする。
# cp /bin/ls /home/bin/ # cp /lib/ld-linux.so.2 /home/lib/ # cp /lib/libc.so.6 /home/lib/ # cp /bin/mkdir /home/bin/ # cp /bin/rmdir /home/bin/
最後の2行、mkdirとrmdirも忘れずにコピーしよう。
5. セキュリティを高め、事故を防ぐ設定
ユーザディレクトリの先頭が「.」で始まるファイルを上書きされるのを防ぐため次の1行を/etc/ftpd/ftpaccessに追加する。
path-filter guest /etc/pathmsg ^[-A-Za-z0-9_\.]*$ ^\. ^-
参考までにguestとrealの記述方法。 guestgroup <groupname> [<groupname> ...] guestuser <username> [<username> ...] realgroup <groupname> [<groupname> ...] realuser <username> [<username> ...]
|
|