Ubuntuインストール後にやる事メモ2

不要サービスの停止

例として、avahi-daemon, cupsys のサービスを停止する。

$ sudo /etc/init.d/avahi-daemon stop
$ sudo /etc/init.d/cupsys stop

また、上記を実行しただけでは、次回コンピュータ起動時に立ち上がってきてしまうので、自動起動の停止もしておく。

$ sudo update-rc.d -f avahi-daemon remove
$ sudo update-rc.d -f cupsys remove

cronのログを有効にする

デフォルトでは、cron のログが無効になっているので有効にしておく。

$ sudo vi /etc/syslog.conf

#cron.*        /var/log/cron.log
↓
cron.*        /var/log/cron.log

--MARK-- を記録しないようにする

/var/log/messagesに記録される --MARK-- を記録しないようにする。

$ sudo vi /etc/default/syslogd

SYSLOGD=""
↓
SYSLOGD="-m 0"

以上が完了したら、sysklogd を再起動させる。

# /etc/init.d/sysklogd restart

vimのハイライトについて

/etc/vim/vimrc の syntax on のオプションを有効にしても、有効にならなかった。
vim.fullをインストールすると有効になったので、以下のようにしてインストールする。

$ sudo aptitude install vim.full

これで、/etc/vim/vimrc の syntax on のコメントを外せば有効になる。
なお、vim.fullインストール後に/usr/bin/vim を実行すると、どのvimが呼ばれるのか確認してみる。

$ ls -l /usr/bin/vim
lrwxrwxrwx 1 root root 21 2008-02-27 00:29 /usr/bin/vim -> /etc/alternatives/vim

$ ls -l /etc/alternatives/vim
lrwxrwxrwx 1 root root 17 2008-02-27 01:27 /etc/alternatives/vim -> /usr/bin/vim.full

/usr/bin/vim.fullを参照していることが確認できた。以下のようにしても確認することができる。

$ sudo update-alternatives --display vim
vim -状態は auto。
 リンクは現在 /usr/bin/vim.full を指しています
/usr/bin/vim.tiny - 優先度 10
/usr/bin/vim.full - 優先度 60
現在の `最適' バージョンは /usr/bin/vim.full です。

vimのカーソルの復元

ファイルを閉じて再び開いたときにデフォルトでは1行目から開いてしまうが、これを前回閉じた行から開始するには以下の4行を最終行にでも追加してやる。

$ sudo vi /etc/vim/vimrc

autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif

mail コマンドを使えるようにする

デフォルトでは、mail コマンドが無かったので、以下のパッケージをインストールしてmailコマンドを使用できるようにする。

$ sudo aptitude install mailutils

$ which mail
/usr/bin/mail 

なお、mailコマンドで外部にメールを送信する場合などは、MTAの設定が必要になる。

Ubuntuインストール後にやる事メモ

シェルの変更

zsh派なので、シェルを変更してやる。zshは最初から入ってないのでインストールする必要がある。

$ sudo aptitude install zsh
$ chsh

chshを実行して新しいシェルのパスを聞かれるので、/bin/zsh と入力してやればおk。

rootにパスワードを設定

$ sudo passwd

もちろん普段使用しているユーザでsudoで何でもかんでもやっていく場合にはこれは不要。
なお、このサイトではプロンプトが $ なら一般ユーザの操作で、# ならrootでの操作ということにする。
なるべくこのサイトでは一般ユーザでsudoを使っていくことにするかな・・・

上記のようにrootにパスワードを設定した後は、su - コマンドで一般ユーザからrootにチェンジが可能になる。

sudoers の編集

セキュリティ上好ましくないが、sudoした時のパスワードを入力をするのが面倒になったら以下のように編集してやる。

# visudo
...
# User privilege specification
root    ALL=(ALL) ALL
chibi   ALL=(ALL)   NOPASSWD: ALL   ← これを追記


更に以下の2つをコメントアウトする
# Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL         ← コメントアウト

# Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL         ← コメントアウト

これでchibiユーザは、sudoしてもパスワードを聞かれなくなる。

ビープ音を消す

キーボード操作してる時などに、「ビー。ビー。」となる音が喧しいので止める。
以下のように追記してやる。

$ sudo vi /etc/modprobe.d/blacklist
...
# ビープ音
blacklist pcspkr         ←これを追加

今すぐに無効にしたい場合は、上記編集後にマシンをリブートしてやるか、以下のコマンドを実行してやる。

$ sudo modprobe -r pcspkr

IPv6を無効にする

ビープ音と同じように以下のように編集してやる。

$ sudo vi /etc/modprobe.d/blacklist
...
# IPv6
blacklist net-pf-10    ←追加
blacklist ipv6       ←追加

上記編集後にマシンをリブートしてやれば、設定が反映される。

ルーティング情報の表示

メインテーブルの表示

# ip route list table main 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.150 
169.254.0.0/16 dev eth0  scope link  metric 1000 
default via 192.168.1.1 dev eth0  metric 100 

ローカルテーブルの表示

# ip route list table local
broadcast 192.168.1.255 dev eth0  proto kernel  scope link  src 192.168.1.150 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.1.0 dev eth0  proto kernel  scope link  src 192.168.1.150 
local 192.168.1.150 dev eth0  proto kernel  scope host  src 192.168.1.150 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1

ルーティング・キャッシュの表示

# ip route show cache

ルーティング・キャッシュの削除

# ip route flush cache

hpingでポートを指定しての疎通確認

hpingを使用すれば、対象のホストのポートを指定してpingを飛ばすことができる。
対象のホストで指定したポートが開いていて、そのポートでサービスが稼動しているか?などの確認を行うことができる非常に便利なツール。
以下は、Ubuntuで実行する場合。先ずはインストールを行う。

# aptitude install hping3

試しに、localhostの80番に対して実行してみる。

# hping3 -c 4 -S -p 80 localhost    
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=32792 rtt=0.2 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=32792 rtt=0.2 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=2 win=32792 rtt=0.2 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=SA seq=3 win=32792 rtt=0.1 ms

--- localhost hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.2/0.2 ms

flagsがSA なら、ポートはオープンしていて正常に疎通が取れたことを表す。
指定したオプションの意味は、-cで回数を指定、-Sでsynパケット、-pでポートの指定。

指定したポートでサービスが稼動していない場合には以下のように flagsがRA となって返って来る。
とりあえず、上記との違いを比較する為に、Apacheのサービスを停止してみて、再び80番に対してhpingしてみる。

# /etc/init.d/apache2 stop
 * Stopping web server apache2        [ OK ]

# hping3 -c 4 -S -p 80 localhost
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=0 win=0 rtt=0.2 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=1 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=2 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=80 flags=RA seq=3 win=0 rtt=0.1 ms

--- localhost hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms

あとはそもそもポートが開いてないと以下のような結果になる。

# hping3 -c 4 -S -p 23 chibi.name
HPING chibi.name (eth2 122.21.243.156): S set, 40 headers + 0 data bytes

--- chibi.name hping statistic ---
4 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

※上記のchibi.nameは自分の管理しているサイト


あと、単純にpingとして実行したい場合は以下のようにする(-1のオプションを付ける)。

# hping3 -1 -c 4 localhost          
HPING localhost (lo 127.0.0.1): icmp mode set, 28 headers + 0 data bytes
len=28 ip=127.0.0.1 ttl=64 id=10775 icmp_seq=0 rtt=0.5 ms
len=28 ip=127.0.0.1 ttl=64 id=10776 icmp_seq=1 rtt=0.1 ms
len=28 ip=127.0.0.1 ttl=64 id=10777 icmp_seq=2 rtt=0.3 ms
len=28 ip=127.0.0.1 ttl=64 id=10778 icmp_seq=3 rtt=0.1 ms

--- localhost hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.3/0.5 ms

Netcatでポートスキャンとか

Netcatでポートスキャンを実行する

$ nc -v -z localhost 1-1023
localhost.localdomain [127.0.0.1] 80 (www) open
localhost.localdomain [127.0.0.1] 25 (smtp) open
localhost.localdomain [127.0.0.1] 22 (ssh) open

上記では、localhostの1〜1023番までのポートをスキャンしている。
80, 25, 22番がオープンしているという結果になった。

リクエストをポート8080からポート80へ転送する

$ mknod ncpipe p
$ nc -l -p 8080 < ncpipe | nc localhost 80 > ncpipe

違う端末から以下を実行してみる。
なお、Apacheが80番ポートで起動しているものとする。

下記のコマンドで8080番がLISTENしているかチェックしてみる
$ lsof -nPi:8080
COMMAND   PID  USER   FD   TYPE DEVICE SIZE NODE NAME
nc      13692 chibi    3u  IPv4  87338       TCP *:8080 (LISTEN)


接続してみる
$ nc localhost 8080
HEAD / HTTP/1.0          ←入力後にEnterを2回押す

HTTP/1.1 200 OK
Date: Mon, 25 Feb 2008 09:35:53 GMT
Server: Apache
X-Powered-By: PHP/5.2.3-1ubuntu6.3
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html

8080番にアクセスしたのに、80番へきちんと転送されている。

ブラウザなどから、http://localhost:8080/ などとアクセスしてもきちんとコンテンツが表示される。