Linuxユーザのためのチップス

Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2009年7月10日

ネットワークエラー このエントリーを含むはてなブックマーク

本記事では、/var/log/messageに出てくる次のようなエラーの原因調査の結果をまとめる。

Jul  8 04:12:56 hoge dhcpd: receive_packet failed on eth2: Network is down
Jul  8 04:16:15 hoge kernel: r8169: eth2: link down
Jul  8 18:27:13 hoge kernel: ADDRCONF(NETDEV_UP): eth2: link is not ready

などというエラーが出て、あるとき突然ネットワークがダウンしてしまった。r8189というNICとの相性が悪い場合があるという情報や、ケーブル不良、NICの不良などを疑ったけれど、理由が分からなかった。

結局いろいろ調べてみて分かったことは、(NICを複数さしているのだが)eth0,eth1,eth2の割り当てが入れ替わっていたのが原因だった。

各NICに対応するethNをきちんと対応させるためには、CentOSでは/etc/sysconfig/network-scripts/ifcfg-ethNで、NICのMACアドレスを登録することで固定できるらしい(NICの認識順序を固定する)。しかし、この設定をしても最初はうまくいかなかった。調べてみたら、/etc/modprove.confでエイリアスが設定してあって、そちらが有線されていたようだ(NIC の設定にMACアドレスを入れないと入れ替わってしまうLinux eth0 と eth1 が入れ替わってしまうのを固定したいCommentsAdd Star)

2009年7月5日

ログの一元管理 このエントリーを含むはてなブックマーク

@ITの「連載:止められない基幹業務サーバの管理対策」の「第8回 syslogによるログの一元管理」が参考になるので、メモしておく。ルータのログ、各種サーバのログを一元管理しておくと作業が楽になる。

TCPWrapperによるアクセス制御 このエントリーを含むはてなブックマーク

@ITの「連載:止められない基幹業務サーバの管理対策」の「第3回 サービスをセキュアにするための利用制限〜TCP Wrapperによるサービスのアクセス制限〜」は参考になるので、メモしておく。

2009年7月3日

多段SSH接続(2段) このエントリーを含むはてなブックマーク

本記事では、いくつかのサーバを経由して、目的のサーバにSSH接続する、いわゆる多段SSH接続に関するいくつかのチップスをまとめる。ちなみに、ここでは、server1を経由してserver2にssh接続する2段接続の場合の説明とする。もっと良い方法・改善点があれば、教えてください。以下の方法はすべて自己責任で行ってください。私はここで説明した方法によるいかなる損害にも責任を持ちません。

以前、socksサーバ経由でSSH接続する方法という記事を書いたので、適宜参照すると良いかもしれない。

まず単純に、2段接続するには、次のコマンドで良い。ホストuser1@server1を経由して、ホストuser2@server2に接続する方法である。

$ ssh -t user1@server1 "ssh user2@server2"

tオプションをつけてあることに注意してほしい。これがないとエラーが出て怒られてしまう(以下)。仮想端末を強制的に割り当てるという意味。リモートマシン上で、screen-basedなプログラムを実行するときに使われるオプションらしい。 From man of ssh

$ ssh user1@server1 "ssh user2@server2"
Enter passphrase for key '/home/hoge/.ssh/xxxx': xxxxxxxxxxxxxxxxxxx 
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied (publickey,gssapi-with-mic).

socksを経由してuser1@server1に接続し、さらにuser1@server1を経由してuser2@server2に接続する場合も同様。以下のように.ssh/configにsocksのための設定を記述してあるとせよ。

Host user1.server1.socks
 HostName server1
 User user1
 Port 22
 ProxyCommand /usr/bin/connect -a none -S socks-proxy.xxx.jp:1080 %h %p

そのとき、次のように実行すれば良い。

$ ssh -t user1.server1.socks "ssh user2@server2"

多段接続する必要性は、例えば、会社の内部ネットワークにあるサーバserver2に接続したいが、内部ネットワークにアクセスするには、ゲートウェイであるserver1を経由しなければならないときである。もちろん、1ステップごとsshでアクセスして、最終的にserver2(より一般にserverN)にアクセスしても良いが、ある一定回数以上、単純作業を繰り替えしていると、耐えられなくなるときがあるらしい。

あるいは、内部ネットワークだけで公開している、Webサイトなどを見たいときは次のようにする(ただし、この方法は、内部ネットワークにあるプロキシサーバにSSH接続できる場合に限られる。なければ、ssh接続できるサーバにプロキシを立てる。)。

SSHポートフォワードを使えばよい。つまり、ローカルマシンの空きポート18080をプロキシサーバserver1 (ユーザ名user1)のプロキシ用ポート8080に転送すれば良い。

$ ssh -N -L 18080:localhost:8080 user1@proxy.server1

そして、ブラウザのプロキシ設定にて、localhostの18080をプロキシとして登録しておけば良い。もちろん、ローカルマシンが別のネットワークにあり、そこを出るためにSocksを経由しなければならないときは、上のようにsocksの設定をして、次のコマンドを打てば良い。

$ ssh -N -L 18080:localhost:8080 user1.server1.socks

抜け道を使っているようで、少し心が咎めるが、もともとSOCKSプロキシを利用できるということは、”そのネットワークにおいて、そういうことを許可しているということなのだ”、と理解する。

また、最初の設定で、user1@server1を経由して、user2@server2のとあるディレクトリに、ローカルマシンのデータをrsyncでバックアップするには、次のような手順で行う。まず、ダイナミック転送の設定を行う。ダイナミック転送は、転送先のポートを指定しなくて良いので楽である(ローカルマシンをsocksサーバとして使用する)。まず、ローカルマシンの空きポート(ここでは10022番)をuser1@server1に転送する。

$ ssh -N -f -D10022 user1@server1

次に、user2@server2へのssh接続の設定を.ssh/configに記述する。

Host user2.server2
  HostName server2
  User user2
  Port 22
  ProxyCommand /usr/bin/connect -S localhost:10022 %h %p

最後に、次のようなスクリプトbackup.shを作成する。

#!/bin/sh

#年月日入りログファイルに、バックアップログを書き込む。
LOG_NAME="$(date +%Y%m%d)_rsync.log"

#バックアップをとってほしくないファイル、ディレクトリのリストを作成して、rsync_exclude.lstに書き込む(フォーマットは、1行に1つ記述)
EXCLUDE_FROM_LIST="rsync_exclude.lst"

#バックアップ元のディレクトリ(hogeユーザのホームディレクトリ以下をバックアップする場合)
SOURCE=/home/hoge

#リモートホストuser2@server2のホームディレクトリにbackupというディレクトリにバックアップを保存する。
TARGET="server2:/home/user2/backup/"

rsync -avz --delete -e ssh --log-file=$LOG_NAME  --exclude-from=$EXCLUDE_FROM_LST  $SOURCE  $TARGET

もちろん、ローカルマシンがSOCKSサーバを経由しないとインターネットに接続できないときは、上のuser1.server1.socksを使えば良い。以上

2009年7月1日

イーサネットケーブル作成の覚書 このエントリーを含むはてなブックマーク

本記事では、イーサネットケーブルを作成する際に気づいた覚書をいくつかまとめる。

イーサネットケーブルを作成する方法は、ネット上にすでに多くあるので、そちらを見て作成してみた。

必要なものは、以下の通り。RJ-45のコネクタ、圧着工具、被覆をはぐためのもの(カッターなど)、ケーブルを切断するもの(ニッパーなど)、ケーブル。あと、オプションで、ケーブルを固定するために、私はワイヤーステッカーなるものと、どのケーブルか見分けるためにのマスキングテープ←これにペンで記入して貼り付ける。

私が購入した圧着工具は、ケーブルを切断するためのカッターと、被覆をはぐためのカッターが付属していたので、便利だった。

ケーブルは、敷設するネットワークの大きさをあらかじめ見積もって、必要な長さ以上のものを購入すること(私は、見積りが不十分で、追加でケーブルを買うハメになった)。ケーブルは、単線、ストレート、エンハンスドカテゴリ5のものをチョイスした。コネクタは、エンハンスドカテゴリ5対応のもを購入した。

作成方法は、ケーブルをカッターなどで切断して、中に入っている6本ほどの線をほぐす。これらの線はよってあるので、まっすぐにそろえるのは慣れないと少し大変だと思う。コツは、よってある線を十分元の方までほぐし、必要な長さをところで、カットする(圧着工具付属のカッターは、しっかり固定して切断できるので、線をきれいにそろえて切断できた)。

切断してそろえた6本ほどの線をコネクタに差し込む。もちろん、これらの線の並び方は、一律に決めておかないといけない(ケーブルの両端で矛盾しないように)。私は、白オレンジ→オレンジ→白緑→青→白青→緑→白茶→茶の順に並列に並べて、コネクタに差し込んだ。細かい作業なので、並び方がずれたり、十分奥まで差し込めてなかったり、などケーブル不良の原因にならないように注意すること。

差し込めたら工具で圧着する。ここで、圧着が不十分だと、ケーブル不良になるので、念入りに圧着すること(私はここでつまずいた)。以上

追記:ネットワークが突然ダウンしてしまった。NICを代えたり、いろいろと調べてみて分かったことは、ケーブル不良らしいということだった。圧着が十分でなかったか、ケーブルの被覆をはぐときに、内部の導線を傷つけたか?ケーブルテスタがほしい。

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

過去の記事

過去の記事を月ごとにまとめています。三角印をクリックすると、過去の記事の一覧が表示されます。

筆者について

自分の写真
tkhisan
趣味はコンピュータ、音楽、写真などです。
詳細プロフィールを表示