More from: linux

CUPSの設定が?

職場でプリンタサーバにしているサーバが挙動不審になってきた(Windows機からプリンタへ接続出来なくなってきた)ので、別のサーバにプリンタを追加してプリンタサーバとしても使うことにした。
プリンタを追加するにはCUPSの設定を変更して(というか全くの未設定状態なので)、まずは外部のPCからブラウザ経由で設定できるようにしなくてはならない。
デフォルトでは外部から設定画面へのアクセスを拒否するようになっているので、「サーバのIPアドレス:631/」でアクセスしても「403 Forbidden」となってしまうが、2009/10/31の記事「CUPSの設定」のように設定ファイルを修正すればアクセスが許可される。
実は最初
Order deny,allow
の行を反対の順番
Order allow,deny
と書いてしまっていて、いくら試しても拒否されてしまった。
あとはsambaの設定にプリンタの公開を追加したところ、なんとかWindowsのクライアント機からの印刷が可能になったが、少々エラーが出るので、さらに調査中。

←クリックしてくれると嬉しいです。

mountできないディスク

一度強制的にumountした後、再mountが出来なかったディスクだが、fsckでチェックしても新たなエラーは発見できないにも関わらず相変わらずmount出来ないままだった。
mountしようとすると、
「既にマウントされているか、使われています」
というようなメッセージが出てしまう。
クライアントがftpでのアップロード先として使用するディレクトリと、httpdのDocument Rootを含んでいるパーティションなので、そのどちらも稼動しないようにしていたが、意外なところにディレクトリを使用しているプロセスがいた。
なんとsmbdが問題のパーティション上のディレクトリをクライアントに対して公開していた。
それまでfsckでチェックしても最初以外エラーも出なかったので、意を決してディスクのセクターチェック(e2fsckを-cオプション付きで実行)まで実行してみたが、それでも特にエラーは出なかった。
もしかしてシステムのログになにか出てないかと思って/var/log/messagesを見たところ、sambaからのメッセージが出ていたのでそこで初めてsambaを使っていたことに気付いた。
すぐにsmbdを止めてmountを実行すると問題なくmount出来、中のファイルを見ることが出来るようになった。
普段はファイルサーバとしては使っていないサーバだったので、sambaのことをすっかり忘れていて思わぬ時間を取られてしまった。

←クリックしてくれると嬉しいです。

強制的にumount

Linuxサーバーのファイルシステムがroになったので、rwにしようとしてumountコマンドでマウントを解除しようとしたが、busyになってしまってumountできないので、強制的にumountした。
やりかたをメモ
umount ‘マウントポイントorデバイスファイル名’ -l (LAZYオプション)
これで強制的にマウント解除できたが、再度マウントすると中身が何も見えない状況。
ファイルシステムにエラーがありそうなので、
fsck ‘デバイスファイル名’
でチェックすると
”contains a file system with errors, check forced.”
のメッセージが出たので、やはりエラーが有り一応修復されたらしい。
どうもディスクそのものにエラーがあるみたいだなぁ、、、、、、、

←クリックしてくれると嬉しいです。

設定が終わった筈なのに・・・・・・・

一昨日設定をしたサーバーを現地に設置したら何故か必要なサービスが動作しない・・・・・・
設置に行った部下からの連絡では起動直後にはXが正常に起動しなかったらしい(Xか?それともGNOMEか?)。
sambaが機能しないのでログを見るとCUPSに接続しようとしてはじかれている(デフォルトの631番ポートに接続しようとして失敗している)。
CUPSのポートを変更していたのを元に戻しても状態は改善されないので、結局再度回収ということになってしまった。
変えたのはネットワークパラメータだけなので、そこらへんに原因があると思うのだが・・・・・・・・

←クリックしてくれると嬉しいです。

サーバー設定完了

朝から取り掛かっていたサーバーの設定はとりあえず完了した。
提供するサービスは多くないが意外と手間取ってしまった。
CUPSの設定画面を他のPCから使えるようにしたり、ポート番号をデフォルト(631)以外にしたりするのに戸惑った。
こんな時はネットが便利だなー、ちょっと検索するだけで情報が集まるのだから。
後はFTPサーバーの設定でアクセスを拒否されるのを直した程度。
今回のサーバーはFTPサービスをxinetd経由で起動するので、「/etc/vsftpd/vsftpd.conf」ファイル中の「Listen=YES」を「Listen=NO」に書き換え、さらにtcp_wrappers経由でアクセス制限をするために「/etc/hosts.deny」「/etc/hosts.allow」の2つのファイルに修正を加えた。
そうそう、「/etc/xinetd.d」ディレクトリに「vsftpd」ファイルを他のサーバーからコピーしてきた。
これが無いとxinetdがvsftpdを起動してくれない。
これで必要なサービスを提供できそうなので、後は現地に設置してくるだけだな。

←クリックしてくれると嬉しいです。

sambaで接続できないサーバー

部下にファイル&プリンタサーバとして使うLinuxサーバーを一台仕立てさせたが、クライアントPC(Windows Xp or 7)から接続できない。
他の案件がいろいろあって手をつけずにいたがようやく落ち着いてきたので、ちょっと設定を手伝うことにした。
#つーか自分で出来ないからやってくれと頼まれた(苦笑)。
まずサーバを起動してsmbが動作しているかを見てみるとプロセスがいない。
あれ?と思って「/sbin/chkconfig –list | grep smb」で起動設定を見るとランレベル2-5はonになっている。
sambaサービスは起動されているはずなのだが、動いていないのでX上のsmb設定ツールを起動して設定を確認してみると、多少設定に(システム上ではなく運用上の)問題があったので修正してサービスの再起動をしようとしたところ、SElinuxからの警告が出た。
なんてことはない、SElinuxが有効になっていたのでサービスの起動が出来ず、外からのアクセスも制限されていただけだった。
「/usr/sbin/getenforce」でSElinuxの状態を確認すると「Enforcing」と出たので、間違いなくSElinuxが有効になっていた。
とりあえず一時的にSElinuxを無効化するために、「/usr/sbin/setenforce 0」を実行してSElinuxの動作を止め(実際には「permissive(警告は出すがアクセス制限はしないモード)」になるだけで、完全には無効にはなっていない)、クライアントからの接続を試したところ無事に接続できた。
やはりSElinuxが動作していたのが原因だったようなので、動作させないように設定することにして、
「/etc/sysconfig/selinux(/etc/sysconfig/selinux/configへのシンボリックリンク)」という設定ファイルの中の
SELINUX=enforcing
となっている行を修正し、
SELINUX=disabled
に変更し、再起動するとSElinuxは無効化されていて、クライアントからの接続も問題無く可能になっていた。

←クリックしてくれると嬉しいです。

TCPパケットを送出していないわけではなかった、、、、、、

先日ここに書いた特定のサーバーにTCPパケットを遅れないサーバーにhping2をインストールして調べたところ、TCPパケットの送出は出来ていた。
出来ていたというか、きちんと応答パケットが来ていた。
SYNフラグを立てて80番ポート宛になるようにオプションで指定しても、きちんとACKが返って来ている。
tcpdumpでパケットをキャプチャしてもackフラグが立ったパケットをキャプチャ出来るので、間違いなく相手先サーバーから返事が返って来ている。
とすれば、何故telnet等で80番ポートに接続できないのだろうか?謎は深まるばかりだ・・・・・・

←クリックしてくれると嬉しいです。

接続できないホスト

特定のホストに接続できない状態なので、接続したい相手ホストまでパケットが到達しているか確認するために、相手側でもtcpdumpでパケットをキャプチャしてもらった。
結果的にパケットが到達していないことが判明。
ってことは送信元ホストからパケットが送出されていない可能性が高まったが、原因として思い当たることが無い・・・・・・
とりあえず別のホストから接続する方向で問題を回避するつもりだけど、何とかして解決できないかなぁ?

←クリックしてくれると嬉しいです。

特定のホストに接続できない・・・・・・・

職場のサーバーの一台から外部の特定のホストに接続できない。
別のサーバからは問題なく接続できるので、ネットワークの問題では無さそう。
不思議なことにpingは通るし、tracerouteで経路をチェックしても相手にパケットは到達している。
いろいろ試すとTCPのパケットが相手に到達していないらしいところまでは判ったが、なぜ到達しないのかが判らない。
ファイアウォールの設定を見ても問題は無いし、その他通信を制限するようなプロセスは動いていないようだし、、、、
tcpdumpの結果を見ると自分から送信しているパケットは拾えるが、それに対する応答パケットが全く無い状態。
接続できるホストに接続すると要求とそれに対する応答を拾える(当たり前)。
殆どのホストに対しては問題なく接続できるが、どうしてもつながなければならないホスト(一般に公開されているホストなので変なアクセス制限はかけていない)につながらない。
ルーターの設定をチェックしても特定のホストに関しての制限は掛けていない。
、、、、、、うーーーーん、、、、、、何故だろう??????

←クリックしてくれると嬉しいです。

lpdでプリンタに接続できない

linuxで運用しているサーバにプリンタを追加してlpdサービスを再起動したらネットワークプリンタに接続できなくなってしまった。
印刷にはlpdを使用しているので、/etc/printcapに新しいプリンタの定義を追加して、/etc/rc.d/init.d/lpd restartをして、/usr/sbin/lpc restart プリンタ名を実行したところ、
/usr/sbin/lpc: connect: Connection refused
couldn’t start daemon
となってしまいプリンタに印刷データを送れなくなってしまった。
追加したプリンタだけならまだしも、定義しているプリンタ全てに対して同様のメッセージが出て印刷できない。
このサーバは印刷の為だけに使っているサーバなのでrebootもしてみたが症状に変化は無かった。
何故なのか判らないので悩んでいたら、一部のプリンタから印刷が出始めたと連絡があり、その後順次復旧した。
以前にも同じ現象が他のサーバで発生したことがあり、その時はlpdプロセスが余分に動いていたので止めたところネットワークプリンタに接続できるようになったことを思い出した。
今回も同じだったのではないかと思うが、なにもしないで復旧したので確かなことは判らない。
次回は余分なlpdを止めることから始めてみよう。

←クリックしてくれると嬉しいです。