ox0xo infosec tutorial

スタティックルーティング

2018-08-21

スタティックルーティング

ホストを区別する

ホストやルーターの台数が多くなると作業が複雑になります。 目的の機器にログインしている事を把握できるようにユニークなホスト名を付けましょう。 以下のコマンドで設定したホスト名はSSHでログインし直すと反映されます。

ホスト名を設定する

# hostnamectl set-hostname <HOSTNAME>

ルーティング確認コマンド

宛先への経路を表示する

# traceroute 172.16.0.1

ルーティングの主なコマンド

パケット転送を許可する(ルーターには必ず必要な設定)

# sysctl -w net.ipv4.ip_forward=1

設定を永続化する

# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# sysctl -p
ルーティングテーブルを確認する

# ip route
デフォルトゲートウェイを設定する/削除する
※nmcliを使うと設定を永続化できる

追加(永続化)
# nmcli connection modify enp0s8 ipv4.gateway 172.16.0.1
# nmcli connection down enp0s8
# nmcli connection up enp0s8

削除(永続化)
# nmcli connection modify enp0s3 ipv4.gateway ""
# nmcli connection down enp0s3
# nmcli connection up enp0s3

追加(再起動すると消える)
# ip route add default via 172.16.0.1 dev enp0s3

削除(永続化された設定をこれで消しても再起動後に復活する)
# ip route del default via 172.16.0.1 dev enp0s3

スタティックルートを設定する/削除する

# 追加(永続化)
# 192.168.0.0宛ての通信はすべてenp0s8に接続された192.168.10.1へ送信する
nmcli connection modify enp0s8 ipv4.routes "192.168.0.0/24 192.168.10.1"
nmcli connection down enp0s8
nmcli connection up enp0s8

# 削除(永続化)
nmcli connection modify enp0s8 ipv4.routes ""
nmcli connection down enp0s8
nmcli connection up enp0s8

# 追加(再起動すると消える)
# 192.168.0.0宛ての通信はすべてenp0s8に接続された192.168.10.1へ送信する
ip route add 192.168.0.0/24 via 192.168.10.1 dev enp0s8

# 削除(永続化された設定をこれで消しても再起動後に復活する)
ip route del 192.168.0.0/24 via 192.168.10.1 dev enp0s8

DHCPでデフォルトゲートウェイを配布する

# cat /etc/dhcp/dhcpd.conf

subnet 172.16.0.0 netmask 255.255.255.0 {
        range  172.16.0.20 172.16.0.30;
        option routers 172.16.0.1;     <----これ
        option domain-name-servers 172.16.0.100;
}

Firewallの主なコマンド

ゾーン一覧表示

# firewall-cmd --get-zones
ゾーン詳細確認

# firewall-cmd --list-all --zone=public --permanent
任意ポートに対する通信を許可する/禁止する

# firewall-cmd --add-port=80/tcp --zone=public --permanent

# firewall-cmd --remove-port=80/tcp --zone=public --permanent
任意IPアドレスからの通信を許可する/禁止する

# firewall-cmd --add-source=172.16.0.0/24 --zone=public --permanent

# firewall-cmd --remove-source=172.16.0.0/24 --zone=public --permanent
ポートフォワードを設定する/削除する
22/TCPに対する通信を172.16.0.1:1234へ転送する場合

# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=1234:toaddr=172.16.0.1 --zone=public --permanent

# firewall-cmd --remove-forward-port=port=22:proto=tcp:toport=1234:toaddr=172.16.0.1 --zone=public --permanent
IPマスカレードを有効化する/無効化する

# firewall-cmd --add-masquerade --zone=public --permanent

# firewall-cmd --remove-masquerade --zone=public --permanent

スタティックルーティングの例

以下の例ではネットワークがループしていて経路が2方向に分かれるためデフォルトGWだけでは全ての通信は成立しない。 node-1から172.16.1.0/24にデフォルトGWだけで到達するルートについて考察する。

  • 172.16.2.1をGWにした場合
    • 172.16.1.1にPING疎通可能
    • 172.16.1.2にPING疎通不可能
  • 172.16.3.2をGWにした場合
    • 172.16.1.1にPING疎通不可能
    • 172.16.1.2にPING疎通可能

宛先NICごとに個別にルーティングすれば問題を解決できるがルーティングテーブルのメンテナンスコストが高くなる。


Content