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

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

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

1 要件

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

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

2 予備ノート

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

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

3 サーバーの準備

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

サーバーのキーボードレイアウトがあなたのキーボードと一致しない場合は、適切なキーボードに切り替えることができます(私の場合はドイツ語キーボードレイアウトのため「de」):

localectl set-keymap de

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

localectl list-keymaps

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

次のコマンドを実行して…

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

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

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

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 を選択します。

次に、

ifconfig

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

[root@localhost ~]# ifconfig  
ens33: flags=4163 mtu 1500  
 inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255  
 inet6 fe80::20c:29ff:fe1a:3d8e prefixlen 64 scopeid 0x20  
 ether 00:0c:29:1a:3d:8e txqueuelen 1000 (Ethernet)  
 RX packets 184972 bytes 256696909 (244.8 MiB)  
 RX errors 0 dropped 0 overruns 0 frame 0  
 TX packets 62983 bytes 7236189 (6.9 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 1 (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  
  
[root@localhost ~]#

ネットワークカードがそこに表示されない場合は、起動時に有効になっていない可能性があります。この場合、/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/hostname の調整

次に、/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

/etc/hostname ファイルにホスト名を設定します。このファイルには、完全修飾ドメイン名(私の場合は server1.example.com)を含め、短い名前「server1」だけではなくします。nano エディタでファイルを開きます:

nano /etc/hostname

そしてファイルにホスト名を設定します。

server1.example.com

ファイルを保存して、nano を終了します。

SELinux の無効化

SELinux は、拡張セキュリティを提供する CentOS のセキュリティ拡張です。私の意見では、セキュアなシステムを構成するために必要ではなく、通常は利点よりも問題を引き起こします(あるサービスが期待通りに動作しなかったために1週間トラブルシューティングを行った後、すべてが正常で、問題を引き起こしていたのは 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 日に作成されました  
#  
# 参照によってアクセス可能なファイルシステムは、'/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

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

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