1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOS8でローカルネットワークを作成し、ローカル間でsshやDB接続をするまで。

Last updated at Posted at 2021-05-28

#CentOS8で複数のサーバーをローカルネットワークで接続する

通常、nginxやApacheがインストールされたサーバーとDBなどのストレージがインストールされたサーバーは別のサーバーとして、
構築することが多いと思いますが、CentOS7までは比較的簡易に設定ができていましたが、CentOS8からちょっと敷居が上がってしまって、
ローカルネットワークの構築に手間取ってしまったので、一度メモとして残しておきます。

私は、プライベートも業務上もKagoyaを利用することが 多いので、今回はKagoyaのVPSで実行しました。

ちなみに作成にあたって使用したインスタンスは既に削除済みです。

##WEBサーバー側NIC一覧

[root@v133-18-●●●-●●● ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:a9:21:a9 brd ff:ff:ff:ff:ff:ff
    inet 133.18.202.69/23 brd 133.18.203.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.150.11.1/24 brd 10.150.11.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 2406:8c00:0:3409:133:18:202:69/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fea9:21a9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:31:b3:50 brd ff:ff:ff:ff:ff:ff

作成したWEBサーバー用インスタンスのNIC情報は上記のようになっています。
KAGOYAのネットワーク機能で作成した追加のNICが eth1 インターフェース となります。

まず以下コマンドで、コネクションの状態を確認します。

[root@v133-18-●●●-●●● ~]# nmcli con 
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  05464f3c-c413-358b-8cd1-1b3adabd94d5  ethernet  eth1
System eth0         5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0

まず、上記の状態からコネクション名がWired connection 1となっているのをDEVICEと同じeth1と変更します。

[root@v133-18-●●●-●●● ~]# nmcli con mod "Wired connection 1" connection.id eth1
[root@v133-18-●●●-●●● ~]# nmcli con
NAME         UUID                                  TYPE      DEVICE
eth1         05464f3c-c413-358b-8cd1-1b3adabd94d5  ethernet  eth1
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
ifcfg-eth1.ini
# 前述のコマンド nmcli con mod "Wired connection 1" connection.id eth1
# によって /etc/sysconfig/network-scripts 配下に、ifcfg-eth1 というファイルが作成される。
# コマンド実行直後は、ローカルネットワークに関するIPADDRといった記述は存在しない
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=9e0b8981-5d2e-32d2-9ab6-ba6705c33f6e
DEVICE=eth1
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999

無事にコネクション名が、NICインターフェースと同じeth1と同じになりました。
次に、コネクションそのものと、デバイスを関連付ける命令を実行します。

[root@v133-18-●●●-●●● ~]# nmcli con mod "eth1" connection.interface-name eth1

上記コマンド実行後、以下のコマンドで任意のプライベートIPを設定できます。

[root@v133-18-●●●-●●● ~]# nmcli con mod eth1 \
ipv4.method manual \
ipv4.address "192.168.1.1/24" \
connection.autoconnect "yes" \
ipv6.method ignore

※バックスラッシュの後にスペースなどを入れないように

今回は、プライベートIPのセグメントを192.168.1/24で設定してますが、
ここは任意でお好みで設定して下さい。

上記コマンド実行後、以下のように設定を確認します。

[root@v133-18-●●●-●●● ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:a9:21:a9 brd ff:ff:ff:ff:ff:ff
    inet 133.18.202.69/23 brd 133.18.203.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.150.11.1/24 brd 10.150.11.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 2406:8c00:0:3409:133:18:202:69/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fea9:21a9/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:31:b3:50 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe31:b350/64 scope link
       valid_lft forever preferred_lft forever

上記のように、eth1のインターフェースに任意で指定した192.168.1.1のプライベートIPが設定されています。

ifcfg-eth1.ini
# eth1にIPアドレスを設定する コマンド
# nmcli con mod eth1 \
# ipv4.method manual \
# ipv4.address "192.168.1.1/24" \
# connection.autoconnect "yes" \
# ipv6.method ignore
# によって、下記にIPADDRとPREFIXといった設定が追加される
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth1
UUID=9e0b8981-5d2e-32d2-9ab6-ba6705c33f6e
DEVICE=eth1
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
IPADDR=192.168.0.1
PREFIX=24

ここまでいったんWEBサーバ―側インスタンスの設定は完了です。次に、DBサーバー用インスタンスも同様に設定していきます。

##DBサーバー側NIC一覧

[root@v133-18-●●●-●●● ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:84:9e:a6 brd ff:ff:ff:ff:ff:ff
    inet 133.18.208.237/23 brd 133.18.209.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.150.11.1/24 brd 10.150.11.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 2406:8c00:0:3412:133:18:208:237/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe84:9ea6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:b5:ef:3b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::e722:b88f:8d4d:d80d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

WEBサーバー側で確認したコマンドと同様なものを実行すると
まだeth1にはIPが割り振られていません。

では、先程と全く同じ手順を繰り返します。

まず、

nmcli con 

上記コマンドで、コネクション状態を確認します。

[root@v133-18-●●●-●●● ~]# nmcli con
NAME                UUID                                  TYPE      DEVICE
System eth0         5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
Wired connection 1  06b39142-cc39-38cd-813d-b9bbc39409dd  ethernet  --

先程と同じようにコネクション名にWired connection 1となっています。
なぜかDEVICEの表記が異なる理由はわかりません。

とにかく、コネクション名をeth1インターフェースに紐付けます。

[root@v133-18-●●●-●●● ~]# nmcli con mod "Wired connection 1" connection.id eth1
[root@v133-18-●●●-●●● ~]# nmcli con
NAME         UUID                                  TYPE      DEVICE
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
eth1         06b39142-cc39-38cd-813d-b9bbc39409dd  ethernet  --

次に、名前を変更したコネクションと、インターフェースを関連付ける処理を行います。

[root@v133-18-●●●-●●● ~]# nmcli con mod "eth1" connection.interface-name eth1
[root@v133-18-●●●-●●● ~]# nmcli con
NAME         UUID                                  TYPE      DEVICE
eth1         06b39142-cc39-38cd-813d-b9bbc39409dd  ethernet  eth1
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0

すると先程の、Wired connection (有線接続)となっていた箇所がeth1インターフェースと関連づけれらました。
では最後に、DBサーバーインスタンス側にプライベートIPを設定します。

[root@v133-18-202-69 ~]# nmcli con mod eth1 \
ipv4.method manual \
ipv4.address "192.168.1.2/24" \
connection.autoconnect "yes" \
ipv6.method ignore

先程のWEBインスタンスは 192.168.1.1/24と設定したので、DBインスタンスは 192.168.1.2/24と設定しました。

では、もう一度 eth1のプライベートIPを確認します。

[root@v133-18-●●●-●●● ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:84:9e:a6 brd ff:ff:ff:ff:ff:ff
    inet 133.18.208.237/23 brd 133.18.209.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.150.11.1/24 brd 10.150.11.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 2406:8c00:0:3412:133:18:208:237/64 scope global noprefixroute
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe84:9ea6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:16:3e:b5:ef:3b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:feb5:ef3b/64 scope link
       valid_lft forever preferred_lft forever

eth1が指定した 192.168.1.2と設定されています。

以上でWEBサーバーとDBサーバーのローカル接続が完了したので、DBサーバーへはWEBサーバーのIP:192.168.1.1 のsshのみの接続を許可するようにKAGOYA上でセキュリティグループを設定します。

いったん、DBサーバー側の、sshd_configファイルで、rootユーザーでパスワード認証を許可します。

##WEBサーバー側からDBサーバーへSSH接続

DB側のSSH接続設定をRootログインおよびパスワード認証を許可し、且つ
IP:192.168.1.1とport:22でのみの接続を許可しておきます。
そして、自身のローカルPCからssh接続できないことを確認しておきます。

では、先程のWEBサーバー側ターミナルから

[root@v133-18-●●●-●●● ~]# ssh root@192.168.1.2
root@192.168.1.2's password:
Last login: Thu Aug 27 15:46:09 2020 from 61.22.158.140
[root@v133-18-●●●-●●● ~]#

上記のように、DBサーバーへプライベートIPを用いて、SSH接続することができました。
後は、個別にPostgresqlなども同じセグメントのホストからの接続のみ許可といった設定をすることで、
DBサーバを外部に公開せずWEBアプリケーションからアクセスができます。

今回の参考元文献は以下となります。
https://i1.fusioncom.jp/doc/ja/help/instance_nic_linux.html
https://densan-hoshigumi.com/server/linux/network/network2

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?