サーバー設定 · 2 min read · Nov 19, 2025

完璧なサーバー - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3) - ページ 3

8 Postfix、Dovecot、MySQLのインストール

実行します

zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

次のメッセージが表示された場合は、sendmailをアンインストールするように選択してください:

Problem: sendmail-8.14.5-85.1.2.x86_64 conflicts with postfix provided by postfix-2.9.6-1.2.1.x86_64  
  Solution 1: Following actions will be done:  
   do not install postfix-2.9.6-1.2.1.x86_64  
   do not install postfix-mysql-2.9.6-1.2.1.x86_64  
  Solution 2: deinstallation of sendmail-8.14.5-85.1.2.x86_64  
   
 Choose from above solutions by number or cancel [1/2/c] (c):<-- 2

次のシンボリックリンクを作成します:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

この時点で、MySQLが起動を拒否したため、再起動する必要がありました。エラーは次のとおりです:

Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details.
reboot

MySQL、Postfix、Dovecotを起動し、サービスがブート時に起動するように有効にします。

systemctl enable mysql.service  
 systemctl start mysql.service
systemctl enable postfix.service  
 systemctl start postfix.service
systemctl enable dovecot.service  
 systemctl start dovecot.service

次に、getmailパッケージをインストールします:

zypper install getmail

MySQLのインストールを安全にするために、次を実行します:

mysql_secure_installation

今、いくつかの質問がされます:

server1:~ # mysql_secure_installation

NOTE: このスクリプトのすべての部分を実行することは、すべてのMySQLサーバーで推奨されます。
本番環境で使用する場合は、各ステップを注意深くお読みください!

MySQLにログインして安全にするためには、現在の
rootユーザーのパスワードが必要です。
MySQLをインストールしたばかりで、まだrootパスワードを設定していない場合、
パスワードは空白になりますので、ここではただEnterを押してください。

rootの現在のパスワードを入力してください(なしの場合はEnter):<– ENTER
OK、パスワードが正常に使用されました。次に進みます…

rootパスワードを設定することで、
適切な認証なしに誰もMySQLのrootユーザーにログインできないようにします。

rootパスワードを設定しますか? [Y/n] <– Y
新しいパスワード:<– yourrootsqlpassword
新しいパスワードを再入力してください:<– yourrootsqlpassword
パスワードが正常に更新されました!
特権テーブルを再読み込みしています..
… 成功!

デフォルトでは、MySQLインストールには匿名ユーザーがあり、
誰でもユーザーアカウントを作成することなくMySQLにログインできます。
これはテスト専用であり、インストールを少しスムーズにするためのものです。
本番環境に移行する前に、これらを削除する必要があります。

匿名ユーザーを削除しますか? [Y/n] <– Y
… 成功!

通常、rootは「localhost」からのみ接続を許可されるべきです。
これにより、誰かがネットワークからrootパスワードを推測できないようになります。

リモートでのrootログインを禁止しますか? [Y/n] <– Y
… 成功!

デフォルトでは、MySQLには「test」という名前のデータベースがあり、
誰でもアクセスできます。
これもテスト専用であり、本番環境に移行する前に削除する必要があります。

テストデータベースとそのアクセスを削除しますか? [Y/n] <– Y

  • テストデータベースを削除しています…
    … 成功!
  • テストデータベースの特権を削除しています…
    … 成功!

特権テーブルを再読み込みすることで、
これまでに行ったすべての変更が即座に反映されることを確認します。

特権テーブルを今すぐ再読み込みしますか? [Y/n] <– Y
… 成功!

クリーンアップ中…

すべて完了!
上記のすべてのステップを完了した場合、
あなたのMySQLインストールは今や安全であるはずです。

MySQLをご利用いただきありがとうございます!

server1:~ #

これであなたのMySQL設定は安全になりました。

9 Amavisd-new、Spamassassin、Clamav

Amavisd-new、Spamassassin、Clamavウイルス対策をインストールします。実行します

zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

/etc/amavisd.confを開きます…

vi /etc/amavisd.conf

… そして、$mydomain行の下に正しいホスト名を持つ$myhostname行を追加します:

| [...] $mydomain = 'example.com'; # 他の設定のための便利なデフォルト $myhostname = "server1.$mydomain"; [...] |

次に、/var/run/clamav/clamdから/var/lib/clamav/clamd-socketへのシンボリックリンクを作成します:

mkdir -p /var/run/clamav  
 ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.3には、ランタイムデータを保存するための/runディレクトリがあります。/runは現在tmpfsであり、/var/runは現在tmpfsから/runにバインドマウントされており、再起動時に空になります。

これは、再起動後に私たちが作成した/var/run/clamavディレクトリが存在しなくなり、したがってclamdが起動に失敗することを意味します。したがって、システム起動時にこのディレクトリを作成する/etc/tmpfiles.d/clamav.confファイルを作成します(詳細についてはhttp://0pointer.de/public/systemd-man/tmpfiles.d.htmlを参照してください):

vi /etc/tmpfiles.d/clamav.conf

| D /var/run/clamav 0755 root root - |

amavisdとclamdを開始する前に、/etc/init.d/amavis初期化スクリプトを編集する必要があります - デフォルトの初期化スクリプトでは、amavisdを信頼性よく開始、停止、再起動することができませんでした:

vi /etc/init.d/amavis

開始と停止のセクションで次の行をコメントアウトします:

| [...] start) # ZMI 20100428 stale pidファイルのチェック #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # pidファイルが古いです。削除します。 # echo -n "(古いamavisd pidファイル $AMAVIS_PIDが見つかりました。削除します。amavisdがクラッシュしましたか?)" # rm -f $AMAVIS_PID # fi #fi echo -n "ウイルススキャナー(amavisd-new)を開始しています: " $AMAVISD_BIN start #if ! checkproc amavisd; then # rc_failed 7 #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "amavis-milterを開始しています:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "ウイルススキャナー(amavisd-new)をシャットダウンしています: " #if checkproc amavisd; then # rc_reset $AMAVISD_BIN stop #else # rc_reset #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "amavis-milterをシャットダウンしています: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |

初期化スクリプトを変更したため、次を実行する必要があります

systemctl --system daemon-reload

clamavを開始するには、データベースをダウンロードし、次のコマンドを実行します

freshclam

注意: データベースのダウンロードには多くの時間がかかります。中断せず、freshclam更新サービスを途中で停止しないことをお勧めします。

サービスを有効にするには、次を実行します:

systemctl enable amavis.service  
 systemctl enable clamd.service  
 systemctl start amavis.service  
 systemctl start clamd.service
Share: X/Twitter LinkedIn

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

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