裏セグメントからyumやwget等したい場合の設定

 

裏セグメントのホスト(たとえばVPCのEIPついてないのとかDBやNASなど裏においときたいやつ)
から名前解決とかメールとかyumとかwgetとか時刻同期とかメールしたい!
という場合の設定についてざっくりまとめさせていただきます。

とりあえず2パターンあります。
NATする(AWSの場合NATインスタンスを使う)パターンと、
グローバル通信できる管理サーバにソフトウェアを入れて解決するパターン。

 

★NATする(AWSの場合NATインスタンスを使う)パターン

db側はInternetGatewayつけてなくてパブリックでなくローカルなルーティングな場合、
名前解決をはじめ外に出られないです。(※)
NATインスタンスを作るのも勿体ないと、複数NICがついたwebをnat化しようとしたところ、
マルチインタフェースなインスタンスはNATの出口に出来ない模様でした。
(※)最近新しくとったアカウントはVPCオンリーになっていてそちらだとグローバルIPがどんどん勝手に振られるようです。。(EIPつけざるをえない仕様)

NATインスタンス作成方法は以下URLから
Amazon VPCトレーニング-NATインスタンスの作成方法
VPC詳細 -ほぼ週刊AWSマイスターシリーズ第7回-
Amazon VPCでNATを使ってPublic SubnetとPrivate Subnetを分ける

一番上のスライドのとおりでnatインスタンスを作成可能。
ざっくりいうと、
VPCサブネットをつくり、
“ami-vpc-nat”AMIでNATインスタンスを作成し、
NATインスタンスの”Change Source/DestCheck”をDisableにし、
NATインスタンスにEIPをアソシエートし、
PublicSubnetのRouterTableにNATインスタンスのIDを追加し、
必要に応じてNATインスタンスのSecurityGroupを設定する

そのほか、一般的なルータ化設定方法と同様に、
インスタンス作成後にiptablesでnatのルール設定が必要になる模様。

上記スライドのとおりNATインスタンスをデフォルトゲートウェイにするルーティング設定も必要
forwardingの設定も必要

ルータ化設定方法(NAT)
natテーブルを利用したLinuxルータの作成

NAT化したらクライアント側のデフォルトゲートウェイをNATサーバに指定します

新しいデフォルトゲートウェイ追加

古いデフォルトゲートウェイ削除

確認

 

★グローバル通信できる管理サーバにソフトウェアを入れて解決するパターン

とりあえず名前解決から。bindを使う場合です。

・内部DNSを構築
参考:
内部向け DNS サーバの構築

@DNSサーバ側

@DNSクライアント側

※なぜbindかというと慣れてるからです。
unboundのほうが簡単なようです。以下参考。
Unboundをインストールしてみた

これだけだと名前は解決できるがyumはできないです。
bindだけでは名前しか解決できないので、
squidとntpdをいれてnasからのyumとwgetとntpdateを行えるようにします。

・フォワードプロキシを構築しyumとwgetとcurlをする

※webサーバフロントエンドを高速化するリバースプロキシではありません。
コンテンツをキャッシュして内部からのダウンロードを高速化(または規制)するほうの使い方です。

@プロキシサーバ側

@クライアント側

※wget等のためのプロキシの指定
そのた、gitやgemやvagrantなんかはこちらに書いてありました。

リポジトリのインストールは以下を参考に
RPMforge EPEL ELRepo Remi リポジトリインストール

・時刻同期のためにntpdを立てる
@ntpサーバ側

@ntpクライアント側

クラウドの場合時刻がずれやすいと聞いたことがありますし、時刻がずれるとログの時刻やDBの時刻のカラムがずれたりなどで、
アプリケーションへの影響が深刻になる可能性があるかもしれません。忘れずに設定が必要かと思います。

 

★LAN内部からMTAサーバに転送してメールしたい場合の設定

・sendmailの場合
@MTAの設定
ローカルからのメール転送を受け付ける設定をする
sendmail.cfをコンパイルする為に必要なrpmの導入

設定の修正

※全方位から許可してRELAYを制限しています()

設定の更新

sendmail再起動

@メールクライアントの設定
バックアップ

設定変更

※MTAHostにメールMTAアドレスを指定
※Dj設定しない場合は/etc/hostsの127.0.0.1の行の3カラム目にlocalhostの代わりに書いたドメインがfromになります。

比較確認

最後にmailコマンドで送信確認をします

DKIMとかSPFレコードとか必要なら別途設定のこと。

・postfixの場合
@メールサーバ側の設定

※ローカルから許可(上記はVPCでないAWS環境なので/32指定しているがVPCなら/24等でOK)
※ほかの設定は適宜済んでる前提

@メールクライアントの設定

・qmailの場合
tcp.smtpにRELAY許可するように書いてハッシュDB更新します。

vpopmailも入ってるなら

DBの中身を確認する

※クライアント側はsendmailかpostfixの場合を確認のこと
※PATHは適宜ご確認ください

NATインスタンスないとすこし設定が複雑になりそうですね。シンプルなほうがよければNATがいいと思います。
ただ、管理サーバはあるけどIFが複数だったりNATインスタンス代がもったいない場合にアプリいれれば解決します。

おすすめ記事