サーバ管理



2013年 5月 19

Linodeのマニュアルにはiptablesの設定の仕方とか書いてあって親切。

Linode – Creating a Firewall

ルールの作成
vi /etc/iptables.firewall.rules

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT
ルールの適用
sudo iptables-restore < /etc/iptables.firewall.rules
ルールの確認
sudo iptables -nL
ルールの保存

CentOS6.2以上の場合は

/sbin/service iptables save

Filed under: メモ

Trackback Uri






2013年 5月 15

yumでインストールしたphpMyAdmin。途中は端折るけど、「mcrypt 拡張をロードできません。PHP の設定を確認してください」のエラーが消えない。

$ php -v
# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/module.so' - /usr/lib64/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

色々ググッた結果このエントリーを発見

「mcrypt 拡張をロードできません。PHP の設定を確認してください」

# vi /etc/php.d/mcrypt.ini 
; Enable mcrypt extension module
extension=mcrypt.so

こんなトラップが仕掛けられているとは恐れ入る。


Filed under: CentOS6.x,phpmyadmin

Trackback Uri






2013年 5月 13

openssl-develをインストールしてからインストールする。

sudo yum install openssl-devel
cpanm Net-SSLeay

Filed under: CentOS6.x,perlモジュール,インストールメモ

Trackback Uri






2013年 5月 10

groonga

どうやらcentosではmecab単体のパッケージが提供されていないので、groongaをインストールする。

2.5. CentOS — groonga v3.0.3ドキュメント

groongaのリポジトリを追加
% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
groongaのトークナイザーにmecabを使う
% sudo yum install -y groonga-tokenizer-mecab
================================================================================
 Package                   Arch     Version                     Repository
                                                                           Size
================================================================================
Installing:
 groonga-tokenizer-mecab   x86_64   3.0.3-0.el6                 groonga    18 k
Installing for dependencies:
 mecab                     x86_64   0.996-1.el6                 groonga   2.3 M
 mecab-ipadic              x86_64   2.7.0.20070801-6.el6.1      groonga    13 M

Transaction Summary
================================================================================
Install       3 Package(s)

mecab本体と辞書がインストールされます。

もしかするとgroonagリポジトリ追加して、yum install mecab mecab-ipadic で良かったかも。groonga必要だからいいけど。


Filed under: CentOS5.x,CentOS6.x,インストールメモ

Trackback Uri






2013年 4月 28

SpamAssassin

SpamAssasinのみをインストールしたくなったのでメールサーバ再構築のついでに試してみる。メールサーバ構築のまとめ でPostfix+MySQL+postfixadminは構築済みとして想定しています。そちらではウィルスチェックも導入しているため今回はスパムチェックのみの導入。

また、学習機能があるようなので試してみる。スパム判定の精度が高まるみたい。

  • .Spam ディレクトリの作成
  • スパムメールの学習
  • 通常のメールの学習

コレに合わせて postfixadmin +procmailな環境でメールディレクトリの自動作成・削除 のメールディレクトリ作成スクリプトに .Spam を作るコマンドを追加。

SpamAssassinのインストール

yum install spamassassin

procmailの設定

  • バーチャルドメインでのメールアカウントを使用。
  • 保存ディレクトリは /mail/domain.tld/user@domain.tld とする。
  • $DOMAINと$USERは Postfixのmaster.cfで取得している。

/etc/procmailrc を新規作成する。SpamAssassinの起動条件は参考ブログより引用。

# vi /etc/procmailrc

SHELL=/bin/bash
PATH=/usr/bin:/bin
DEFAULT=/mail/$DOMAIN/$USER\@$DOMAIN/
LOCKFILE=/mail/procmail.lock
LOGFILE=/mail/procmail.log   # ログ出力先
#VERBOSE=ON   # 詳細ログ出力

# メールヘッダー中に「 X-Spam-*** 」の記述がなければ spamassassin を起動します
:0fw
*!^X-Spam.*
|spamassassin

# メールヘッダー中に「 X-Spam-Status: Yes 」の記述があれば、「 .Spam 」ディレクトリにメールを格納します
:0
* ^X-Spam-Status: Yes
$DEFAULT/.Spam/

ログの肥大化を防ぐため、ログローテーション設定ファイル新規作成する。

# vi /etc/logrotate.d/procmail

/mail/procmail.log {
    missingok
    nocreate
    notifempty
}

Postfixとprocmailを連携させる

main.cf の設定

# vi /etc/postfix/main.cf

....最終行付近
# virtual_transport = virtual  ←コメントアウト
virtual_transport = procmail  ←追記
procmail_destination_recipient_limit = 1 ←追記

master.cf の設定

# vi /etc/postfix/master.cf

最終行に追記
procmail unix - n n - - pipe
  flags=R user=vuser argv=/usr/bin/procmail -t -m USER=${user} DOMAIN=${nexthop} /etc/procmailrc

SpamAssassin起動

# service spamassassin start

SpamAssassin自動起動設定

# chkconfig spamassassin on

Postfixを再起動して設定を有効化

# /etc/rc.d/init.d/postfix restart

スパムメールの学習

スパムメールの判定制度を上げるために学習する事が出来る。また、迷惑メールではないメールの学習も可能。

スパムメールを学習するコマンド(全てのユーザのSpamフォルダを対象)
# /usr/bin/sa-learn --spam /mail/*/*/.Spam/cur
通常のメールを学習するコマンド(全てのユーザの受信フォルダを対象)
# /usr/bin/sa-learn --ham /mail/*/*/cur

参考ブログではcronに設定していたけど、Spamメールを確認してから手動でコマンドを実行するようにする。~/binにコマンドスクリプトを作成してsudoで実行できるようにしておく。

$ mkdir ~/bin
$ vi ~/bin/spam-learn 
#!/bin/sh

/usr/bin/sa-learn --spam /mail/*/*/.Spam/cur

# スパムメール保存ディレクトリの中身を強制的に消去してよいのなら以下の記述を追加
/bin/rm -f /mail/*/*/.Spam/cur/*
echo 'All Spam Mail Deleted.'

$ chmod 700 ~/bin/spam-learn
$ sudo chown root:root ~/bin/spam-learn

スパムメール学習コマンドを使う時

メーラーでSpamフォルダに迷惑メールしか無いと確認してから以下のコマンドで学習&スパムメール削除

$ sudo spam-learn

入れなおしたらかなりの確率でスパムメールを排除してくれる!

参考:


Filed under: postfix,メールサーバ

Trackback Uri