目的
- ホームディレクトリ(/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> …]
|