サーバー設定 · 3 min read · Sep 23, 2025

完璧なサーバー CentOS 7.2 と Apache、Postfix、Dovecot、Pure-FTPD、BIND、ISPConfig 3.1

このチュートリアルでは、CentOS 7.2 (64Bit) サーバーに ISPConfig 3.1 をインストールする方法を示します。ISPConfig は、Web ブラウザを通じて次のサービスを構成できる Web ホスティングコントロールパネルです: Apache Web サーバー、Postfix メールサーバー、MySQL、BIND ネームサーバー、PureFTPd、SpamAssassin、ClamAV、Mailman など。

1 要件

このシステムをインストールするには、次のものが必要です:

  • Centos 7.2 の最小サーバーシステム。これは、私たちの Centos 7.2 最小サーバーチュートリアルに記載されているように、ゼロからインストールされたサーバー、またはホスティング会社から提供される最小 Centos 7.1 セットアップがインストールされた仮想サーバーまたはルートサーバーである可能性があります。
  • 高速なインターネット接続。

2 予備ノート

このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.1.100、ゲートウェイ 192.168.1.1 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。

HHVM と XMPP は、CentOS プラットフォームの ISPConfig ではまだサポートされていないことに注意してください。ISPConfig 内から XMPP チャットサーバーを管理したり、ISPConfig ウェブサイトで HHVM (Hip Hop Virtual Machine) を使用したい場合は、CentOS 7.2 の代わりに Debian 8 または Ubuntu 16.04 をサーバー OS として使用してください。

3 サーバーの準備

キーボードレイアウトの設定

サーバーのキーボードレイアウトがあなたのキーボードと一致しない場合は、localectl コマンドを使用して正しいキーボードに切り替えることができます(私の場合はドイツ語キーボードレイアウトの「de」)。

localectl set-keymap de

利用可能なキーマップのリストを取得するには、次のコマンドを実行します:

localectl list-keymaps

このチュートリアルの最後に ISPConfig をインストールしたいと思います。ISPConfig には、私がファイアウォールとして使用したい Bastille ファイアウォールスクリプトが付属しているため、デフォルトの CentOS ファイアウォールを無効にします。もちろん、CentOS ファイアウォールをそのままにして、あなたのニーズに合わせて構成することもできます(ただし、その場合は、後で他のファイアウォールを使用しないでください。おそらく CentOS ファイアウォールと干渉するためです)。

次のコマンドを実行して、CentOS ファイアウォールを停止し、無効にします。

yum -y install net-tools  
systemctl stop firewalld.service  
systemctl disable firewalld.service

ここでエラーが表示されても問題ありません。これは、ファイアウォールがインストールされていなかったことを示しています。

次に、ファイアウォールが本当に無効になっていることを確認する必要があります。そのためには、次のコマンドを実行します:

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

または、firewall-cmd コマンドを使用します:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

次に、ネットワーク構成エディタと、次のステップで構成ファイルを編集するために使用するシェルベースのエディタ「nano」をインストールします:

yum -y install nano wget NetworkManager-tui

インストール中にネットワークカードを構成しなかった場合は、今すぐそれを行うことができます。次のコマンドを実行します:

nmtui

… 接続の編集に移動します:

ネットワークインターフェースを選択します:

次に、ネットワークの詳細を入力します - DHCP を無効にし、静的 IP アドレス、ネットマスク、ゲートウェイ、および 1 つまたは 2 つのネームサーバーを入力し、OK を押します:

次に、ネットワーク設定で行った変更を確認するために OK を選択します

そして、nmtui ネットワーク構成ツールを閉じるために Quit を選択します。

次に、インストーラーがあなたの IP アドレスを正しく取得したかどうかを確認するために、次のコマンドを実行します:

ifconfig
[root@server1 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ネットワークカードがそこに表示されない場合は、起動時に有効になっていない可能性があります。この場合、/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを開きます。

nano /etc/sysconfig/network-scripts/ifcfg-ens33

ONBOOT を yes に設定します:

[...]  
ONBOOT=yes  
[...]  

そして、サーバーを再起動します。

/etc/resolv.conf を確認して、以前に構成したすべてのネームサーバーがリストされているか確認します:

cat /etc/resolv.conf

ネームサーバーが欠けている場合は、次のコマンドを実行して、欠けているネームサーバーを再度追加します。

nmtui

次に、設定に進みます…

/etc/hosts の調整

次に、/etc/hosts を編集します。次のようにします:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.1.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

SELinux の無効化

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

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

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

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

reboot

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

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

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

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

yum -y install epel-release
yum -y install yum-priorities

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

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

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

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

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

yum -y update

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

yum -y groupinstall 'Development Tools'

5 クォータ

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

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

yum -y install quota

次に、ウェブサイト (/var/www) とメールデータ (var/vmail) が保存されているファイルシステムでクォータがすでに有効になっているかどうかを確認します。この例のセットアップでは、1 つの大きなルートパーティションがあるため、’ / ‘ を検索します:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)  
[root@server1 ~]#

別の /var パーティションがある場合は、次のようにします:

mount | grep ' /var '

その行に「 noquota 」という単語が含まれている場合は、クォータを有効にするために次の手順に進みます。

/ (ルート) パーティションでのクォータの有効化

通常、/etc/fstab ファイルでクォータを有効にしますが、ファイルシステムがルートファイルシステム「/」の場合、クォータは Linux カーネルのブートパラメータによって有効にする必要があります。

grub 構成ファイルを編集します:

nano /etc/default/grub

GRUB_CMDLINE_LINUX で始まる行を検索し、コマンドラインパラメータに rootflags=uquota,gquota を追加して、結果の行が次のようになるようにします:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"

次のコマンドを実行して変更を適用します。

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak  
grub2-mkconfig -o /boot/grub2/grub.cfg

そして、サーバーを再起動します。

reboot

次に、クォータが有効になっているかどうかを確認します:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

クォータがアクティブな場合、マウントオプションリストに「 usrquota,grpquota 」が表示されます。

別の /var パーティションでのクォータの有効化

別の /var パーティションがある場合は、/etc/fstab を編集し、/ パーティション (/dev/mapper/centos-var) に ,uquota,gquota を追加します:

nano /etc/fstab
#  
# /etc/fstab  
# anaconda によって 2014 年 9 月 21 日 16:33:45 に作成されました  
#  
# 参照によってアクセス可能なファイルシステムは、'/dev/disk' の下に保持されます  
# 詳細については、man ページ fstab(5)、findfs(8)、mount(8)、および/または blkid(8) を参照してください  
#  
/dev/mapper/centos-root /                       xfs     defaults        1 1  
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2  
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

次に、次のコマンドを実行します。

mount -o remount /var
quotacheck -avugm  
quotaon -avug

クォータを有効にします。クォータが有効になっていないパーティションがないというエラーが表示された場合は、次に進む前にサーバーを再起動してください。

6 Apache、MySQL、phpMyAdmin のインストール

必要なパッケージを 1 つのコマンドでインストールできます:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

サーバーが HTTPOXY 脆弱性を通じて攻撃されないように、Apache で HTTP_PROXY ヘッダーをグローバルに無効にします。

httpd.conf ファイルの最後に Apache ヘッダーのルールを追加します:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

そして、設定変更を適用するために httpd を再起動します。

service httpd restart
Share: X/Twitter LinkedIn

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

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