第2課 不要なデーモンをぶったぎる!

さて、Slackware のインストールが完了し、無事に再起動した。ログインプロンプトが表示されたら、root でログインしよう!

Welcome to Linux 2.6.37.6-smp (tty1)

slackware login: root
Password:
Linux 2.6.37.6-smp.
You have mail.

コンソールからログインして操作し続けるのは辛いので、ssh でリモートログインすることにした。まず Slackware マシンの IP アドレスを調べる:

root@slackware:~# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:65:3a:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.148/24 brd 192.168.3.255 scope global eth0
    inet6 fe80::a00:27ff:fe65:3a4e/64 scope link
       valid_lft forever preferred_lft forever

192.168.3.148 だと分かったので、putty でも何でも、好きなクライアントでログインしよう!

DHCP だと IP アドレスが変わる恐れがあり不便なので、VirtualBox で “ホストオンリー アダプタ” を追加すると便利。Slackware の /etc/rc.d/rc.inet1.conf で各 NIC の IP アドレスが設定できるぞ!

さて、コンソールでログインした時に “You have mail.” と言われたが、メールはずばり mail コマンドで読むことができる。実際に読んでみて気付いたが、Slackware デフォルトのページャは pg のようだ。使い慣れてるのは less の方なので、以下のようにした:

echo 'export PAGER=less' >> ~/.bash_profile
. ~/.bash_profile

上の 2 行が呪文のように見えてしまったら、入門 bash でも読んでおこう! [アフィリエイトです!]入門bash 第3版

さて、サーバー管理者たるもの、サーバーでどんなデーモンが動いているかくらいは把握しておかねばならない! まずは netstat だ!

root@slackware:~# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN      1489/inetd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1499/sshd
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN      1489/inetd
tcp        0      0 :::22                   :::*                    LISTEN      1499/sshd
udp        0      0 0.0.0.0:512             0.0.0.0:*                           1489/inetd
udp        0      0 0.0.0.0:37              0.0.0.0:*                           1489/inetd

sshd 以外不要なので、取り締まる! しかし、tcp 37, tcp 113, udp 512 なんて CentOS や Debian では見たことないぞ?

root@slackware:~# egrep '\s(37|113|512)/' /etc/services
time             37/tcp    timserver
time             37/udp    timserver
auth            113/tcp    ident tap    #Authentication Service
auth            113/udp    ident tap    #Authentication Service
exec            512/tcp    #remote process execution;
biff            512/udp    comsat       #used by mail system to notify users

何だかよく分からないが、どれも閉じてしまって構わないだろう。見たことないし!

sshd 以外は懐しの inetd が取り捌いているので、/etc/ientd.conf の以下3行を ‘#’ 記号でコメントアウトしてやればよい:

root@slackware:/etc/rc.d# egrep '^(time|auth|biff)' /etc/inetd.conf
time            stream  tcp     nowait  root    internal
time            dgram   udp     wait    root    internal
auth    stream  tcp     wait    root    /usr/sbin/in.identd     in.identd

が、inetd 自体今は不要なので、以下のようにした:

root@slackware:/etc/rc.d# /etc/rc.d/rc.inetd stop
root@slackware:/etc/rc.d# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1499/sshd
tcp        0      0 :::22                   :::*                    LISTEN      1499/sshd
root@slackware:/etc/rc.d# chmod -x /etc/rc.d/rc.inetd

スッキリした!

ついでに、sshd に LAN 全体からアクセスできないようにするため、”ホストオンリー アダプタ” だけをリッスンするようにする:

root@slackware:/etc/ssh# grep ListenAddress /etc/ssh/sshd_config
ListenAddress 192.168.56.2
#ListenAddress ::
root@slackware:/etc/ssh# /etc/rc.d/rc.sshd restart
WARNING: killing listener process only.  To kill every sshd process, you must
         use 'rc.sshd stop'.  'rc.sshd restart' kills only the parent sshd to
         allow an admin logged in through sshd to use 'rc.sshd restart' without
         being cut off.  If sshd has been upgraded, new connections will now
         use the new version, which should be a safe enough approach.
root@slackware:/etc/ssh# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.56.2:22         0.0.0.0:*               LISTEN      1615/sshd

これで VirtualBox のホストマシンからしかアクセスできない、難攻不落の掘っ建て小屋と化した。

さて、root で作業するなかれという鉄則に従い、一般ユーザを作成する:

root@slackware:~# useradd -G wheel -m dojomaster
root@slackware:~# ls /home/
dojomaster/  ftp/
root@slackware:~# passwd dojomaster
Changing password for dojomaster
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
passwd: password changed.

一度 exit でログアウトして、dojomaster ユーザでログインし直す。シェルのプロンプトが ‘#’ から ‘$’ に変わったことに気付くことができれば、一端の Linux ユーザかもしれない!

一般ユーザは /etc の中のファイルをいじったり、新しくソフトウェアをシステムワイドにインストールしたり、ということができない。そういう必要がある時は、sudo が便利なのだが、この環境には sudo がまだインストールされていない!

次回、sudo をインストール!  お楽しみに!

(コウヅ)



比較サイト

広告

第2課 不要なデーモンをぶったぎる!」への2件のフィードバック

  1. >サーバーでどんなデーモンが動いているかくらいは把握しておかねばならない! まずは netstat だ!
    鼻水出ました。おもしろいです。ソケット使わないとdaemonじゃないってことか。

    • こんにちは。コメントありがとうございます。言われてみると、記事が中途半端に終わってます。わざわざご指摘ありがとうございました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中