So-net無料ブログ作成
検索選択
前の10件 | -

syslogのリモート設定 [技術]

syslogのリモート管理

1./etc/sysconfig/syslog の設定
syslogdはデフォルトでは、ローカルマシンにログを保存するように設定されている。ログサーバでシステムのログを一元管理したい場合等には、syslogdがリモートのログサーバにログを送信するように設定する必要がある。

まず、ログサーバ側で、リモートメッセージを受け入れるようにsyslogdを設定する。

SYSLOG_OPTIONSのパラメータでリモートメッセージの受入を許可するように、"-r"を付与する。
[remote] # vim /etc/sysconfig/syslog
----------
#SYSLOGD_OPTIONS="-m 0"
SYSLOGD_OPTIONS="-r -m 0"
----------
[remote] # /etc/init.d/syslog restart

ちなみに、デフォルトで付与されている"-m 0"は、syslogdに定期的にタイムスタンプを記録させるためのオプションであるが、インターバルに0を指定した場合は、記録しないようになる。

2. /etc/syslog.conf の設定
ログのクライアント側で、ログのファシリティがuserであるものは、ログサーバに送信するようにsyslogdを設定する。サーバ名の前に"@"をつけた場合は、対象のサーバにログを送信するという意味になる。
[client] # vim /etc/syslog.conf
----------
(例では行末に追加)
user.*          @192.168.1.5
----------
[client] # /etc/init.d/syslogd restart


3. iptablesの設定
syslogdは、514/udpのポートを使用するので、iptablesが有効になっている場合は、ポート番号を開放しておく必要がある。
[remote] # iptables -I INPUT -p udp --dport 514 -j ACCEPT
[remote] # iptables -I INPUT -p udp --sport 514 -j ACCEPT


4. 動作確認
クライアント側からコマンドを入力して、ログサーバでログが収集できていることを確認する。

loggerコマンドはシステムログのエントリを作成するコマンドである。
オプション:
-i     各行に logger プロセスのプロセスIDを記録する
-t tag   ログを出力する各行に、指定した tag を共に記録する

クライアント側で、loggerコマンドを実行
[client] # logger -i -t client "test"

ログサーバ側で、/var/log/messages を監視しておくと、クライアント側でコマンドを実行する度に、メッセージが表示されるようになる。
[remote] # tail -f /var/log/messages
----------
Mar 28 12:53:26 192.168.1.5 client[3708]: test
----------


タグ:linux syslog

NFSサーバの設定メモ [技術]

NFSのアクセス制御についてのメモ

1.iptablesとの共存

NFSはいくつかのサービスを利用することによって提供されている。

nfs・・・ファイルシステムのエクスポートとクライアント要求の処理を行うサービス
portmap・・・RPCプログラム番号をTCP/IPポート番号に変換するサービス
mountd・・・リモートファイルシステムのマウント/アンマウント
lockd・・・ファイルロックを提供する
statd・・・ファイルロックを提供する

これらのサービスで利用するポートを通す用に設定する必要がある。
それぞれのポート番号は以下のとおり
nfs・・・2049/tcp,udp
portmap・・・111/tcp,udp
mountd・・・892/tcp,udp (※)
nlockmrg・・・32769/udp, 32803/tcp (※)
status・・・662/tcp,udp (※)

(※)のサービスのポート番号はportmapにより毎回異なる番号が割り当てられる。
iptablesによるアクセス制御を用いるためには、ポート番号が固定になるように設定する必要がある。
設定ファイルは、/etc/sysconfig/nfsであり、コメントアウトを外して、nfsを再起動すればよい。
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662


再起動後は、設定したポート番号でサービスが起動するようになる。
# rpcinfo -p
プログラム バージョン プロトコル ポート
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 662 status
100024 1 tcp 662 status
100011 1 udp 630 rquotad
100011 2 udp 630 rquotad
100011 1 tcp 634 rquotad
100011 2 tcp 634 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 892 mountd
100005 1 tcp 892 mountd
100005 2 udp 892 mountd
100005 2 tcp 892 mountd
100005 3 udp 892 mountd
100005 3 tcp 892 mountd

このポート番号をもとに、iptablesを設定すればよい。

2.tcp-wrapperによるアクセス制御

portmapperはTCP-wrapperの制御を受けるので、必要に応じて、アクセスリストを更新する。
/etc/hosts.allow
portmap: 192.168.1.

/etc/hosts.deny
ALL: ALL


3.サーバ共有設定

/srv/nfsというディレクトリを外部に公開するような設定を行う。
このディレクトリへは、ユーザーmarioは読み書き可能とするが、peachは読み込みのみとする。
また、192.168.1.0/24のネットワークのみ、アクセスを許容する。

/etc/exports
/srv/nfs 192.168.1.*(rw,sync)

設定内容を反映させる。
# export -r
# export -v
/srv/nfs rw,wdelay,root_squash,no_subtree_check,anonuid=65534,anongid=65534)

ここで、ユーザー毎にアクセス制御を作る。
#ls -l /srv
drwxr-xr-x 2 root root 4096 3月 7 12:00 nfs
# setfacl -m u:mario:rwx /srv/nfs
# setfacl -m u:peach:r-x /srv/nfs
# getfacl /srv/nfs
# file: srv/nfs
# owner: root
# group: root
user::rwx
user:mario:rwx
user:peach:r-x
group::r-x
mask::rwx
other::r-x

これでmarioユーザーのみ書き込みが許容されることを確認する。
# su - mario
# cd /srv/nfs
# touch mario
# ls -l
-rw-rw-r-- 1 mario mario 0 3月 7 12:00 mario

# exit

# su - peach
# cd /srv/nfs
# touch peach
touch: cannot touch 'peach' : 許可がありません

NFSでユーザー単位によるアクセス制御を行う場合は、NFSサーバ側とNFSクライアント側で各ユーザーのUIDやGIDが一致していなければならない。
例えば、NFSサーバでのmarioユーザーがUID:501で、NFSクライアント側でのpeachユーザーがUID:501の場合、peachユーザーはNFSサーバ側ではmarioとして認識されてしまう。

sambaサーバの設定メモ [技術]

# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[rh300]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions


testparmコマンドでエラーらしきメッセージがなく、上記のような状態であれば、設定ファイル上の問題は存在しない。



vsftpdのanonymous接続設定 [技術]

vsftpdを用いて、anonymousユーザーからのファイルアップロードを受け付ける設定メモ

まず、/etc/vsftpd/vsftpd.confにて、anonymousユーザーを受け付ける設定を有効にする。詳しくは man 5 vsftpd.confを参照のこと。

anonymous_enable=YES
anonymousログインを許可するかどうかを制御する。YESにした場合、ユーザー名ftpとanonymousの両方をanonymousログインとして認識する。このパラメータはデフォルトでYESになっている

write_enable=YES
ファイルシステムを変更するようなすべてのFTPコマンドを許可するかどうかを制御する。

anon_upload_enable=YES
YESに設定した場合、ある条件下でanonymousユーザーにファイルのアップロードを許可する。実際に機能させるには、write_enableオプションを有効にしなければならず、またanonymous ftpユーザーが親ディレクトリに対する書き込み権限を持っている必要がある。


ここで、ftpユーザーのホームディレクトリ配下にアップロード専用のディレクトリを作成しておく
# mkdir /var/ftp/incoming
# chown ftp:ftp /var/ftp/incoming

さらにSELinuxが有効になっている場合、作成したincomingディレクトリは public_content_tのラベルが貼られており、デフォルトではアップロードは無効になっているため、対象のディレクトリをpublic_content_rw_tのラベルに張り替えた上で、該当のboolean変数を有効にする。
# chcon -t public_content_rw_t /var/ftp/incoming
# setsebool allow_ftpd_anon_write 1


これでanonymousユーザー用のFTPアップロード用ディレクトリが完成する。

yumの設定ファイル [技術]

詳しくは、
$ man yum.conf
で、各種設定値の説明を読むこと。下記は、主要な設定パラメータの説明を抜粋したものである。

パラメータ 説明
name yumリポジトリサーバの名前
mirrorlist yumリポジトリサーバのミラーリスト。URLを指定する。baseurlオプションの代わりに用いることができる。
enabled 該当のyumリポジトリを利用するかどうかを指定する。1:有効、0:無効
gpgcheck yumリポジトリから得たパッケージのGPG署名チェックを実行するかどうかを指定する。1:有効、0:無効

Apache+PHP+PostgreSQL study [技術]

PHP
preg_replace - 正規表現検索および置換を行う
参考ページ

使用例
文書に含まれる改行コード"\n"を"<br>"に変換する。
$body = preg_replace("/\n/", "<br>", $body);


isset - 変数がセットされていること、そして NULL でないことを検査する
参考ページ

使用例
POSTされたparam変数に値がセットされていれば、if文中の処理を実行する。
if (isset($_POST["param"])) {
   ...
}


preg_match - 正規表現によるマッチングを行う
参考ページ

使用例
$subjectが"Re:"で始まっていない場合に、"Re:"をつける。
if (!preg_match("/^Re:/i", $subject)){
   $subject = "Re: ".$subject;
}


HTML

<input type="hidden">
参考ページ

inputタグの属性を隠す。form内に不可視フィールドを設けて、値を渡す場合に用いる。

<textarea name="msg" rows="20" cols="80">文章</textarea>
横20x縦80のテキスト入力エリアを表示する。

<input type="reset" value="キャンセル" onClick="history.back()">
フォーム内の全ての要素をリセットし、履歴を引き継いで前のページへ戻る。

CentOS5.2のFirefoxにAdobe Flash pluginをインストールする [技術]

AdobeのホームページからプラグインのRPMパッケージダウンロードする。

・flash-plugin-10.0.32.18-release.i386.rpm

インストール
# rpm -ivh flash-plugin-10.0.32.18-release.i386.rpm

インストールすると、 /usr/lib/flash-plugin/libflashplayer.so ができあがる。

あとはFirefoxのpluginsフォルダ内に、このライブラリをシンボリックリンクさせる。
# cd $YOUR_FIREFOX_HOME/plugins
# ln -s /usr/lib/flash-plugin/libflashplayer.so libflashplayer.so

Firefoxを再起動し、こちらのFlashの確認ページでSuccessfully Installedというメッセージが出ればOK。

CentOS5.3で無線LAN(WLI-UC-G300N) [技術]

Baffalo WLI-UC-G300Nを使ってCentOS5.2で無線LAN環境を構築する。

こちらのページによると、WLI-UC-G300Nはndiswrapperドライバを利用して無線LAN環境が作れるということなので、ためしにやってみる。

<環境>
・カーネルバージョン:2.6.18-164.6.1.el5 (自作コンパイル有)
・ndiswapperバージョン:1.55
・無線LANドライバ:エアナビゲータライトver10.80同梱のUCG300Nドライバ

1.カーネルのアップデート
最初、CentOS5.2のデフォルトのカーネルバージョン(2.6.18-53)で構築したところ、ndiswrapperモジュールをmodprobeで組み込んだタイミングでカーネルパニックを起こしたので、どうやらカーネルのアップデートが必要だったらしい(詳しくは不明)。

今回はソースRPMパッケージを使ってカーネルを最新化した。
ソースRPMをインストールすると、/usr/src/redhat/SPEC配下に、.specファイルが作成される。これを基に、rpmbuildを実行すると、/usr/src/redhat/RPMS配下にrpmパッケージが作られ、/usr/src/redhat/BUILD/kernel-2.6.18配下にlinux-2.6.18.i386というカーネルツリーが構築される。後は、linux-2.6.18.i386を/usr/src/linuxにシンボリックリンクを貼り、通常の手順でカーネルコンパイルをする(詳細は他の解説ページを参考に)。

2.ndiswrapperのインストール
参考にしたのは
@ITのこちらのページ。手順的にはほとんど同じです。

現在の最新版でもあるndiswrapper-1.55.tar.gzをダウンロードし、展開する。
# tar xvfz ndiswrapper-1.55.tar.gz
# cd ndiswrapper-1.55
# make
# make install

3.無線LANドライバのインストール
WindowsXP用無線LANドライバをLinux環境にインストールするため、.exeファイルを解凍するパッケージ(lha)をSourceForgeからダウンロードし、インストールする。

# tar xvfz lha-1.14i-ac20050924p1.tar.gz
# cd lha-1.14i-ac20050924p1
# ./configure
# make
# make install

無線LANドライバをBaffaloのサイトからダウンロードし、インストールする。
(本当は、最新版であるver11.20を使いたかったが、最新版では無線LANドライバモジュールのロードがNGだったので、少し前のバージョンを利用。)

# lha x airnavilite-1080.exe
# ndiswrapper -i airnavilite-1080/driver/UCG300N/WinXP/netucg3n.inf
Installing netucg3n
# modprobe ndiswrapper

ここで、正常にndiswrapperモジュールが組み込まれれば(エラーがなければ)、wlan0インタフェースがとりあえず見える状態になる。

4.無線LANの設定
参考にしたのはこのページ

まず、/etc/sysconfig/network-scripts/ifcfg-wlan0を作る

DEVICE=wlan0
TYPE=Wireless
ONBOOT=yes
BOOTPROTO=dhcp

次に、/etc/sysconfig/network-scripts/keys-wlan0を作る。今回はこれを知らなくて嵌まった。
この設定をやっていなかったので、ず〜〜っとwpa_supplicantと格闘することになった。

KEY="s:my_password"

あとは、ネットワークを再起動すれば無線LANが無事つながる。

準強制わいせつ罪 [雑記]

刑法第178条(準強制わいせつ)
人の心神喪失若しくは抗拒不能に乗じ、又は心神を喪失させ、若しくは抗拒不能にさせて、わいせつな行為をした者は、第176条の例による。

CentOS5でNTFSファイルシステムをよみこむ [技術]

CentOS5では、デフォルトインストール時にWindowsのNTFSファイルシステムでフォーマットされたパーティションを認識してくれません。
どうやら、RedHat Enterprise Linux系のディストリビューションでは通常そうなっているようで、そもそもNTFSモジュールがデフォルトでは提供されていない模様です。下記コマンドを実行して何も表示されなければ、インストールされていません。
# lsmod | grep ntfs

以下、NTFSモジュールをCentOS5に組み込む手順です。

1.NTFSモジュールのダウンロード
Linux-NTFS Wikiのダウンロードページへ行き、自分のカーネルバージョンに合ったRPMパッケージをダウンロードします。ちなみに私の環境では、これでした。
kernel-module-ntfs-2.6.18-53.1.13.el5xen-2.1.27-0.rr.10.11.i686.rpm

ちなみに、「kernel-module-ntfs-○○-××.△△.rpm」の○○の部分が自環境のカーネルバージョンと一致しているものを選べばいいです。カーネルバージョンを確認する際は、下記のコマンドを実行して下さい。
# uname -r
2.6.18-53.1.13.el5xen


××の部分はおそらくkernel-module-ntfsのバージョンじゃないかと思いますが、詳細は知りません。。。
△△の部分はプロセッサの識別名です。自環境のプロセッサを確認したい場合は、下記コマンドを実行して下さい。
# uname -p
i686


2.NTFSモジュールのインストール
下記コマンドで、ダウンロードしたRPMパッケージをインストールします。
# rpm -Uvh kernel-module-ntfs-2.6.18-53.1.13.el5xen-2.1.27-0.rr.10.11.i686.rpm

モジュールを読み込ませます。
# modprobe ntfs

以上で、NTFSファイルシステムがCentOS5上で認識できるようになりました。

3.NTFSファイルシステムの読み込み
マウントポイントを作ります。私の場合はWindowsのDドライブ全体をマウントするように、/Dとしておきました。(名前はお好みで)
# mkdir /D

Dドライブのデバイス名を調べるために、下記のコマンドを実行します。
私の環境では、Dドライブは/dev/hda5でした。
# fdisk -l
/dev/hda1 * 1 2609 20956761 7 HPFS/NTFS
/dev/hda2 2610 20023 139877955 f W95 Ext'd (LBA)
/dev/hda5 2610 18704 129283056 7 HPFS/NTFS
/dev/hda6 18705 18717 104391 83 Linux
/dev/hda7 18718 18848 1052226 82 Linux swap / Solaris
/dev/hda8 18849 20023 9438156 83 Linux


作成したディレクトリに/dev/hda5をマウントします。
# mount -t ntfs /dev/hda5 /D

これで、/D配下にファイルが見えるようになります。
最後に、次回起動時から/Dが自動マウントされるように、/etc/fstabファイルに赤字の内容を追記をしておきます。
# vi /etc/fstab
------------------
/dev/hda5 /D ntfs defaults 0 0

前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。