CentOS IPアドレス固定設定:サーバー構築に必須の手順を解説
CentOSをサーバーとして利用する際、IPアドレスを固定することは非常に重要な作業です。IPアドレスがDHCPによって動的に割り振られると、サーバーの再起動やネットワークの変更時にIPアドレスが変わってしまう可能性があります。これは、Webサイト、メールサーバー、データベースサーバーなど、他のシステムからアクセスされるサーバーにとっては致命的な問題となります。
この記事では、CentOSにおけるIPアドレス固定設定の方法を網羅的に解説します。設定ファイルの詳細な解説から、コマンドラインでの設定、ネットワークマネージャーGUIでの設定、そして設定後の確認とトラブルシューティングまで、初心者でも分かりやすく、そして経験者にとっても役立つ情報を提供します。
目次
-
IPアドレス固定設定の重要性:
- サーバー運用におけるIPアドレスの役割
- DHCPと固定IPアドレスの違い
- IPアドレス固定設定のメリット・デメリット
-
IPアドレス固定設定に必要な情報:
- IPアドレス
- サブネットマスク
- ゲートウェイ
- DNSサーバー
-
ネットワーク設定ファイルの理解:
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
(またはifcfg-enp0s3
など)resolv.conf
-
コマンドラインでのIPアドレス固定設定:
- ネットワークインターフェースの設定
- ネットワークサービスの再起動
- DNSサーバーの設定
-
NetworkManager GUIでのIPアドレス固定設定:
- GUIでの設定方法
- 設定の確認
-
設定後の確認とトラブルシューティング:
ping
コマンドによる疎通確認ifconfig
コマンドによるIPアドレス確認- 設定ミスによるトラブルシューティング
- ネットワーク接続の確認
-
複数のネットワークインターフェースを持つサーバーの設定:
- 複数のインターフェースの設定方法
- ルーティングテーブルの確認
-
CentOS 8/9 でのIPアドレス固定設定 (nmcliコマンド):
- nmcliコマンドの概要
- nmcliコマンドでのIPアドレス設定
-
仮想環境でのIPアドレス固定設定:
- VirtualBox, VMware, Hyper-Vなど
- ブリッジ接続とNAT接続の違い
- 仮想環境特有の設定
-
セキュリティに関する注意点:
- ファイアウォールの設定
- 不正アクセス対策
1. IPアドレス固定設定の重要性
サーバー運用におけるIPアドレスの役割
IPアドレス(Internet Protocol Address)は、ネットワーク上でデバイスを識別するための固有のアドレスです。サーバーは、Webサイト、メール、ファイル共有など、様々なサービスを提供するためにネットワークに接続されます。これらのサービスにアクセスするクライアントは、サーバーのIPアドレスを知っている必要があります。IPアドレスは、サーバーの「住所」のようなものであり、クライアントがサーバーにデータを送るための宛先となります。
DHCPと固定IPアドレスの違い
-
DHCP (Dynamic Host Configuration Protocol): DHCPは、ネットワーク上のデバイスにIPアドレスを自動的に割り当てるプロトコルです。DHCPサーバーは、ネットワークに接続されたデバイスに対して、一定期間IPアドレスをリースします。デバイスがネットワークから切断されたり、リース期間が終了すると、IPアドレスは解放され、別のデバイスに割り当てられる可能性があります。
-
固定IPアドレス (Static IP Address): 固定IPアドレスは、ネットワーク管理者によって手動で設定されるIPアドレスです。一度設定されると、IPアドレスは変わることがありません。
IPアドレス固定設定のメリット・デメリット
メリット:
- 安定性: IPアドレスが固定されているため、サーバーの再起動やネットワークの変更時に設定を変更する必要がありません。
- アクセス容易性: 他のシステムやユーザーは、常に同じIPアドレスでサーバーにアクセスできます。
- DNS設定: ドメイン名をIPアドレスに関連付ける際に、固定IPアドレスが必須となります。
- セキュリティ: 特定のIPアドレスからのアクセスのみを許可するなど、セキュリティ設定が容易になります。
デメリット:
- 設定の複雑さ: IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーなどの情報を手動で設定する必要があります。
- IPアドレスの競合: ネットワーク内で同じIPアドレスが複数のデバイスに割り当てられると、通信に問題が発生する可能性があります。
- 管理の負担: ネットワーク規模が大きくなると、IPアドレスの管理が煩雑になることがあります。
2. IPアドレス固定設定に必要な情報
IPアドレスを固定設定するには、以下の情報が必要です。これらの情報は、ネットワーク管理者から提供されるか、ネットワークの設定情報から確認できます。
- IPアドレス: サーバーに割り当てる固有のIPアドレスです。
- サブネットマスク: ネットワークの規模を定義するために使用されます。通常は255.255.255.0などの形式で表現されます。
- ゲートウェイ: サーバーが外部ネットワーク(インターネットなど)と通信するために使用するルーターのIPアドレスです。
- DNSサーバー: ドメイン名をIPアドレスに変換するために使用されるサーバーのIPアドレスです。複数のDNSサーバーを設定することも可能です。
3. ネットワーク設定ファイルの理解
CentOSでは、ネットワーク設定は主に以下のファイルに保存されています。
-
/etc/sysconfig/network
: ネットワーク全体の基本設定を定義します。ホスト名やゲートウェイなどの情報を設定できます。 -
/etc/sysconfig/network-scripts/ifcfg-eth0
(またはifcfg-enp0s3
など): 各ネットワークインターフェース(eth0, enp0s3など)の設定を定義します。IPアドレス、サブネットマスク、起動時の有効化などの情報を設定できます。インターフェース名は、ip addr
コマンドで確認できます。 -
resolv.conf
: DNSサーバーのIPアドレスを定義します。
各ファイルの詳細:
/etc/sysconfig/network
:
NETWORKING=yes
HOSTNAME=your_hostname
GATEWAY=your_gateway_ip
NETWORKING
: ネットワークを有効にするかどうかを指定します。yes
に設定されている必要があります。HOSTNAME
: サーバーのホスト名を指定します。-
GATEWAY
: デフォルトゲートウェイのIPアドレスを指定します。 -
/etc/sysconfig/network-scripts/ifcfg-eth0
(例):
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=your_ip_address
NETMASK=your_subnet_mask
GATEWAY=your_gateway_ip
DNS1=your_dns_server_ip
DNS2=your_secondary_dns_server_ip
TYPE
: ネットワークインターフェースの種類を指定します。通常はEthernet
です。PROXY_METHOD
: プロキシの設定方法を指定します。通常はnone
です。BROWSER_ONLY
: ブラウザのみで使用するかどうかを指定します。通常はno
です。BOOTPROTO
: IPアドレスの取得方法を指定します。static
に設定すると、固定IPアドレスを使用します。DHCPを使用する場合はdhcp
に設定します。DEFROUTE
: デフォルトルートとして使用するかどうかを指定します。通常はyes
です。IPV4_FAILURE_FATAL
: IPv4の設定に失敗した場合に処理を停止するかどうかを指定します。通常はno
です。IPV6INIT
: IPv6を有効にするかどうかを指定します。no
に設定すると、IPv6が無効になります。NAME
: インターフェースの名前を指定します。DEVICE
: デバイス名を指定します。ONBOOT
: システム起動時にインターフェースを有効にするかどうかを指定します。yes
に設定されている必要があります。IPADDR
: サーバーに割り当てるIPアドレスを指定します。NETMASK
: サブネットマスクを指定します。GATEWAY
: デフォルトゲートウェイのIPアドレスを指定します。DNS1
: プライマリDNSサーバーのIPアドレスを指定します。-
DNS2
: セカンダリDNSサーバーのIPアドレスを指定します (オプション)。 -
resolv.conf
:
nameserver your_dns_server_ip
nameserver your_secondary_dns_server_ip (オプション)
nameserver
: DNSサーバーのIPアドレスを指定します。複数のDNSサーバーを設定する場合は、複数行で記述します。
4. コマンドラインでのIPアドレス固定設定
コマンドラインでIPアドレスを固定するには、以下の手順を実行します。
- ネットワークインターフェースの設定:
まず、ネットワークインターフェースの設定ファイルを編集します。ifcfg-eth0
(または ifcfg-enp0s3
など) ファイルをテキストエディタで開き、上記で説明した設定値を適切に変更します。
bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
設定ファイルを編集したら、保存して閉じます。
- ネットワークサービスの再起動:
設定を反映させるために、ネットワークサービスを再起動します。
bash
sudo systemctl restart network
または、
bash
sudo service network restart
場合によっては、ネットワークマネージャーも再起動する必要があるかもしれません。
bash
sudo systemctl restart NetworkManager
- DNSサーバーの設定:
resolv.conf
ファイルを編集して、DNSサーバーのIPアドレスを設定します。
bash
sudo vi /etc/resolv.conf
例:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存して閉じます。
5. NetworkManager GUIでのIPアドレス固定設定
CentOSには、NetworkManagerというGUIツールを使用してネットワーク設定を管理することもできます。
-
GUIでの設定方法:
-
画面右上のネットワークアイコンをクリックし、ネットワーク設定を開きます。
- 設定したいネットワークインターフェースを選択し、設定アイコンをクリックします。
- 「IPv4 Settings」タブを選択します。
- 「Method」を「Manual」に変更します。
- IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーの情報を入力します。
-
「Apply」をクリックして設定を保存します。
-
設定の確認:
設定が正しく適用されたかを確認するには、GUIで設定を確認するか、ターミナルで ifconfig
コマンドを実行します。
6. 設定後の確認とトラブルシューティング
IPアドレスを固定設定した後、設定が正しく機能していることを確認する必要があります。
ping
コマンドによる疎通確認:
ping
コマンドを使用して、ゲートウェイやDNSサーバーとの疎通を確認します。
bash
ping your_gateway_ip
ping your_dns_server_ip
ping google.com
ping
コマンドが成功すれば、ネットワーク接続が正常であることを意味します。
ifconfig
コマンドによるIPアドレス確認:
ifconfig
コマンドを使用して、ネットワークインターフェースに割り当てられたIPアドレスを確認します。
bash
ifconfig eth0
ifconfig
コマンドの出力に、設定したIPアドレス、サブネットマスクが表示されていることを確認します。
- 設定ミスによるトラブルシューティング:
設定ミスによってネットワークに接続できなくなった場合は、以下の点を確認してください。
- IPアドレスがネットワーク内で重複していないか。
- サブネットマスクが正しいか。
- ゲートウェイのIPアドレスが正しいか。
- DNSサーバーのIPアドレスが正しいか。
- ネットワークインターフェースが有効になっているか。
設定ファイルの内容を再度確認し、修正してください。修正後、ネットワークサービスを再起動することを忘れないでください。
-
ネットワーク接続の確認:
Webブラウザを開いて、Webサイトにアクセスできるかどうかを確認します。
7. 複数のネットワークインターフェースを持つサーバーの設定
複数のネットワークインターフェースを持つサーバーを設定する場合は、各インターフェースに対して個別にIPアドレスを設定する必要があります。各インターフェースの設定ファイル (ifcfg-eth0
, ifcfg-eth1
など) を編集し、それぞれ異なるIPアドレスとサブネットマスクを設定します。
ルーティングテーブルを確認し、適切なルーティングが設定されていることを確認することも重要です。route -n
コマンドでルーティングテーブルを表示できます。
8. CentOS 8/9 でのIPアドレス固定設定 (nmcliコマンド)
CentOS 8/9では、nmcli
コマンドを使用してネットワーク設定を管理することが推奨されています。
- nmcliコマンドの概要:
nmcli
(NetworkManager Command Line Interface) は、NetworkManagerを操作するためのコマンドラインツールです。GUIよりも強力で柔軟性があり、スクリプトでの自動化にも適しています。
- nmcliコマンドでのIPアドレス設定:
以下の手順で、nmcli
コマンドを使用してIPアドレスを固定設定できます。
-
接続名 (connection name) を確認:
まず、設定したいネットワークインターフェースの接続名を確認します。
bash
nmcli connection show出力される接続名 (NAME) をメモしておきます。
-
IPアドレス、ゲートウェイ、DNSサーバーを設定:
以下のコマンドを、実際の値に置き換えて実行します。
bash
nmcli connection modify "接続名" ipv4.method manual ipv4.addresses "IPアドレス/プレフィックス長" ipv4.gateway "ゲートウェイIPアドレス" ipv4.dns "DNSサーバーIPアドレス" connection.autoconnect yes例:
bash
nmcli connection modify enp0s3 ipv4.method manual ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8" connection.autoconnect yes"接続名"
: 手順1で確認した接続名。"IPアドレス/プレフィックス長"
: IPアドレスとサブネットマスクをCIDR表記で指定します (例: 192.168.1.10/24)。"ゲートウェイIPアドレス"
: ゲートウェイのIPアドレス。"DNSサーバーIPアドレス"
: DNSサーバーのIPアドレス。connection.autoconnect yes
: 起動時に自動的に接続するように設定します。
-
接続を再起動:
設定を反映させるために、接続を再起動します。
bash
nmcli connection down "接続名"
nmcli connection up "接続名" -
設定の確認:
設定が正しく適用されたかを確認するには、以下のコマンドを実行します。
bash
nmcli connection show "接続名" | grep ipv4設定したIPアドレス、ゲートウェイ、DNSサーバーの情報が表示されていることを確認します。
9. 仮想環境でのIPアドレス固定設定
仮想環境 (VirtualBox, VMware, Hyper-Vなど) でCentOSを動作させる場合、ネットワーク設定は仮想環境の設定にも依存します。
-
ブリッジ接続とNAT接続の違い:
-
ブリッジ接続: 仮想マシンは、ホストマシンと同じネットワークに直接接続されます。ホストマシンと仮想マシンは、同じネットワークセグメントに属し、同じルーターを共有します。この場合、仮想マシンにはホストマシンとは異なるIPアドレスを割り当てる必要があります。
-
NAT (Network Address Translation) 接続: 仮想マシンは、ホストマシンのIPアドレスを共有してインターネットにアクセスします。ホストマシンがルーターの役割を果たし、仮想マシンのトラフィックをNAT変換します。この場合、仮想マシンにはホストマシンとは異なるプライベートIPアドレスが割り当てられます。
-
仮想環境特有の設定:
-
VirtualBox: 「ネットワーク」設定で「割り当て」を「ブリッジアダプター」または「NAT」に設定します。ブリッジアダプターの場合は、使用する物理インターフェースを選択します。
- VMware: 「ネットワークアダプター」設定で「ネットワーク接続」を「ブリッジ」または「NAT」に設定します。
- Hyper-V: 「仮想スイッチマネージャー」で「外部」、「内部」、「プライベート」のいずれかの仮想スイッチを作成します。外部仮想スイッチはブリッジ接続、内部仮想スイッチはホストマシンとのみ通信、プライベート仮想スイッチは仮想マシン間でのみ通信します。
仮想環境でIPアドレスを固定設定する場合は、仮想環境の設定とCentOSのネットワーク設定の両方を整合させる必要があります。
10. セキュリティに関する注意点
IPアドレスを固定設定する際には、セキュリティにも注意する必要があります。
- ファイアウォールの設定:
ファイアウォールを設定して、不要なポートへのアクセスを制限します。CentOSでは、firewalld
がデフォルトで有効になっている場合があります。
bash
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # HTTP
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent # HTTPS
sudo firewall-cmd --reload
上記は、HTTP(80番ポート)とHTTPS(443番ポート)へのアクセスを許可する例です。必要なポートのみを許可するように設定してください。
- 不正アクセス対策:
不正アクセスを防ぐために、以下の対策を講じます。
- 強力なパスワードを使用する。
- 定期的にパスワードを変更する。
- 不要なサービスを停止する。
- セキュリティアップデートを適用する。
- SSHのポート番号を変更する (デフォルトの22番ポートから変更)。
- Fail2banなどの侵入検知システムを導入する。
まとめ
CentOSにおけるIPアドレス固定設定は、サーバーの安定運用に不可欠な作業です。この記事では、その設定方法を網羅的に解説しました。コマンドライン、GUI、nmcli
コマンドなど、様々な方法でIPアドレスを固定できます。
設定後は、必ず疎通確認を行い、問題が発生した場合はトラブルシューティングの手順に従って原因を特定し、修正してください。
また、セキュリティ対策も忘れずに行い、安全なサーバー環境を構築しましょう。