‘CentOS’ タグのついている投稿

Vagrant+AnsibleでCentOS7のセキュリティアップデートまで

muraveです。ここ最近の記事、

についてスクリプト化してGitHubで公開しました

jmurabe/scaleway-centos7base

クラウド(Scaleway)上で動かすのでセキュリティ確保のために yum update するべき。しかし全部アップデートすると時間がかかりすぎる。そこでセキュリティアップデート出来るようにセットアップして実行するところまで自動で、という内容です。

冪等性が確保できているとは言い難い所はありますが(/securityが存在するか?だけでsecurityリポジトリが作成されているか判断している等)、ベースとしては使えるとおもいます。

(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

CentOS7 での yum –security update 事情

夏風邪で減った体重がすっかりもどってしまいました。muraveです。
自身への細菌の侵入は許しましたが、サーバーへの侵入は防がねばなりません(自然な導入)

そんなわけで Ansible では yum update 相当の

yum: name=* state=latest

を毎回やっていたのですが、時間がかかりすぎて辛くなってきました。そんなわけでセキュリティアップデートだけするのがいいかな、と調べ始めました。

yum-plugin-securityというパッケージを利用して

$ yum --security update

が出来ることを知りました(そもそもCentOS7ではyum-plugin-securityがyumに統合されている模様)。 やったぜ!

CentOSのリポジトリではセキュリティアップデート情報が提供されていなくて正常動作しないらしいことも知りました。 やってなかったぜ!

先人の知恵と努力を頼りましょう。

ということでまとめますと、securiy用のローカルリポジトリを作り、CEFSが提供しているSpacewalk用のエラッタからupdateinfo.xmlを作って設置、yum –security update します。
(さらに…)

Facebooktwittergoogle_pluslinkedintumblrmail

CentOS 6.3 に Kolab Groupware をインストール。

さてさて、ども初めまして。弊社のKolab翻訳担当です。
2013.03.11 よりスイスはチューリヒの Kolab Systems AG 社とパートナー提携いたしました。

そこで、今の所、英語ソースしかない、Kolab Groupware のインストールについて、
少しばかりインストールのコツなどをば…。

まず、Kolab Groupware の現行バージョンですが、3.0です。CentOS等のレッドハット系では、
el6、kernel 2.6.32 以降に対応しています。(自宅のCentOS 5.4 に入れようとしましたが、パッケージの依存関係等で入りませんでした。)

無料で利用できるのは、コミュニティ版である、Kolab-3.0-release-community です。

準備としましては…

KVNにて、作成してあるx86_64のREHL6 型の仮想マシンにCentOS 6.3をインストールしてあるものを利用しました。パーティションなどはデフォルトです。(こんな感じ…)

[root@kolab ~]# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_kolab-lv_root
                      5.5G  2.1G  3.2G  40% /
tmpfs                 499M   20K  499M   1% /dev/shm
/dev/sda1             485M   32M  429M   7% /boot

CentOSは、最小構成(minimal)でインストールして、後から、”Base” “Development Tools” をyumでグループインストールしてます。

[root@kolab ~]# yum -y groupinstall "Base" "Development Tools"

次の準備は…

selinux: 無効化

iptables: tcp 25番、80番、110番、143番、389番、443番、465番、587番、636番、993番、995番 を開けます。

/etc/hosts に FQDN、ホスト名を追加。あと、ローカルIPでの名前解決の行を追加。
(DNS持っていて、ローカルIPでFQDNが参照できる場合はいらないです。)

[root@kolab ~]# diff -urw /etc/hosts.orig /etc/hosts
--- /etc/hosts.orig     2010-01-12 22:28:22.000000000 +0900
+++ /etc/hosts  2013-04-01 16:03:29.663819681 +0900
@@ -1,2 +1,3 @@
-127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
+127.0.0.1   kolab.lancard.com kolab localhost localhost.localdomain localhost4 localhost4.localdomain4
+xxx.xxx.xxx.xxx kolab.lancard.com kolab localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

あと必要なものが、yum-plugin-priorities です。yumにてさくっとインストールしてください。

[root@kolab ~]# yum -y install yum-plugin-priorities

次に、yumリポジトリを追加します。

EPEL リポジトリ

[root@kolab ~]# wget "http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm"

Kolab-3.0-community-release リポジトリ

[root@kolab ~]# wget "http://mirror.kolabsys.com/pub/redhat/kolab-3.0/el6/development/i386/kolab-3.0-community-release-6-2.el6.kolab_3.0.noarch.rpm"
[root@kolab ~]# yum localinstall --nogpgcheck epel-release-6.8.noarch.rpm kolab-3.0-community-release-6-2.el6.kolab.3.0.noarck.rpm

リポジトリが追加されたら、リポジトリの設定を行います。リポジトリ設定の要点は、

CentOS-Base の[extras] を無効化、その他有効リポジトリの優先度を99に設定。
epel の有効リポジトリの優先度を99に設定。
その他Kolab関連(release、develop)のリポジトリの優先度を50に設定。(develop は後で追加し設定します。)

以上、3点です。

CentOS-Base.repo

[root@kolab yum.repos.d]# diff -urw CentOS-Base.repo.orig CentOS-Base.repo
--- CentOS-Base.repo.orig       2013-02-25 17:57:43.000000000 +0900
+++ CentOS-Base.repo    2013-03-29 11:22:09.810968496 +0900
@@ -16,6 +16,7 @@
 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
+priority=99

 #released updates
 [updates]
@@ -24,6 +25,7 @@
 #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
+priority=99

 #additional packages that may be useful
 [extras]
@@ -31,6 +33,7 @@
 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
 #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
 gpgcheck=1
+enabled=0
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 #additional packages that extend functionality of existing packages

epel.repo

[root@kolab yum.repos.d]# diff -urw epel.repo.orig epel.repo
--- epel.repo.orig      2012-11-05 12:52:17.000000000 +0900
+++ epel.repo   2013-03-29 11:23:46.412942219 +0900
@@ -6,6 +6,7 @@
 enabled=1
 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
+priority=99

 [epel-debuginfo]
 name=Extra Packages for Enterprise Linux 6 - $basearch - Debug

kolab-3.0-release.repo

[root@kolab yum.repos.d]# diff -urw kolab-3.0-release.repo.orig kolab-3.0-release.repo
--- kolab-3.0-release.repo.orig 2012-08-04 21:58:22.000000000 +0900
+++ kolab-3.0-release.repo      2013-03-29 11:26:20.946866077 +0900
@@ -4,6 +4,7 @@
 enabled = 1
 gpgcheck = 0
 gpgkey = https://ssl.kolabsys.com/santiago.asc
+priority=50

 [kolab-3.0-debuginfo]

kolab-3.0-develop リポジトリの追加

[root@kolab ~]# yum -y install kolab-3.0-community-release-development

前述通り、上記リポジトリと同様に、優先度の設定。release と同じ50にします。

[root@kolab yum.repos.d]# diff -urw kolab-3.0-development.repo.orig kolab-3.0-development.repo
--- kolab-3.0-development.repo.orig     2012-08-04 21:58:22.000000000 +0900
+++ kolab-3.0-development.repo  2013-03-29 11:33:17.334674626 +0900
@@ -4,7 +4,7 @@
 enabled = 1
 gpgcheck = 0
 gpgkey = https://ssl.kolabsys.com/santiago.asc
-
+priority=50

 [kolab-3.0-development-debuginfo]
 name = Enterprise Linux 6 Kolab 3.0 Packages - Debugging Symbols

リポジトリの追加が終わりましたら。Kolab Groupware のインストールを行います。
全コンポーネントを簡単にインストールするには、さくっと一行打つだけです。お手軽です。

[root@kolab ~]# yum -y install kolab

インストールが無事完了したら、Kolabの設定を行います。こちらも簡単。

[root@kolab ~]# setup-kolab

と、セットアップ用のコマンドを打ち、あとは表示されるメッセージに従って、パスワード等を設定していけばOKです。

※※※ setup-kolab に失敗した!! ※※※

さてさて…ここまではすんなり進んでも…このsetup-kolab で引っ掛かる人がおそらくいるのではないでしょうか。
ええ…私も実は、引っかかったクチです (・w・;

私の場合は…「間違ったパスワードを設定してしまい思い出せなくなった。」「ホスト名、ドメイン名が変更になった。」
という事で、再度 setup-kolab を実行したら、エラーが発生して再設定が出来なくなった事です。

そういう時の対処方法です。

・まず、389 Directory Server のサービスを停止します。

[root@kolab ~]# service dirsrv stop

・次に、389 Directory Server の設定ファイル(slapd-ホスト名)を退避or削除します。

[root@kolab ~]# mv /etc/dirsrv/slapd-kolab/ /etc/dirsrv/bk_slapd-kolab

・MySQLのデータベースの削除
(もし…MySQLのrootパスワードがわからなくなってた場合は…MySQLの解説サイトで調べてください(-w-; )

[root@kolab ~]# mysql -u root -p
Enter password:

データベースの一覧を見て、kolab、roundcube というデータベースがある事を確認してください。
この2つのデータベースを削除します。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| kolab              |
| mysql              |
| roundcube          |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> use kolab;
mysql> drop database kolab;
mysql> use roundcube;
mysql> drop database roundcube;

これで、再度 setup-kolab が走るようになります。
ホスト名やドメイン名を変更して、setup-kolab を実行してみましょう。

※ちなみに…Kolab Groupware に登録していたユーザやグループ、各ユーザのメールやその他データなどは、
もちろん、吹っ飛んでしまいますので、あくまで、初期導入時にのみ使用できる方法です。

ではでは。

Facebooktwittergoogle_pluslinkedintumblrmail

CentOS5.5 64bitにmod_pythonをインストール

CentOS5.5に標準で入っているPythonは2.4系でした。最初は何も考えずソース取って来てコンパイルしてインストールしてましたが、オプション無しでコンパイルするとmod_pythonのインストールにこけてしまいました。下記インストール手順になります。

Python 2.6

wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz
tar xzvf Python-2.6.5.tgz
cd Python-2.6.5
./configure --enable-shared
CFLAGS="-fPIC" CXXFLAGS="-fPIC" LDFLAGS="/usr/local/lib" make
make install
cp libpython2.6.so* /usr/lib64/
vi /etc/ld.so.conf.d/python2.6.conf
+1:/usr/local/bin
/sbin/ldconfig
ln -s /usr/local/bin/python /usr/bin/python2.6

一旦ログアウト

ldd /usr/local/bin/python
    libpython2.6.so.1.0 => /usr/lib64/libpython2.6.so.1.0 (0x00002b7ea57a7000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003d9cc00000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000003d9c400000)
    libutil.so.1 => /lib64/libutil.so.1 (0x0000003d9f800000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003d9d000000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003d9c000000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003d9bc00000)

lib64を見ているか確認

mod_python

wget http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
tar xzvf mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python
vi src/connobject.c
-142:!(b == APR_BRIGADE_SENTINEL(b) ||
+142:!(b == APR_BRIGADE_SENTINEL(bb) ||
#フォーラムにありましたが、どうやらバグのようです。
chown apache:apache /usr/local/apache2/modules/mod_python.so
#権限は環境に合わせてください
Facebooktwittergoogle_pluslinkedintumblrmail

yum の Proxy 設定でハマった

前回の Mac の Web 共有で Proxy で設定した Macbook 経由で CentOS 5 のサーバーで yum を使おうとして少しハマったのでメモ。

「export で proxy 設定してもダメ!」だったのでした。

http_proxy やら ftp_proxy やら設定しまくって、やっぱりだめで、ところが yum.conf を編集したらあっさり、さっくり、うまくいってしまったのでした。一時的に繋ぎたいだけなので yum.conf を触りたくなかったのですがしょうがないですね。

一般的にそうなのかはわからないのですが、そういうことがあったということで。

ちなみに、apt の場合は export で http_proxy (と必要なら ftp_proxy )環境変数を設定すれば OK。

Facebooktwittergoogle_pluslinkedintumblrmail

メモ:Linux::Inotify2 でディレクトリを監視して処理

Linuxサーバー上のディレクトリにファイルが作成されたら処理するってのをやりたくて、調べてたら cpan の Linux::Inotify2 が良さそうだったので試してみました。

モジュールをインストール(cpanminusを使用)。イベントループに AnyEvent を使うといいらしいので、そちらも。

$ cpanm Linux::Inotify2
$ cpanm AnyEvent

指定ディレクトリにファイルを投入したら別ディレクトリに mv するスクリプトを作成。

#!/usr/bin/env perl
use strict;
use warnings;

use Linux::Inotify2;
use AnyEvent;

my $watch_dir = $ENV{HOME} . '/inotify/queue';
my $processed_dir = $ENV{HOME} . '/inotify/processed';
my $inotify = Linux::Inotify2->new or die $!;

$inotify->watch(
    $watch_dir,
    IN_CLOSE_WRITE | IN_MOVED_TO,
    sub {
        my $e    = shift;
        my $name = $e->fullname;
        print "test!:${name}\n";
        system( 'mv', $name, "${processed_dir}/" );
    }
);

my $cv = AnyEvent->condvar;
my $inotify_w = AnyEvent->io(
    fh   => $inotify->fileno,
    poll => 'r',
    cb   => sub { $inotify->poll }
);
$cv->recv;

起動して queue ディレクトリにファイルを置いたら processed ディレクトリに移動するのを確認できました。

Facebooktwittergoogle_pluslinkedintumblrmail

メモ:CentOS 5.5 で perlbrew + cpanminus

ユーザーのホームに全部入るので影響範囲を限定できてうれしい。
OSのバージョンとかあまり関係ないのですが、試した環境が CentOS 5.5 なので。

まずは perlbrew から。

ホームに移動。インストール用のファイルを取ってきてインストール実行。

$ cd
$ wget http://xrl.us/perlbrew
$ chmod +x perlbrew 
$ ./perlbrew install

インストール用ファイル削除。イニシャライズを実行。

$ rm perlbrew 
$ perl5/perlbrew/bin/perlbrew init

用意された設定を読み込むように .bashrc に追加。

$ echo "source $HOME/perl5/perlbrew/etc/bashrc" >> ~/.bashrc
$ source .bashrc 

perlbrewで perl 5.8.9 をインストール。インストールした perl 5.8.9 に切り替え。

$ perlbrew install perl-5.8.9
$ perlbrew switch perl-5.8.9

確認。使用するものに(*)がつく(アカウントapacheでやってます)。

$ perlbrew installed
perl-5.8.9(*)
/home/apache/perl5/perlbrew/perls/current/bin/perl
/usr/bin/perl

次に cpanminus 。

ホームに bin がなかったんで掘って移動。

$ mkdir ~/bin
$ cd ~/bin

ファイルを取ってきて実行権限付ける。

$ wget http://xrl.us/cpanm
$ chmod +x cpanm 

以上。あら簡単。
※この方法だと後で不便があります。コメントでご助言いただいていますのでご参照下さい。

ちまたで噂の cpan-outdated + cpanminus での全モジュールのアップデートもやっときます。

cpan-outdated 入れる。

$ cpanm App::cpanoutdated

cpan-outdated は古くなったモジュールの一覧返してくれるのですが、

$ cpan-outdated | cpanm 

と cpanminus に食わせると古くなったモジュールを全部アップデートしてくれる。素敵!

Facebooktwittergoogle_pluslinkedintumblrmail