pusuke0418’s diary

すごく暇なSEのぶろぐ

葛湯が白く濁った状態で, しゃびしゃびしていて, 透明のとろとろにならない時

そういうときは透明感とろとろになるまで、レンジで10秒ずつくらいチンすれば良い。

粉で売っている葛湯を作る際に、白く濁ったままで、葛湯らしい透明感のあるとろとろにならないケースがある。これは温度的なものによるもの。
例えば、葛湯をつくる際に、粉を器にあけて、150mlと書いてあるので、湯沸かし器から計量カップにお湯をうつして粉にかける・・・といった場合なりやすい。

ASAでNAT。変換後IPにインタフェースに無いIPを利用する

調べて出てくる情報は、たいていASAのインタフェースもしくはそれが含まれるサブネットへの変換が多いので、ネットワーク上でどのインタフェースにも振られていないIPを利用してNATするメモ。

本来のIPアドレスを隠蔽する目的であったり、比較的自由なNAT用IP空間の利用であったり、と、ケースとしては他の組織と接続する際などに利用される。それが作法である場合もある。

f:id:pusuke0418:20190105130936j:plain
nat2

実ホスト192.168.1.101:8080に対して、外部見立ての172.16.1.101は10.168.1.101:80を宛先としてアクセスする。R1は、10.168.1.101へ通信できる経路情報をネクストホップを10.0.2.2として持つ

以下、ASAの設定の必要部分を抜粋する。補足/蛇足だが、static natは設定すると、NATルールが双方向に有効になる。ここでは内→外(dmz,outside)で設定するが、外→内(outside,dmz)で設定することもできる。勿論その際sourceやdestinationは異なってくる。参考
https://community.cisco.com/t5/セキュリティ-ドキュメント/asa-natルールタイプ別の処理の違いと-設定例/ta-p/3158769#toc-hId--1211329983

以下設定
interface GigabitEthernet0
nameif dmz
security-level 50
ip address 192.168.1.254 255.255.255.0
!
interface GigabitEthernet1
nameif outside
security-level 0
ip address 10.0.2.2 255.255.255.252
!
object network ip-192.168.1.101
host 192.168.1.101
object network ip-10.168.1.101
host 10.168.1.101
object network ip-172.16.1.101
host 172.16.1.101
object service src-tcp-8080
service tcp source eq 8080
object service src-tcp-80
service tcp source eq www
access-list hoge extended permit tcp object ip-172.16.1.101 object ip-192.168.1.101 eq 8080
!
nat (dmz,outside) source static ip-192.168.1.101 ip-10.168.1.101 destination static ip-172.16.1.101 ip-172.16.1.101 service src-tcp-8080 src-tcp-80
access-group hoge in interface outside
route outside 0.0.0.0 0.0.0.0 10.0.2.1 1

ASAでNATしてサーバを公開する設定

掲題の設定に関するCisco ASA(いわゆる8.3以降)の情報が、なぜかあまりまとまったものが無かったので、メモ。
テストに利用する構成は下記で、要点は192.168.1.101のWebサーバを、10.0.0.2で外からアクセスできるようにするというもの。ここでは172.16.1.101のホストからアクセス可能なようにする。それ以外の通信はここでは考えていない

むりやり読み替えると、現実のインターネットには無いが、このテスト環境は10.0.0.0/24のグローバルアドレス空間を持っているということもできる。

f:id:pusuke0418:20181212104136p:plain
topology

ASAの設定をしていく。

まずインタフェースとデフォルトルートを設定。

interface GigabitEthernet0
nameif outside
security-level 0
ip address 10.0.0.1 255.255.255.0
!
interface GigabitEthernet1
nameif dmz
security-level 50
ip address 192.168.1.254 255.255.255.0
!
route outside 0.0.0.0 0.0.0.0 10.0.0.254 1

ASAでnameifコマンドは必須。outsideやdmzといった名前は勝手にデフォルトでセキュリティレベルが設定される。ここでは、dmzを50として、outsideよりセキュア?信頼できる?(設定数値が小さい)状態としている。

ciscoasa(config-if)# nameif outside
INFO: Security level for "outside" set to 0 by default.

ciscoasa(config-if)# nameif dmz
INFO: Security level for "dmz" set to 0 by default.

オブジェクトを設定する。ASAに限らずFWは、オブジェクトやオブジェクトグループで設定する考え方したほうが良い。

object network ip-192.168.1.101
host 192.168.1.101
object network ip-10.0.0.2
host 10.0.0.2
object service src-http
service tcp source eq 80

そして、NATの設定を入れる。ASA8.3以降は、Twice NAT (別名:Manual NAT)と Network Object NAT (別名:Auto NAT) という2方式の設定があって、普段Auto NATをあまり使ったことが無いのでここではManualでやっている。NATタイプなどはCiscoの資料などを参照すると良いと思います。

カッコとか文字にあるし、わりと悟りが必要なタイプの設定だと感じるが、基本[実IP][変換後IP]の順序で各項目を記載する。

nat (dmz,outside) source static ip-192.168.1.101 ip-10.0.0.2 service src-http src-http

ここでとても大切なことがあって、このNATの設定を入れると、ASAは10.0.0.2のARPに応答する。外部から見て10.0.0.2の着信がASAの10.0.0.1のインタフェースに対して可能となる。

隣接ルータから見たarpテーブル。

R1#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.0.0.2 4 0000.ab12.1212 ARPA FastEthernet0/0
Internet 10.0.0.1 0 0000.ab12.1212 ARPA FastEthernet0/0

この段階ではまだアクセスはできない。外側のセキュリティの低いインタフェース側の着信方向に、実IPへの許可ACLを設定する必要がある。

access-list hoge extended permit tcp host 172.16.1.101 host 192.168.1.101 eq 80
access-group hoge in interface outside

以上。