はじめに
この記事では
AWSのあんなことやこんなことについてまとめた記事です。
ベストプラクティスや間違いがあれば、書き直していく予定です。
今回は
NATゲートウェイの設定
サーバの設定
他、重要な用語について整理してみました。
参考図書:さわって学ぶクラウドインフラAmazon Web Services 基礎からのネットワーク&サーバー構築
NATゲートウェイとは
NetworkAddressTranslation
要はアドレスの読み替えです。
グローバルアドレスからローカルアドレスへの読み替え
AWSで例えるとパブリックIPからプライベートIPへの変換
Ciscoなどでは静的か動的かというところまで分かれるのでここでは割愛
よく、インフラエンジニアのお姉さんに
NAPTのことをNATだと注意されましたが
実際のところ、近年ではどちらでも構わないということ
ただし、参考図書にもあるように
ポート変換も含めてアドレスを変換する場合は
NAPT(IPマスカレード)と呼んだほうが正確です。
私と同じようなツッコミを受ける人には使える受け答えかもしれませんね。
ちなみにAWSではNATをする方法として
本記事で紹介しているNATゲートウェイの他にNATインスタンスというモノがあります。
お手軽に済ませたいので本稿では割愛
NATの良いところ
内部のIPアドレスを外向けに公開しないようにできること
NATされたネットワーク機器のアドレスを隠すことができること
参考図書では
DBサーバを内部ネットワークに配置するとき
DBサーバをインターネットに接続する方法の解説でNATゲートウェイを用いています。
ただし、内部のDBサーバと接続されたサーバが乗っ取られてしまうと
NATの意味がなくなってしまうので
適切なファイアウォールの設定が必要である。
また、今回ではAWSをベースにNATの説明をしているので
あまり関係ないですが、オンプレ環境の装置でNATをかけている場合は
隣接されているL3スイッチやルータのコンフィグレーションが流出しないように気を付けましょう。
ファイアウォール(FW)とは
NATのところで名前が出ましたので解説
要するに装置を攻撃者から守る防御壁
いろんなタイプが存在する防御壁
いろんな会社が生産している
ネットワークアプライアンスに必ずと言って良いほど存在する機能
Ciscoで言えば CiscoASA
Juniperで言えば SRX
パロアルトで言えば Palo Alto Networks PA シリーズ
Check Pointで言えば..なんだったか
とりあえず、いろんなところが開発してます。
AWSではセキュリティグループという考え方で
FWを構築できます。
NATとFW
アドレス変換したらFWの設定はどうなるのって思いますよね。
ここが重要なポイント
基本的にFWがブロックするのは隣接装置からの
IPアドレスまたはIPアドレスとサービスを組み合わせた接続をブロックします。
つまり、NATで変換した通信がFWから見えているのであれば
NAT後のアドレスでFWのセキュリティポリシーを設計しなければなりません。
変換前のアドレスで設計しないように気を付けましょう。
サーバの設定
NAT、FWの設定ができたらいよいよサーバの設定
サーバの設定をするときに重要なコマンド
(Amazon Linux 2 ベースで)
sudo ~
systemctl enable
systemctl start
yum install
wget [URL]
tar xzvf [tarファイル名]
chown
sudo : スーパーユーザードゥー、つまりWindowsでいうところの管理者として実行
systemctl : システムコントロール、利用するアプリケーションを動かす動かさないはこれを使う
yum : パッケージマネージャと呼ばれるモノ
wget : ウェブゲット、指定されたURLからファイルを取得する。
tar : 圧縮ファイル形式 tarを作成・解凍するコマンド
chown : チェンジオーナー、ファイルの所有者/グループを変更する
コマンド具体例
sudo amazon-linux-extras install php7.3
訳:管理者権限を用いてamazon-linux-extrasを実行し、php7.3をインストールする。
sudo yum -y install mariadb-server
訳:管理者権限を用いてMariaDBを強制的にインストールする。
sudo systemctl start mariadb
訳:管理者権限を用いてMariaDBを起動する。
sudo systemctl enable mariadb
訳:管理者権限を用いてMariaDBをサーバー立ち上げ時に自動起動するよう設定する。Windowsで言うところのスタートアップ
systemctl start 後に変更した設定を反映させる場合は
sudo systemctl restart ~
と打ってください。でないと反映されません。
※ちなみにここで結構ハマりました。
sudo yum -y install php php-mbstring
訳:管理者権限を用いてphpとphpのマルバイト文字列対応ライブラリをインストールする。
wget https://ja.wordpress.org/latest-ja.tar.gz
訳:wordpressをダウンロードする。
tar xzvf latest-ja.tar.gz
訳:latest-ja.tar.gzを解凍する。
sudo cp -r * /var/www/html/
訳:カレントディレクトリにあるフォルダとファイルを全て/var/www/html/に移動する。
sudo chown apache:apache /var/www/html/ -R
訳:カレントディレクトリにあるフォルダとファイルを全て、所有者をapacheに変更する。
まとめ
- IPアドレスを公開したくない場合はNATゲートウェイかNATインスタンスを使う。
- FWにはいろんな種類が存在するがAWSではセキュリティグループという単位でセキュリティを管理する。
- 一般的にはNATを構築した際は隣接しているFWの設定も見直さなければならない。
- システムの変更をする場合はスーパーユーザー権限を使う。