渡された状態は、FreeBSD-5.5 をインストールしただけのまっさらな状態なので、セキュリティーはデフォルトの状態。ではでは、まず hosts.allow の設定をしましょう。
先ずは確認。
# cat /etc/hosts.allow
ftpd : ALL : allow
sshd : ALL : allow
ALL : ALL : deny
- すべてのサービスにおいてローカルからのアクセスは全部受け入れる。
- ftpd と sshd はどこからのアクセスでも受け入れる
- その他のサービスはローカル以外のアクセスはすべて拒否する
と書いてある。
ssh は危険なので論外として… ftp は…まぁ、自分以外にこのサーバーに潜らせるつもりもないので、どちらも我が家のIPのみ1本通すことにしますか。
書き換える
ftpd : 我が家のIP : allow
sshd : 我が家のIP : allow
ALL : ALL : deny
で、設定を変更したので inetd を再起動っと。
- ps ax |grep inetd
- kill -HUP プロセス番号
接続確認…OK!
確認のため、IPをわざと間違えてちゃんと拒否するかチェック…OK!
元に戻す。
めでたしめでたし。
まずは、いろいろと現状のファイルをローカルマシンに吸っておきたいので、FTP のチェック。
自宅の OSX のターミナルから FTP で BSD君としゃべってみる。
$ ftp アカウント名@サーバのIP
…対話でなんちゃらかんちゃら…
おっけ〜!
だぶんおそらくデフォルトは ftpd だろう。
次は Fetch でアクセスしてみる。
通った!
まぁ、当たり前だけれど、ここはOKってことで。
したら、自分しかアクセスしないサーバーだから別に構わないと言えば構わないのだけれど、セキュリティー的に気持ち悪いので、ftpd でアクセスしたときのルートを変更する。
# vi /etc/ftpchroot
として、中身に
@ public_html
っと。
で、Fetch で接続。
OK!public_html がルートになり、それより前の階層にはアクセスできなくなった。
豆知識は…FTPd ユーザ管理
ハウジング会社からサーバを引き渡されたとき、申し込みしたハウジング会社の登録IDが会社のものと併用していたため、よけいな気を利かせて管理ユーザの名前を会社で使っているアカウントに設定してあった。
ショック…。
これは自分だけのものなのに!
ではでは、消しちゃいましょうね。
まずは、新規ユーザーを登録。もちろん自分のプライベート用のお気に入りアカウント。
# adduser
…対話でなんちゃらかんちゃら…
シェルはtcsh
ん…なんかシェルの初期設定が違うなぁ。
BSD-5.3 と違うのかなぁ。
ports でアップグレードしたら変わるかなぁ?
などと思いつつ、このアカウントで管理したいので、
wheel グループにアカウントを追加してあげる。viでファイルを直接編集。
# vi /etc/group
っと。
で、今の会社用のアカウントを exit して、新アカウントを使い ssh でサーバに接続。
通った!
> groups
でグループ確認…。よしよし。 wheel に加入をしていますね。で su でスーパーユーザーに変身!
おっけ〜。
したら、会社で使っているアカウントを消してしまいましょう!
# rmuser
…対話でなんちゃらかんちゃら…
お〜〜〜〜〜!!
きれいさっぱり!
ハウジング会社のアカウントと自分のアカウント2つだけになりましたとさ。
すっきり。
おまけ
| グループ | 意味 |
|---|---|
| wheel | su で root になることができるグループです |
| kmem | カーメルのメモリー(/dev/kmem)にアクセスできるグループです。ps や pstat といったコマンドのグループは kmem になっており、setgid ビットが立っています。 |
| operator | システム管理についてある程度の権限が与えられているグループです。shutdownなどを実行出来ます。 |