カメノドットコム
Debian大好きでメインで節操ない感じ。
GMOもわりと好き。
RSS feedly

ホームユースLinuxのセキュリティ

今更ながら、Linuxをデスクトップ環境なホームユースで使用する場合のセキュリティについて考えなおしてみました。
telnetサーバもDNSサーバも建ててないし。タイムサーバも使ってないし。
ClamAV入れてるからいいんじゃね?

こんなふうに考えて、ガッチガチに固めるぞ! みたいなことはしておりませんでした。
抜かれて困るデータなんかは特にないんですが。公開されると恥ずかしい物はあります(笑)
VPSでサーバを構築しては壊し、壊しては構築しを繰り返しているうちに「これ、デスクトップに使えば最強じゃね?」的なアホな天啓が降りました。
起動してるとヤバイものを確認してみます。

セキュリティホールになるサーバの確認

「telnetd」「sshd」「bind / named」「ntpd」最も危険なこれらをチェックします。類似デーモンは自力でチェック。
チェックするためにインストールしてみました(ヲイ
ターミナルから、サーバデーモンが起動していないかどうか確認しましょう。
まずは「telnetd」からです。調べるのが面倒くさいんですが。

$ telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

これでログインできてしまったら、メッチャ危険ですね。
root でログイン出来ないのがせめてもの救いですが、今時は sudo を使うので危ないのには変わりないです。
とりあえず起動しないようにするには「inetd」の制御ファイルで「telnet」を無効にします。

$ sudo vi /etc/inetd.conf
#:STANDARD: These are standard services.
telnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd
(↑この行をコメントアウトして無効にする↓)
#telnet          stream  tcp     nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd

再起動すれば、telnetの自動起動はなくなるはずです。
てゆーかtelnetとか今時ヤヴァすぎるから、よほどの理由がない限りはアンインストールしたほうがいい。

$ sudo apt-get --purge remove telnetd
$ sudo apt-get autoremove

「telnet」とはオサラバしました。
悩ましいのが「OpenSSH」のサーバデーモンです。ローカルでテストに使ったりするし。
現在カメノさんの状況は。

$ ps aux | grep sshd
root     512  0.0  0.0  55180  5364 ?        Ss   00:23   0:00 /usr/sbin/sshd -D
user    8952  0.0  0.0  12232  2192 pts/2    S+   01:40   0:00 grep sshd

うん。バッチリ起動してるね!
VPSと同じバージョンに揃えてるから、テストするのに便利なんだ。
しかしここは、自動起動しないように設定すべきであろう。
RedHat系 chkconfig でランレベルを設定しますが。
Debian系は update-rc.d を使います。ランレベルも設定できます。
ウチはDebianなので update-rc.d でOS起動時に実行しない設定にします。
/etc/init.d/ ディレクトリを覗くと、対象デーモンの見当がなんとなくわかります。
とりあえず、SSHサーバを止めてみます。

$ sudo /etc/init.d/ssh stop
[ ok ] Stopping ssh (via systemctl): ssh.service.

update-rc.d でOS起動時に実行しないように設定します。

$ sudo update-rc.d ssh remove

起動時に実行したくなったら以下。

$ sudo update-rc.d ssh defaults

お次はデカいセキュリティホールになるネームサーバ。特にBIND。調べてみます。

$ ps aux | grep bind
bind    422  0.0  0.1 390132 30360 ?        Ssl  Mar26   0:00 /usr/sbin/named -f -u bind
user  15862  0.0  0.0  11132  1032 pts/0    S+   00:54   0:00 grep bind

うん。起動してるね。わざわざインストールしたからね。
今時、わざわざローカルにキャッシュサーバを建てるまでもないだろうということで、アンインストールします。
キャッシュサーバを建てたい場合は、もっとミニマムでセキュリティ対策が簡単なDNSサーバをおすすめします。
BINDの勉強したいなら別にいいんですが。
「OS起動時に実行しない」を選ぶ場合は、SSHサーバを参考にしてください。

$ sudo apt-get --purge remove bind9*
$ sudo apt-get autoremove

お次はNTPサーバといきたいところですが、長くなりましたので分割します。
NTPサーバとiptablesによる防御について書きます。

ホームユースLinuxのセキュリティ(2)

Sponsored Link