サーバー設定 · 2 min read · Oct 08, 2025

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

4 /etc/hostsの調整

次に、/etc/hostsを編集します。以下のようにしてください:

vi /etc/hosts

| 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.0.100 server1.example.com server1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 |

5 ファイアウォールの設定

(基本システムのインストールの最後でファイアウォールを無効にした場合は、この章をスキップできます。)

このチュートリアルの最後にISPConfigをインストールしたいので、独自のファイアウォールが付属しています。だから、今はデフォルトのCentOSファイアウォールを無効にします。もちろん、必要に応じてそれを有効にして設定することもできます(ただし、その場合は、後で他のファイアウォールを使用しない方が良いでしょう。おそらくCentOSファイアウォールと干渉するためです)。

実行します

system-config-firewall

そしてファイアウォールを無効にします。

ファイアウォールが本当に無効になったかどうかを確認するには、次のコマンドを実行できます

iptables -L 

出力は以下のようになります:

[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@server1 ~]#

6 SELinuxの無効化

SELinuxはCentOSのセキュリティ拡張で、拡張セキュリティを提供するはずです。私の意見では、安全なシステムを構成するためには必要ありませんし、通常は利点よりも問題を引き起こすことが多いです(あるサービスが期待通りに動作しなかったために1週間トラブルシューティングを行った後、すべてが正常で、SELinuxが問題を引き起こしていたことがわかることを考えてみてください)。したがって、私はそれを無効にします(後でISPConfigをインストールしたい場合は必須です)。

/etc/selinux/configを編集し、SELINUX=disabledに設定します:

vi /etc/selinux/config

| # このファイルはシステム上のSELinuxの状態を制御します。 # SELINUX=は次の3つの値のいずれかを取ることができます: # enforcing - SELinuxセキュリティポリシーが強制されます。 # permissive - SELinuxは強制する代わりに警告を表示します。 # disabled - SELinuxポリシーは読み込まれません。 SELINUX=disabled # SELINUXTYPE=は次の2つの値のいずれかを取ることができます: # targeted - 対象プロセスが保護されます。 # mls - マルチレベルセキュリティ保護。 SELINUXTYPE=targeted |

その後、システムを再起動する必要があります:

reboot

7 追加リポジトリの有効化とソフトウェアのインストール

まず、ソフトウェアパッケージのGPGキーをインポートします:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

次に、CentOSシステムでRPMforgeとEPELリポジトリを有効にします。これは、このチュートリアルの過程でインストールする多くのパッケージが公式のCentOS 6.3リポジトリにはないためです:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

cd /tmp
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

(上記のリンクがもう機能しない場合は、rpmforge-releaseの現在のバージョンをここで見つけることができます:http://packages.sw.be/rpmforge-release/)

rpm –import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm

また、後でインストールするphp-fpmパッケージを含むRemi RPMリポジトリを有効にする必要があります: rpm –import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum install yum-priorities

/etc/yum.repos.d/epel.repoを編集します…

vi /etc/yum.repos.d/epel.repo

…そして、[epel]セクションにpriority=10の行を追加します:

| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

次に、/etc/yum.repos.d/remi.repoの[remi]セクションでも同様のことを行い、enabledを1に変更します:

vi /etc/yum.repos.d/remi.repo

| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |

次に、システム上の既存のパッケージを更新します:

yum update

これで、後で必要なソフトウェアパッケージをいくつかインストールします:

yum groupinstall 'Development Tools'

8 クォータ

(私が選んだのとは異なるパーティショニングスキームを選択した場合は、クォータが必要なパーティションに適用されるようにこの章を調整する必要があります。)

クォータをインストールするには、次のコマンドを実行します:

yum install quota

/etc/fstabを編集し、/パーティション(/dev/mapper/vg_server1-lv_root)に、usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0を追加します:

vi /etc/fstab

| # # /etc/fstab # anacondaによって2012年7月11日水曜日17:52:57に作成されました # # 参照によってアクセス可能なファイルシステムは'/dev/disk'の下に維持されます # 詳細については、manページfstab(5)、findfs(8)、mount(8)および/またはblkid(8)を参照してください # /dev/mapper/vg_server1-lv_root / ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 UUID=806910a1-dbdf-4746-bd94-cbe73ce81493 /boot ext4 defaults 1 2 /dev/mapper/vg_server1-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 |

次に、実行します

mount -o remount /

quotacheck -avugm
quotaon -avug

クォータを有効にします。

9 システムクロックの同期

システムクロックをインターネット上のNTP(network time protocol)サーバーと同期させるのは良いアイデアです。単に実行します

yum install ntp

そうすれば、システムの時間は常に同期されます。

10 MySQLのインストール

MySQLを次のようにインストールします:

yum install mysql mysql-server

次に、MySQLのシステム起動リンクを作成し、起動します:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

MySQLのrootアカウントのパスワードを設定します:

mysql_secure_installation

[root@server1 tmp]# mysql_secure_installation

NOTE: このスクリプトのすべての部分を実行することは、すべてのMySQLサーバーで推奨されます。 すべてのステップを注意深く読んでください!

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

Enter current password for root (enter for none):
OK, successfully used password, moving on…

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

Set root password? [Y/n] <– ENTER
New password: <– yourrootsqlpassword
Re-enter new password: <– yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
… Success!

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

Remove anonymous users? [Y/n] <– ENTER
… Success!

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

Disallow root login remotely? [Y/n] <– ENTER
… Success!

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

Remove test database and access to it? [Y/n] <– ENTER

  • Dropping test database…
    … Success!
  • Removing privileges on test database…
    … Success!

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

Reload privilege tables now? [Y/n] <– ENTER
… Success!

クリーンアップ中…

すべて完了しました! 上記のすべての手順を完了した場合、MySQLのインストールは安全になっているはずです。

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

[root@server1 tmp]#

Share: X/Twitter LinkedIn

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

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