サーバー設定 · 3 min read · Jan 06, 2026

CentOS 5.1 における Virtualmin を使用した仮想ホスティングの手順 - ページ 5

Clamav Milter の設定

  • /etc/sysconfig/clamav-milter を編集します:
CLAMAV_FLAGS="
        --config-file=/etc/clamd.conf
        --force-scan
        --local
        --max-children=5
        --sendmail-cf=
        --outgoing
        --quiet
"
SOCKET_ADDRESS="local:/var/clamav/clmilter.socket"
  • ソケットの権限を修正するために init ファイルをパッチします:
wget http://www.topdog-software.com/files/clamav-milter.patch  
patch /etc/init.d/clamav-milter < clamav-milter.patch

MySQL の設定

基本設定

  • localhost のみをリッスンするように、mysqld セクションの /etc/my.cnf を編集します:
bind-address = 127.0.0.1

ルートパスワードの設定

  • ルートパスワードを設定します:
service mysqld start  
mysqladmin -u root password NEWPASSWORD

SpamAssassin の設定

基本設定

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]

MySQL データベースの作成

  • データベースを作成します:
mysqladmin -p create bayes
  • データベースにデータを追加します:
mysql -p bayes < /usr/share/doc/spamassassin-$(rpm --qf %{VERSION} -q spamassassin)/sql/bayes_mysql.sql
  • ユーザーを作成します:
mysql -p  
mysql> GRANT ALL ON bayes.* TO bayes@localhost IDENTIFIED BY 'password';

データベースを使用するように設定

  • /etc/mail/spamassassin/local.cf を編集し、以下を追加します:
bayes_store_module  Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn       DBI:mysql:bayes:localhost
bayes_sql_override_username bayes
bayes_sql_username  bayes
bayes_sql_password  password

FuzzyOCR の設定

画像のハッシュを MySQL データベースに保存し、すでにスキャンした画像が再度スキャンされないようにして、OCR のリソース集約的な活動を改善します。

MySQL データベースの作成

  • SQL スクリプトがデータベースとテーブルを作成し、ユーザー fuzzyocr をパスワード fuzzyocr で追加します:
mysql -p < /usr/local/src/devel/FuzzyOcr.mysql
  • パスワードを変更します:
mysqladmin -u fuzzyocr -p fuzzyocr password

基本設定

  • /etc/mail/spamassassin/FuzzyOCR.cf を編集し、基本オプションを設定します:
focr_path_bin /usr/bin:/usr/local/bin
focr_minimal_scanset 1
focr_autosort_scanset 1
focr_enable_image_hashing 3
focr_logfile /tmp/FuzzyOcr.log

FuzzyOCR にデータベースを使用させる

  • /etc/mail/spamassassin/FuzzyOcr.cf を編集し、以下を追加します:
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass password
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/lib/mysql/mysql.sock

SARE ルールの更新

  • ルールに署名するために使用される GPG キーをインポートします:
mkdir /etc/mail/spamassassin/sa-update-keys/  
chmod 700 /etc/mail/spamassassin/sa-update-keys/  
wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY  
sa-update --import GPG.KEY
  • チャンネルファイル /etc/mail/spamassassin/sare-sa-update-channels.txt を作成します:
updates.spamassassin.org
72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_html_eng.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_header_eng.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_genlsubj0.cf.sare.sa-update.dostech.net
70_sare_genlsubj_eng.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
  • 更新スクリプト /usr/local/bin/update-sa を作成します:
#!/bin/bash
#
#
sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A &>/var/log/sa-updates.log
  • 実行可能にして cron に追加します:
chmod +x /usr/local/bin/update-sa  
ln -s /usr/local/bin/update-sa /etc/cron.daily/  
ln -s /usr/local/bin/update-sa /etc/cron.hourly/

Spamass-milter の設定

基本設定

  • /etc/sysconfig/spamass-milter を編集します:
SOCKET=/var/run/spamass.sock
EXTRA_FLAGS="-m -r 8"

パッチ

ソケットの権限を修正するために init ファイルをパッチする必要があります。

wget http://www.topdog-software.com/files/spamass-milter.patch  
patch /etc/rc.d/init.d/spamass-milter < spamass-milter.patch

Apache の設定

モジュールの無効化

使用していないモジュールを無効にして、メモリを解放し、セキュリティを向上させます。

  • /etc/httpd/conf/httpd.conf を編集し、以下のようにモジュールをコメントアウトします。
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule status_module modules/mod_status.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
  • /etc/httpd/conf.d/proxy_ajp.conf を編集し、以下のようにコメントアウトします:
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

HTTPS 用に 1 つの IP をリッスン

Apache はポート 443 用に 1 つのアドレスをリッスンするように設定する必要があります。Webmin が同じポートを使用するためです。/etc/httpd/conf.d/ssl を編集します:

Listen 192,168.1.6:443

Gzip 圧縮の有効化

mod_deflate モジュールを介して gzip 圧縮を設定し、Web サーバーのパフォーマンスを向上させ、クライアントへの応答を圧縮することで帯域幅の使用を削減します。

SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

deflate モジュールのログ設定:

DeflateFilterNote deflate_ratio
LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
CustomLog logs/deflate_access_log vhost_with_deflate_info

PHP 最大メモリの増加

/etc/php.ini を編集し、以下を設定します:

memory_limit = 64M

仮想ホスティングの有効化

NameVirtualHost *:80

デフォルトの仮想ホストの作成

これが最初の仮想ホストであり、サーバーのデフォルトとなります。仮想ホスティングがないサーバーに相当します。


        Servername localhost.localdomain
        Serveradmin [email protected]

Roundcube Webmail の設定

データベースの作成

  • データベースを作成し、roundcube ユーザーを追加します。
mysqladmin -p create roundcube  
mysql -p  
mysql> GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'password';
  • データベースを初期化します:
mysql -u roundcube -p roundcube < /usr/share/doc/roundcube-0.1/SQL/mysql5.initial.sql

基本設定

  • /var/www/roundcube/config/db.inc.php でデータベース DSN を設定します:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:password@localhost/roundcube';
  • /var/www/roundcube/config/main.inc.php で roundcube を設定します:
$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = 143;
$rcmail_config['virtuser_file'] = '/etc/postfix/virtual';
$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 25;
$rcmail_config['smtp_helo_host'] = 'localhost';

すべてのドメイン用のキャッチオール仮想ホストの設定

システム上で作成されるすべてのドメインに対して Webmail を提供するため、ユーザーが http://webmail.domainname にアクセスしたときに roundcube を表示できるキャッチオール仮想ホストを設定する必要があります。/etc/httpd/conf/httpd.conf を編集し、以下を追加します:


ServerName webmail.example.com
ServerAlias webmail.*
DocumentRoot /var/www/roundcube

Options -Indexes IncludesNOEXEC FollowSymLinks
allow from all

ファイアウォールの設定

はじめに

これは基本的なファイアウォールであり、あなたのニーズに合わないかもしれません。ファイアウォールはアートであるため、これを改善するために読んでみることをお勧めします。

基本設定

設定ファイル /etc/sysconfig/iptables にこれらのルールを追加します:

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m multiport -j ACCEPT --dports 80,443,25,110,143,53
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p icmp -m icmp -m limit --icmp-type 8 --limit 5/min -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.1.5 -j ACCEPT
-A OUTPUT -s 192.168.1.6 -j ACCEPT
COMMIT

設定の有効化

service iptables restart
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。