‘CentOS’ タグのついている投稿
SPFをテスト環境のPostfixに組み込む
わざわざGoogle Domainsや、お名前.comから取得しなくても、試せるようにしています。
CentOS Stream 9でRoundCubeの簡易テスト環境を作る
Vagrant+AnsibleでCentOS7のセキュリティアップデートまで
muraveです。ここ最近の記事、
についてスクリプト化してGitHubで公開しました
クラウド(Scaleway)上で動かすのでセキュリティ確保のために yum update するべき。しかし全部アップデートすると時間がかかりすぎる。そこでセキュリティアップデート出来るようにセットアップして実行するところまで自動で、という内容です。
冪等性が確保できているとは言い難い所はありますが(/securityが存在するか?だけでsecurityリポジトリが作成されているか判断している等)、ベースとしては使えるとおもいます。
CentOS7 での yum –security update 事情
夏風邪で減った体重がすっかりもどってしまいました。muraveです。
自身への細菌の侵入は許しましたが、サーバーへの侵入は防がねばなりません(自然な導入)
そんなわけで Ansible では yum update 相当の
yum: name=* state=latest
を毎回やっていたのですが、時間がかかりすぎて辛くなってきました。そんなわけでセキュリティアップデートだけするのがいいかな、と調べ始めました。
yum-plugin-securityというパッケージを利用して
$ yum --security update
が出来ることを知りました(そもそもCentOS7ではyum-plugin-securityがyumに統合されている模様)。 やったぜ!
CentOSのリポジトリではセキュリティアップデート情報が提供されていなくて正常動作しないらしいことも知りました。 やってなかったぜ!
先人の知恵と努力を頼りましょう。
- CEFS: CentOS Errata for Spacewalk
- Spacewalk用のCentOSエラッタを提供しているプロジェクト。
- Inject a little security in to your CentOS repositories
- CEFSのエラッタからupdateinfo.xml作るスクリプト作ったぜー、という話。
- CentOS 7でyumからSecurityUpdateを行えるようにする
- 作業内容は殆どこちらのページそのままです。ありがとうございます。
ということでまとめますと、securiy用のローカルリポジトリを作り、CEFSが提供しているSpacewalk用のエラッタからupdateinfo.xmlを作って設置、yum –security update します。
(さらに…)
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 に登録していたユーザやグループ、各ユーザのメールやその他データなどは、
もちろん、吹っ飛んでしまいますので、あくまで、初期導入時にのみ使用できる方法です。
CentOS5.5 64bitにmod_pythonをインストール
- 2010/02/25
- yoshida
- Apache
- CentOS
- 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
#権限は環境に合わせてください
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。
メモ:Linux::Inotify2 でディレクトリを監視して処理
- 2010/02/05
- murave
- CentOS
- 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;
メモ: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