ランサムウェアについて
ランサムウェアとは
ランサムウェアは機器、ネットワーク、データセンターに感染し、ユーザーや組織が身代金を支払うまで、システムをロックさせ使用できない状態にするタイプのマルウェアです。
ランサムウェアは通常、いくつかあるパターンのうち1つを使って実行されます。
Crypto ランサムウェアは、オペレーティングシステムに感染し、機器が起動できなくなるようにします。
他にも、ドライブやファイル、ファイル名を暗号化するランサムウェアもあります。悪意のあるものにはタイマーが付いたバージョンもあり、身代金が支払われるまでファイルを削除していきます。
すべてにおいて言えるのは、ブロックした、あるいは暗号化したシステム、ファイル、データのロック解除や解放と引き換えに、身代金を支払うよう要求してくる、ということです。
出典:ランサムウェアから身を守るための10の措置
感染後、ユーザーの機器のスクリーン上に以下のようなメッセージが表示されるケースが多いということです。
WannaCry について
概要
2017年5月に世界各地で爆発的な被害を与えたワーム活動を行うランサムウェアです。*1
感染すると主要なデータファイルを暗号化し、解除するためにビットコインを支払うよう指示されます。
WannaCry 感染によるユーザ表示画面
感染経路
ランサムウェアのファイル自身は Windows 実行形式ファイルになります。メールや不正なウェブサイト経由で拡散しています。CVE-2017-0145(SMBv1の脆弱性)を利用して LAN 内、そしてインターネット上のランダムな宛先に対して広範囲に感染活動を広げます。
感染後の更なる感染活動が、大きな被害を生み出したポイントになっています。
WannaCry の被害状況(2017.6.28時点)
特徴
- ファイル共有機能の脆弱性が修正されていない Windows が対象
- ネットワークベースの攻撃、バックドア等を利用して、社内 LAN、インターネットを通じて拡散
- Tor*2を利用し、C2サーバへ接続
- 日本語を含む27の言語に対応した脅迫文
- Bitcoin で300~600米ドルを要求
- イギリスの医療機関やロシアを始め、世界中で感染被害が報告
- キルスイッチを搭載(詳細は以下のとおり)
対策
- Windows Update で MS17-010 (2017年3月公開) を適用する。
- SMBv1を無効化する。
- UTM をインターネットの出口に設置し、IPS、AntiVirus を有効にする。(インターネット側からの感染活動については、 ルータやファイアウォールで445ポートをブロックするだけで防げますが、ローカルからインターネットアクセスした際の戻りで発生する感染活動には対応できないため、推奨)
キルスイッチについて
WannaCry の活動を停止するトリガーをさします。トリガーは以下のドメインにアクセスできるかどうかです。
www[.]iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com
WannaCry は、Windows 端末に感染後、上述のドメインにアクセスし、アクセスできなければ活動を開始。アクセスできる場合には活動を停止します。WannaCry が出回った当初は未登録のドメインだったので、IPアドレスが存在せず、感染が拡大しましたが、ある研究者が上記ドメインを取得したため、一部の環境を除いて無効化されたようです。
なぜ、ウィルス製作者がこのような機能を実装したか原因は不明ですが、サンドボックス回避のためと考えられています。(サンドボックスはウイルスが要求したアドレス解決に対して(未登録のドメインであっても)必ずダミー用サーバーのIPアドレスを返すため。)
参考:ITPro
以上
プロキシ ARP について
プロキシ ARP とは
プロキシ ARP とは、ホスト(通常はルータ)が、別のマシンに宛てられた ARP 要求に応答する技法です。 ルータは自分の ID を「偽装する」ことによって、「実際の」送信先にパケットをルーティングする責任を引き受けます。 プロキシ ARP を使用することで、ルーティングやデフォルトゲートウェイの設定を必要とせずに、サブネット上のマシンがリモートサブネットに到達できるようになります。
参考:Cisco トラブルシューティングテクニカルノーツ
元々、サブネットマスクを認識しない旧式のホストのために使用されていた機能です。
プロキシ ARP の実装例
インターフェースに以下の設定を行うことで、有効化します。Cisco ではデフォルトで有効となっています。
Router(config)# interface gigabitEthernet 0/1 Router(config-if)# ip proxy-arp
プロキシ ARP の注意点
サブネットを誤っていたり、Default Gateway なしでも通信が可能となることから、「予期せぬ通信」が発生する可能性があり、(あくまで個人的な意見ですが)特に理由がない場合は無効化を推奨します。
以上
Cross-Stack Etherchannel について
StackWise 機能とは
StackWise 機能は、2台以上の Catalyst を1台の論理スイッチとして運用するクラスタ技術です。最大で9台のスイッチから構成され、そのうち1台がマスターとなり全体の管理を行います。マスター以外のスイッチはメンバーと呼ばれます。詳細については、以下を参照ください。
Cisco StackWise および StackWise Plus テクノロジー
Cross-Stack EtherChannelについて
Stack 構成のスイッチ群において、筐体跨ぎで Link Aggregation を構成する事が可能です。Cisco はこれを Cross-Stack EtherChannel と呼んでいます。注意点として、Cross-Stack EtherChannel では、PAgP をサポートしません。LACP は、IOS 12.2(25)SEC 以降ではサポートします。
IOS バージョンが不明な際等は、on 設定が無難です。
なお、Cross-Stack EtherChannel で PAgP を設定すると、以下のエラーが出力されます。
%With PAgP enabled, all ports in the Channel should belong to the same switch Command rejected (Port-channel"Number", "Interface Port"): Invalid etherchnl mode
以上
BGP 設定例
概要
BGP を使った冗長化設定例になります。
動作確認は R5 と R6 の Loopback インターフェース間の Ping 疎通により行っています。
検証環境
- CSR1000V を VMware Workstation 上に構築
- IOS は 15.4(1)S2を使用
通信フロー
正常系
故障系-1
故障系-2
故障系-3
設定例
R1
hostname R1 ! interface GigabitEthernet1 ip address 10.1.13.1 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 10.1.12.1 255.255.255.0 negotiation auto ! interface GigabitEthernet3 ip address 172.16.15.1 255.255.255.0 negotiation auto ! router ospf 1 redistribute bgp 65001 metric 100 metric-type 1 subnets network 172.16.15.0 0.0.0.255 area 0 ! router bgp 65001 bgp log-neighbor-changes timers bgp 10 30 neighbor 10.1.12.2 remote-as 65001 neighbor 10.1.13.3 remote-as 65002 ! address-family ipv4 bgp redistribute-internal network 192.168.5.0 neighbor 10.1.12.2 activate neighbor 10.1.12.2 next-hop-self neighbor 10.1.13.3 activate neighbor 10.1.13.3 route-map LP in neighbor 10.1.13.3 route-map MED out neighbor 10.1.13.3 filter-list 1 out exit-address-family ! ip as-path access-list 1 permit ^$ ip as-path access-list 2 permit ^65002_ ! access-list 1 permit 192.168.5.0 0.0.0.255 ! route-map LP permit 10 match as-path 2 set local-preference 200 ! route-map MED permit 10 match ip address 1 set metric 110 !
R2
hostname R2 ! interface GigabitEthernet1 ip address 10.1.24.2 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 10.1.12.2 255.255.255.0 negotiation auto ! interface GigabitEthernet3 ip address 172.16.25.2 255.255.255.0 negotiation auto ! router ospf 1 network 172.16.25.0 0.0.0.255 area 0 ! router bgp 65001 bgp log-neighbor-changes timers bgp 10 30 neighbor 10.1.12.1 remote-as 65001 neighbor 10.1.24.4 remote-as 65002 ! address-family ipv4 network 192.168.5.0 neighbor 10.1.12.1 activate neighbor 10.1.12.1 next-hop-self neighbor 10.1.24.4 activate neighbor 10.1.24.4 route-map LP in neighbor 10.1.24.4 route-map MED out neighbor 10.1.24.4 filter-list 1 out distance bgp 20 100 200 exit-address-family ! ip as-path access-list 1 permit ^$ ip as-path access-list 2 permit ^65002_ ! access-list 1 permit 192.168.5.0 0.0.0.255 ! route-map LP permit 10 match as-path 2 set local-preference 150 ! route-map MED permit 10 match ip address 1 set metric 120 !
R3
hostname R3 ! interface GigabitEthernet1 ip address 10.1.13.3 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 10.1.34.3 255.255.255.0 negotiation auto ! interface GigabitEthernet3 ip address 172.16.36.3 255.255.255.0 negotiation auto ! router ospf 1 redistribute bgp 65002 metric 100 metric-type 1 subnets network 172.16.36.0 0.0.0.255 area 0 ! router bgp 65002 bgp log-neighbor-changes timers bgp 10 30 neighbor 10.1.13.1 remote-as 65001 neighbor 10.1.34.4 remote-as 65002 ! address-family ipv4 bgp redistribute-internal network 192.168.6.0 neighbor 10.1.13.1 activate neighbor 10.1.13.1 route-map LP in neighbor 10.1.13.1 route-map MED out neighbor 10.1.13.1 filter-list 1 out neighbor 10.1.34.4 activate neighbor 10.1.34.4 next-hop-self exit-address-family ! ip as-path access-list 1 permit ^$ ip as-path access-list 2 permit ^65001_ ! access-list 1 permit 192.168.6.0 0.0.0.255 ! route-map LP permit 10 match as-path 2 set local-preference 200 ! route-map MED permit 10 match ip address 1 set metric 110 !
R4
hostname R4 ! interface GigabitEthernet1 ip address 10.1.24.4 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 10.1.34.4 255.255.255.0 negotiation auto ! interface GigabitEthernet3 ip address 172.16.46.4 255.255.255.0 negotiation auto ! router ospf 1 network 172.16.46.0 0.0.0.255 area 0 ! router bgp 65002 bgp log-neighbor-changes timers bgp 10 30 neighbor 10.1.24.2 remote-as 65001 neighbor 10.1.34.3 remote-as 65002 ! address-family ipv4 network 192.168.6.0 neighbor 10.1.24.2 activate neighbor 10.1.24.2 route-map LP in neighbor 10.1.24.2 route-map MED out neighbor 10.1.24.2 filter-list 1 out neighbor 10.1.34.3 activate neighbor 10.1.34.3 next-hop-self distance bgp 20 100 200 exit-address-family ! ip as-path access-list 1 permit ^$ ip as-path access-list 2 permit ^65001_ ! access-list 1 permit 192.168.6.0 0.0.0.255 ! route-map LP permit 10 match as-path 2 set local-preference 150 ! route-map MED permit 10 match ip address 1 set metric 120 !
R5
hostname R5 ! interface Loopback1 ip address 192.168.5.5 255.255.255.0 ip ospf network point-to-point ! interface GigabitEthernet1 ip address 172.16.15.5 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 172.16.25.5 255.255.255.0 negotiation auto ! router ospf 1 network 172.16.15.0 0.0.0.255 area 0 network 172.16.25.0 0.0.0.255 area 0 network 192.168.5.0 0.0.0.255 area 0 ! ip route 192.168.6.0 255.255.255.0 172.16.25.2 200 !
R6
hostname R6 ! interface Loopback1 ip address 192.168.6.6 255.255.255.0 ip ospf network point-to-point ! interface GigabitEthernet1 ip address 172.16.36.6 255.255.255.0 negotiation auto ! interface GigabitEthernet2 ip address 172.16.46.6 255.255.255.0 negotiation auto ! router ospf 1 network 172.16.36.0 0.0.0.255 area 0 network 172.16.46.0 0.0.0.255 area 0 network 192.168.6.0 0.0.0.255 area 0 ! ip route 192.168.5.0 255.255.255.0 172.16.46.4 200168.6.0 255.255.255.0 172.16.25.2 200 !
設定のポイント
R1(R3)
- IBGP の経路情報を OSPF へ再配送
address-family ipv4 bgp redistribute-internal
共通
- 他の AS の経路情報を配送しない。
address-family ipv4 neighbor 10.1.13.3 filter-list 1 out ! ip as-path access-list 1 permit ^$
動作確認
正常系
R1(R3)は、対向へ経路情報を配信
R1#show ip bgp neighbors 10.1.13.3 advertised-routes BGP table version is 4, local router ID is 192.168.1.221 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.5.0 172.16.15.5 2 32768 i Total number of prefixes 1
R1(R3)は、対向から経路情報を受信
R1#show ip bgp neighbors 10.1.13.3 routes BGP table version is 4, local router ID is 192.168.1.221 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.6.0 10.1.13.3 110 200 0 65002 i Total number of prefixes 1
R1(R3)は、LAN 内のネットワークについて OSPF 経由の経路を使用
R1#show ip route 192.168.5.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set O 192.168.5.0/24 [110/2] via 172.16.15.5, 06:44:10, GigabitEthernet3
R1(R3)は、対向のネットワークについて BGP 経由の経路を使用
R1#show ip route 192.168.6.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set B 192.168.6.0/24 [20/110] via 10.1.13.3, 00:29:35
R2(R4)は、対向のネットワークについて R1(R3)経由の経路を使用(LocPrf により優先)
R2#show ip bgp BGP table version is 3, local router ID is 192.168.1.222 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 192.168.5.0 10.1.12.1 2 100 0 i * 192.168.6.0 10.1.24.4 120 150 0 65002 i *>i 10.1.12.1 110 200 0 65002 i
故障系-1
R1(R3)は、対向のネットワークについて R2(R4)経由の経路へ変更
R1#show ip bgp BGP table version is 8, local router ID is 192.168.1.221 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.5.0 172.16.15.5 2 32768 i *>i 192.168.6.0 10.1.12.2 120 150 0 65002 i
R2(R4)は、対向のネットワークについて R4(R2)経由の経路へ変更
R2#show ip bgp BGP table version is 4, local router ID is 192.168.1.222 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 192.168.5.0 10.1.12.1 2 100 0 i *> 192.168.6.0 10.1.24.4 120 150 0 65002 i
故障系-2
R1(R3)は、LAN 内のネットワークについて BGP 経由の経路へ変更
R1#show ip route 192.168.5.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set B 192.168.5.0/24 [200/2] via 10.1.12.2, 00:13:30
R2(R4)は、LAN 内のネットワークについて OSPF 経由の経路へ変更
R2#show ip route 192.168.5.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set O 192.168.5.0/24 [110/2] via 172.16.25.5, 00:24:05, GigabitEthernet3
故障系-3
R2(R4)は、LAN 内のネットワークについて OSPF 経由の経路へ変更
R2#show ip route 192.168.5.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set O 192.168.5.0/24 [110/2] via 172.16.25.5, 00:24:05, GigabitEthernet3
R2(R4)は、対向のネットワークについて R4(R2)経由の経路へ変更
R2#show ip route 192.168.6.0 longer-prefixes Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override Gateway of last resort is not set B 192.168.6.0/24 [20/120] via 10.1.24.4, 00:06:25
R3は、対向のネットワークについて R4 経由の経路へ変更
R3#show ip bgp BGP table version is 8, local router ID is 192.168.1.223 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *>i 192.168.5.0 10.1.34.4 120 150 0 65001 i *> 192.168.6.0 172.16.36.6 2 32768 i
R5(R6)は、対向のネットワークについて R2(R4)経由の経路へ変更
R5#show ip static route Codes: M - Manual static, A - AAA download, N - IP NAT, D - DHCP, G - GPRS, V - Crypto VPN, C - CASA, P - Channel interface processor, B - BootP, S - Service selection gateway DN - Default Network, T - Tracking object L - TL1, E - OER, I - iEdge D1 - Dot1x Vlan Network, K - MWAM Route PP - PPP default route, MR - MRIPv6, SS - SSLVPN H - IPe Host, ID - IPe Domain Broadcast U - User GPRS, TE - MPLS Traffic-eng, LI - LIIN IR - ICMP Redirect Codes in []: A - active, N - non-active, B - BFD-tracked, D - Not Tracked, P - permanent Static local RIB for default M 192.168.6.0/24 [200/0] via 172.16.25.2 [A]
以上
*1:OSPF(AD110)経由で学習した経路より IBGP 経由で学習した経路を優先するため。
ASA と VyOS で IPsec
VyOS とは
VyOS は Vyattaの無償版である Vyatta Core よりフォークされたオープンソースのネットワーク OS です。
Cisco の ASA(HA 構成)と VyOS 間で IPsec を確立する際の設定例になります。
検証環境
- VyOS1.1.7 及び、CentOS6.8 を VMware Workstation 上に構築
- VMware ESXi5.5 を VMweare Workstation 上に構築し、ESXi5.5 上に ASAv を構築*1
ASA 設定例
HA 関連の最終設定
※HA の具体的な設定方法は、こちらをご参照ください。
<...snip...> interface GigabitEthernet0/0 nameif inside security-level 100 ip address 192.168.10.1 255.255.255.0 standby 192.168.10.2 ! interface GigabitEthernet0/1 nameif outside security-level 0 ip address 10.1.2.1 255.255.255.0 standby 10.1.2.2 ! interface GigabitEthernet0/2 description LAN Failover Interface ! interface GigabitEthernet0/3 description STATE Failover Interface <...snip...> failover failover lan interface failover GigabitEthernet0/2 failover link state GigabitEthernet0/3 failover interface ip failover 172.16.1.1 255.255.255.0 standby 172.16.1.2 failover interface ip state 172.16.2.1 255.255.255.0 standby 172.16.2.2 <...snip...>
HA の確認
ciscoasa# show failover Failover On Failover unit Primary Failover LAN Interface: failover GigabitEthernet0/2 (up) Unit Poll frequency 1 seconds, holdtime 15 seconds Interface Poll frequency 5 seconds, holdtime 25 seconds Interface Policy 1 Monitored Interfaces 3 of 61 maximum Version: Ours 9.2(0)2, Mate 9.2(0)2 Last Failover at: 02:57:55 UTC Sep 19 2016 This host: Primary - Active Active time: 27 (sec) slot 0: empty Interface inside (192.168.10.1): Normal (Monitored) Interface outside (10.1.2.1): Normal (Monitored) Interface management (192.168.1.101): Normal (Monitored) Other host: Secondary - Standby Ready Active time: 12455 (sec) Interface inside (192.168.10.2): Normal (Monitored) Interface outside (10.1.2.2): Normal (Monitored) Interface management (192.168.1.102): Normal (Monitored) <...snip...>
ルートの設定
route outside 10.1.1.0 255.255.255.0 10.1.2.254 1 route outside 192.168.20.0 255.255.255.0 10.1.2.254 1
IPsec の設定
IKE ポリシーの定義及び有効化
crypto ikev1 policy 10 authentication pre-share encryption aes hash sha group 2 lifetime 86400 crypto ikev1 enable outside
Tunnel Group (LAN-to-LAN プロファイル)の作成
tunnel-group 10.1.1.2 type ipsec-l2l tunnel-group 10.1.1.2 ipsec-attributes ikev1 pre-shared-key cisco
セレクタ ACL の設定
object-group network local-network network-object 192.168.10.0 255.255.255.0 object-group network remote-network network-object 192.168.20.0 255.255.255.0 access-list asa-router-vpn extended permit ip object-group local-network object-group remote-network
NAT 除外設定
nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup
IKE トランスフォーム設定
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
Crypto MAP の設定とインターフェースへの適用
crypto map outside_map 10 match address asa-router-vpn crypto map outside_map 10 set peer 10.1.1.2 crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA crypto map outside_map interface outside
IPsec 関連の最終設定
<...snip...> object-group network local-network network-object 192.168.10.0 255.255.255.0 object-group network remote-network network-object 192.168.20.0 255.255.255.0 access-list asa-router-vpn extended permit ip object-group local-network object-group remote-network <...snip...> nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup <...snip...> crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac crypto map outside_map 10 match address asa-router-vpn crypto map outside_map 10 set pfs crypto map outside_map 10 set peer 10.1.1.2 crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA crypto map outside_map 10 set security-association lifetime seconds 28800 crypto map outside_map interface outside crypto ikev1 enable outside crypto ikev1 policy 10 authentication pre-share encryption aes hash sha group 2 lifetime 86400 <...snip...> tunnel-group 10.1.1.2 type ipsec-l2l tunnel-group 10.1.1.2 ipsec-attributes ikev1 pre-shared-key *****
IPsec の確認
ciscoasa# show crypto isakmp sa IKEv1 SAs: Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 10.1.1.2 Type : L2L Role : initiator Rekey : no State : MM_ACTIVE ciscoasa# show crypto ipsec sa interface: outside Crypto map tag: outside_map, seq num: 10, local addr: 10.1.2.1 access-list asa-router-vpn extended permit ip 192.168.10.0 255.255.255.0 192.168.20.0 255.255.255.0 local ident (addr/mask/prot/port): (192.168.10.0/255.255.255.0/0/0) remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.0/0/0) current_peer: 10.1.1.2 #pkts encaps: 21281, #pkts encrypt: 21281, #pkts digest: 21281 #pkts decaps: 21281, #pkts decrypt: 21281, #pkts verify: 21281 #pkts compressed: 0, #pkts decompressed: 0 #pkts not compressed: 21281, #pkts comp failed: 0, #pkts decomp failed: 0 #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0 #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0 #TFC rcvd: 0, #TFC sent: 0 #Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0 #send errors: 0, #recv errors: 0
packet-tracer での確認
ciscoasa# packet-tracer input inside icmp 192.168.10.100 0 8 192.168.20.100 Phase: 1 Type: ROUTE-LOOKUP Subtype: Resolve Egress Interface Result: ALLOW Config: Additional Information: in 192.168.20.0 255.255.255.0 via 10.1.2.254, outside !...上記ルーティングテーブルにより転送されている事を確認 Phase: 2 Type: UN-NAT Subtype: static Result: ALLOW Config: nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup Additional Information: NAT divert to egress interface outside Untranslate 192.168.20.100/0 to 192.168.20.100/0 !...上記 NAT 設定により、暗号化対象のフローは NAT 対象外となっている事を確認 Phase: 3 Type: NAT Subtype: Result: ALLOW Config: nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup Additional Information: Static translate 192.168.10.100/0 to 192.168.10.100/0 <...snip...> Phase: 8 Type: VPN Subtype: encrypt Result: ALLOW Config: Additional Information: !...VPN により暗号化され、通信が許可されている事を確認 <...snip...> Result: input-interface: inside input-status: up input-line-status: up output-interface: outside output-status: up output-line-status: up Action: allow !...最終的に該当通信を許可している事を確認
VyOS 設定例
IKE ポリシーの設定
set vpn ipsec ike-group IKE-1W lifetime 86400 set vpn ipsec ike-group IKE-1W proposal 1 dh-group 2 set vpn ipsec ike-group IKE-1W proposal 1 encryption aes128 set vpn ipsec ike-group IKE-1W proposal 1 hash sha1
Phase2ポリシーの設定
set vpn ipsec esp-group ESP-1W lifetime 28800 set vpn ipsec esp-group ESP-1W mode tunnel set vpn ipsec esp-group ESP-1W pfs dh-group2 set vpn ipsec esp-group ESP-1W proposal 1 encryption aes128 set vpn ipsec esp-group ESP-1W proposal 1 hash sha1
インターフェースでの IPsec 有効化
set vpn ipsec ipsec-interfaces interface eth2
NAT-T 有効化
set vpn ipsec nat-traversal enable
IPsec ピアの設定
set vpn ipsec site-to-site peer 10.1.2.1 authentication mode pre-shared-secret set vpn ipsec site-to-site peer 10.1.2.1 authentication pre-shared-secret cisco set vpn ipsec site-to-site peer 10.1.2.1 default-esp-group ESP-1W set vpn ipsec site-to-site peer 10.1.2.1 ike-group IKE-1W set vpn ipsec site-to-site peer 10.1.2.1 local-address 10.1.1.2 set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 esp-group ESP-1W set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 local prefix 192.168.20.0/24 set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 remote prefix 192.168.10.0/24
設定の有効化と保存
commit save
IPsec 関連の最終設定
show | commands | grep vpn set vpn ipsec esp-group ESP-1W lifetime '28800' set vpn ipsec esp-group ESP-1W mode 'tunnel' set vpn ipsec esp-group ESP-1W pfs 'dh-group2' set vpn ipsec esp-group ESP-1W proposal 1 encryption 'aes128' set vpn ipsec esp-group ESP-1W proposal 1 hash 'sha1' set vpn ipsec ike-group IKE-1W lifetime '86400' set vpn ipsec ike-group IKE-1W proposal 1 dh-group '2' set vpn ipsec ike-group IKE-1W proposal 1 encryption 'aes128' set vpn ipsec ike-group IKE-1W proposal 1 hash 'sha1' set vpn ipsec ipsec-interfaces interface 'eth2' set vpn ipsec nat-traversal 'enable' set vpn ipsec site-to-site peer 10.1.2.1 authentication mode 'pre-shared-secret' set vpn ipsec site-to-site peer 10.1.2.1 authentication pre-shared-secret 'cisco' set vpn ipsec site-to-site peer 10.1.2.1 default-esp-group 'ESP-1W' set vpn ipsec site-to-site peer 10.1.2.1 ike-group 'IKE-1W' set vpn ipsec site-to-site peer 10.1.2.1 local-address '10.1.1.2' set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 esp-group 'ESP-1W' set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 local prefix '192.168.20.0/24' set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 remote prefix '192.168.10.0/24'
IPsec の確認
vyos@vyos02# run show vpn ike sa Peer ID / IP Local ID / IP ------------ ------------- 10.1.2.1 10.1.1.2 State Encrypt Hash D-H Grp NAT-T A-Time L-Time ----- ------- ---- ------- ----- ------ ------ up aes128 sha1 2 no 11316 86400 vyos@vyos02# run show vpn ipsec sa Peer ID / IP Local ID / IP ------------ ------------- 10.1.2.1 10.1.1.2 Tunnel State Bytes Out/In Encrypt Hash NAT-T A-Time L-Time Proto ------ ----- ------------- ------- ---- ----- ------ ------ ----- 1 up 1.7M/1.7M aes128 sha1 no 11319 28800 all
冗長試験
正常時
①ASA のフェイルオーバ状況を確認する。*2
ciscoasa# failover exec active show fail Failover On Failover unit Primary Failover LAN Interface: failover GigabitEthernet0/2 (up) Unit Poll frequency 1 seconds, holdtime 15 seconds Interface Poll frequency 5 seconds, holdtime 25 seconds Interface Policy 1 Monitored Interfaces 3 of 61 maximum Version: Ours 9.2(0)2, Mate 9.2(0)2 Last Failover at: 02:57:55 UTC Sep 19 2016 This host: Primary - Active <--- プライマリ(ASA01)が Active Active time: 12055 (sec) slot 0: empty Interface inside (192.168.10.1): Normal (Monitored) Interface outside (10.1.2.1): Normal (Monitored) Interface management (192.168.1.101): Normal (Monitored) Other host: Secondary - Standby Ready <--- セカンダリ(ASA02)が Standby Active time: 12455 (sec) Interface inside (192.168.10.2): Normal (Monitored) Interface outside (10.1.2.2): Normal (Monitored) Interface management (192.168.1.102): Normal (Monitored)
②CentOS01 から CentOS02 へ Ping を実行し、通信状況を確認する。
CentOS01の Ping 状況
# ping 192.168.20.100 -c 2 PING 192.168.20.100 (192.168.20.100) 56(84) bytes of data. 64 bytes from 192.168.20.100: icmp_seq=1 ttl=63 time=1.39 ms 64 bytes from 192.168.20.100: icmp_seq=2 ttl=63 time=1.45 ms <...snip...>
ASA でパケットキャプチャ
ciscoasa# capture capout interface outside match esp any any ciscoasa# show capture capout <...snip...> 1: 06:12:28.294433 10.1.2.1 > 10.1.1.2: ip-proto-50, length 132 2: 06:12:28.295227 10.1.1.2 > 10.1.2.1: ip-proto-50, length 132 <...snip...> ciscoasa# no capture capout interface outside match esp any any
故障時*3
①ASA のフェイルオーバ状況を確認する。*4
ciscoasa# failover exec active show fail Failover On Failover unit Secondary Failover LAN Interface: failover GigabitEthernet0/2 (up) Unit Poll frequency 1 seconds, holdtime 15 seconds Interface Poll frequency 5 seconds, holdtime 25 seconds Interface Policy 1 Monitored Interfaces 3 of 61 maximum Version: Ours 9.2(0)2, Mate 9.2(0)2 Last Failover at: 06:27:56 UTC Sep 19 2016 This host: Secondary - Active <--- セカンダリ(ASA02)が Active へ遷移 Active time: 40 (sec) slot 0: empty Interface inside (192.168.10.1): Normal (Monitored) Interface outside (10.1.2.1): Normal (Waiting) Interface management (192.168.1.101): Normal (Monitored) Other host: Primary - Failed <--- プライマリ(ASA01)が Failed へ遷移 Active time: 12567 (sec) Interface inside (192.168.10.2): Normal (Monitored) Interface outside (10.1.2.2): No Link (Waiting) Interface management (192.168.1.102): Normal (Monitored)
②CentOS01 から CentOS02 へ Ping を実行し、通信状況を確認する。
CentOS01の Ping 状況
# ping 192.168.20.100 -c 2 PING 192.168.20.100 (192.168.20.100) 56(84) bytes of data. 64 bytes from 192.168.20.100: icmp_seq=1 ttl=63 time=2.61 ms 64 bytes from 192.168.20.100: icmp_seq=2 ttl=63 time=12.6 ms <...snip...>
ASA でパケットキャプチャ
ciscoasa# capture capout interface outside match esp any any ciscoasa# show capture capout <...snip...> 1: 06:32:43.445243 10.1.2.1 > 10.1.1.2: ip-proto-50, length 132 2: 06:32:43.446067 10.1.1.2 > 10.1.2.1: ip-proto-50, length 132 <...snip...> ciscoasa# no capture capout interface outside match esp any any
参考:
Configure a Site-to-Site IPSec IKEv1 Tunnel Between an ASA and a Cisco IOS Router
IPSec Tunnel from ASA55xx to VyOS (or Vyatta)
packet-tracerを用いたトラブルシューティング
以上
CentOS6.8への VMware tools インストール
事前に Perl をインストールしておきます。
[root@hostname ~]# yum install perl
対象の仮想マシンを選択し、"VMware Tools のインストール"を実行します。
任意のディレクトリにマウントします。本例では tmp にマウントします。
[root@hostname ~]# mount /dev/cdrom /tmp/
マウントしたファイルを、任意のディレクトリにコピーします。
本例では、vmware という名前のディレクトリを作成し、tmp にマウントされたファイルをコピーします。
[root@hostname ~]# mkdir ./vmware [root@hostname ~]# cd ./vmware/ [root@hostname ~]# cp -p /tmp/VMwareTools-10.0.6-3595377.tar.gz .
コピーしたファイルを展開します。
[root@hostname ~]# tar zxvf ./VMwareTools-10.0.6-3595377.tar.gz
展開後、vmware-install.pl を実行します。*1
[root@hostname ~]# cd ./vmware-tools-distrib/ [root@hostname ~]# ./vmware-install.pl
対話形式はすべて Enter で問題ありません。
以下のエラーが出力され、インストールに失敗する場合があります。
Creating a new initrd boot image for the kernel. vmware-tools-thinprint start/running initctl: Job failed to start Unable to start services for VMware Tools Execution aborted.
その際は、"fuse-libs"をインストール後、再度"vmware-install.pl"を実行してみてください。
[root@hostname ~]# yum -y install fuse-libs [root@hostname ~]# ./vmware-install.pl
以上
*1:Perl を事前にインストールしておく必要があります。
NetApp クォータ設定について
クォータとは
ボリューム内のリソース使用量を追跡し、使用量を制限する機能です。
例えば、ボリュームを CIFS 共有している場合、ボリューム内のディスク使用量や、ファイル数をユーザー単位で制限することが可能です。
クォータの設定
以下の前提条件で、ディスク使用量を制限する設定例になります。
- NetApp(cDOT)を AD ドメイン環境(example.com)に参加させます。
- ボリューム(vol1)で CIFS を有効にし、「移動ユーザープロファイル領域」として使用します。
- ボリューム(vol2)で CIFS を有効にし、「フォルダリダイレクト領域」として使用します。
- AD ドメイン上の user01及び、user02の上記ディスク使用量を300MBに制限します。
クォータポリシー(quota1)を作成します。
volume quota policy create -vserver svm1 -policy-name quota1
作成したクォータポリシーを SVM(svm1)に割り当てます。
vserver modify -vserver svm1 -quota-policy quota1
vol1とvol2にアクセス可能な全ユーザーを対象に「300MB」のディスク使用量制限を適用します。
volume quota policy rule create -vserver svm1 -policy-name quota1 -volume vol1 -type user -target "" -disk-limit 300MB -qtree "" volume quota policy rule create -vserver svm1 -policy-name quota1 -volume vol2 -type user -target "" -disk-limit 300MB -qtree ""
ボリュームのクォータを有効化します。
volume quota on -vserver svm1 -volume vol1 -foreground volume quota on -vserver svm1 -volume vol2 -foreground
クォータレポートを表示します。
ボリュームに AD ドメイン上のユーザーでアクセスすると、各ユーザーの使用状況が表示されます。
なお、ユーザーは「Domain Users」に所属している必要があり、「Domein Admins」や「Administratros」に所属していると、クォータ制限が効かないため注意です。
volume quota report Vserver: svm1 ----Disk---- ----Files----- Quota Volume Tree Type ID Used Limit Used Limit Specifier ------- -------- ------ ------- ----- ----- ------ ------ --------- vol1 user * 0B 300MB 0 - * vol1 user BUILTIN\Administrators 194.1MB - 173 - vol1 user EXAMPLE\user01 223.8MB 300MB 10 - * vol1 user root 0B - 2 - vol1 user EXAMPLE\user02 852KB 300MB 122 - * vol2 user * 0B 300MB 0 - * vol2 user BUILTIN\Administrators 8KB - 5 - vol2 user EXAMPLE\user01 0B 300MB 4 - * vol2 user EXAMPLE\user02 8KB 300MB 5 - * 9 entries were displayed.
この状態で「移動ユーザープロファイル領域」に300MB以上のデーターを置くと、サインアウトの際、以下のエラーが出力されます。
イベントを見ると、容量不足でディスクの書き込みに失敗しています。
また、「フォルダリダイレクト領域」に300MB以上のデータを置こうとすると、ディスク容量不足で以下のエラーが出力されます。
なお、クォータ設定を無効化する際は、以下の手順で実施します。
volume quota off -vserver svm1 -volume vol1 -foreground
volume quota policy rule delete -policy-name quota1 *
vserver modify -vserver svm1 -quota-policy default
volume quota policy delete -vserver svm1 -policy-name quota1
以上
Clustered ONTAP で CIFS 共有
移動ユーザープロファイルの検証のため、久しぶりに Simulate ONTAP 8.3.2で、CIFS サーバーを構築しました。ドメイン参加に失敗する問題があったのでメモしておきます。
Aggregate 作成
storage aggregate create -aggregate aggr1 -raidtype raid_dp -diskcount 5 -nodes cluster1-01 -maxraidsize 22 storage aggregate show
SVM 作成
vserver create -vserver svm1 -rootvolume vol0 -aggregate aggr1 -rootvolume-security-style unix -language C vserver show
LIF 作成
network interface create lif0 -role cluster-mgmt -home-node cluster1-01 -home-port e0c -address 192.168.1.200 -netmask 255.255.255.0 network interface create -vserver svm1 -lif lif1 -role data -data-protocol cifs -home-port e0a -address 192.168.1.201 -netmask 255.255.255.0
Volume 作成
volume create -vserver svm1 -volume vol1 -aggregate aggr1 -size 2g -security-style ntfs -space-guarantee none -junction-path /vol1 volume show
CIFS 設定
vserver services dns create -vserver svm1 -domains example.com -name-servers 192.168.1.100 vserver services dns show cifs create -cifs-server svm1_cifs -domain example.com -vserver svm1 vserver cifs show
cifs create コマンドを使用して、ドメイン参加する際、以下のエラー発生しました。
Unable to connect to LSA service on ad.example.com (Error: RESULT_ERROR_KERBEROS_SKEW)
調べてみると、AD と NetApp 間で時刻がずれている場合に発生するようです。
時刻とタイムゾーンの設定
system date modify -timezone Japan -date 8/7/2016 15:00:00 system date show
CIFS 共有設定
vserver cifs share create -vserver svm1 -share-name profiles -path /vol1 vserver cifs share show
以上で、CIFS 共有したボリュームにアクセスが可能となります。
AD ドメイン上のユーザーで、SVM へのアクセスを許可する場合は、以下を設定します。
※移動ユーザープロファイルのプロファイルパスに SVM を指定する場合、必須のコマンドです。
security login domain-tunnel create -vserver svm1
security login domain-tunnel show
ドメイン「EXAMPLE」内のグループ「group01」に所属するユーザーで SSH 接続を許可することも可能です。
設定は以下のとおりです。
security login create -vserver cluster1 -user-or-group-name EXAMPLE\group01 -application ssh -authmethod domain security login show -vserver cluster1
※なお、ADDNS の A レコードは、ドメイン参加時に登録される「ホスト名」と異なる名前でないと、名前による CIFS 接続に失敗するといった問題が発生しました。(IP アドレスでは正常に接続可能)原因については調査中です。
以上
NFS データストアでフォルダを作成できない問題について
NetApp で作成したボリュームを、ESXi から NFS でマウントし、データストア上にフォルダを作成しようとした際、以下のエラーが出力される問題に遭遇しました。
ESXi「192.168.1.100」で オブジェクト「ha-nfc-file-manager」の「FileManager.MakeDirectory」 の呼び出しが失敗しました。
もちろん、ボリュームは正しく export しています。
色々調べた結果、NetApp 側の qtree 設定で serurity を unix にする必要がありました。*1
qtree 設定確認
qtree security コマンドで設定状況を確認します。
netapp> qtree status vol07
Volume Tree Style Oplocks Status
-------- -------- ----- -------- ---------
vol07 ntfs enabled normal
qtree 設定変更
> qtree security /vol/vol07 unix
qtree 設定確認
qtree security コマンドで設定状況を確認します。
netapp> qtree status vol07
Volume Tree Style Oplocks Status
-------- -------- ----- -------- ---------
vol07 unix enabled normal
以上で、データストア上にフォルダを作成することができるようになりました。
以上
*1:今回、使用した FAS では、デフォルトが ntfs となっていました。
Cisco と NetApp(7-Mode)で LAG 設定
以前、Nexus と Netapp 間で LAG を構成する際の注意点の記事で LAG の設定例を書きましたが、NetAppのソフトウェアバージョン8.2では、少し設定が異なったのでメモします。
それぞれ2本のインターフェースで LAG を構成し、NetApp 側は VLAN101と102のインターフェースを作成します。Cisco 側は VLAN101と VLAN102を透過する設定例になります。
Cisco の設定
interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport trunk allowed vlan 101,102 switchport mode trunk channel-group 1 mode on ! interface GigabitEthernet0/2 switchport trunk encapsulation dot1q switchport trunk allowed vlan 101,102 switchport mode trunk channel-group 1 mode on
NetApp の設定
ifgrp create multi ifgrp0 -b ip e0a e0b vlan create ifgrp0 101 102 ifconfig ifgrp0-101 192.168.101.100 netmask 255.255.255.0 partner ifgrp0 ifconfig ifgrp0-102 192.168.102.100 netmask 255.255.255.0 partner ifgrp0
ifgrp status default: transmit 'IP Load balancing', Ifgrp Type 'multi_mode', fail 'log' ifgrp0: 2 links, transmit 'IP Load balancing', Ifgrp Type 'multi_mode' fail 'default' Ifgrp Status Up Addr_set up: e0a: state up, since 02Apr2016 13:18:54 (01:04:47) mediatype: auto-1000t-fd-up flags: enabled input packets 2408902, input bytes 3601548374 output packets 1264232, output bytes 97298932 up indications 1, broken indications 0 drops (if) 0, drops (link) 0 indication: up at 02Apr2016 13:18:54 consecutive 3887, transitions 1 e0b: state up, since 02Apr2016 13:18:42 (01:04:59) mediatype: auto-1000t-fd-up flags: enabled input packets 0, input bytes 0 output packets 122, output bytes 8396 up indications 2, broken indications 1 drops (if) 0, drops (link) 0 indication: up at 02Apr2016 13:18:42 consecutive 4159, transitions 3
以上
VMware Photon Linux について
VMware が、コンテナ向けに最適化された軽量 LinuxOS「Project Photon」をテクノロジープレビューとして公開しました。これまで仮想化ハイパーバイザを中心に製品群を組み立て(あるいは Spring Framework のような上位レイヤのものもありましたが)、OS とは一定の距離を保とうとしていた VMware にとって大きな変化といえます。
出典:Publickey
今回、vSphere ESXi5.5 の基盤上に Photon Linux をインストールし、基本的な動作を確認してみました。
Photon Linux のインストール
VMware Github から[Photon OS, Tech Preview 2 Full ISO]をダウンロードします。
次のサイトを参考に仮想マシンを作成し、ダウンロードしたイメージをマウントし起動します。
今回は、Photon Full OS (All) を選択します。
再起動後、インストール完了です。
Photon Linux の環境確認
今回インストールした Photon Linux のカーネルバージョンは、以下のとおりです。
# uname -a Linux photon 4.0.9 #1-photon SMP Thu Aug 20 19:57:53 UTC 2015 x86_64 GNU/Linux
Photon Linux のディストリビューションバージョンは、以下のとおりです。
# cat /etc/lsb-release DISTRIB_ID="VMware Photon" DISTRIB_RELEASE="1.0 TP2" DISTRIB_CODENAME=Photon DISTRIB_DESCRIPTION="VMware Photon 1.0 TP2"
Docker のバージョンは、以下のとおりです。
> rpm -q docker docker-1.8.1-1.ph1tp2.x86_64
Photon への SSH ログイン
root ユーザでの SSH ログインを許可します。*1
# vi /etc/ssh/sshd_config # 134 行目あたりにある、「PermitRootLogin」を「yes」に変更します。 > PermitRootLogin yes
sshd を再起動します。
# systemctl restart sshd.service
Docker の起動
以下のコマンドで、Docker のサービスを開始します。
# systemctl start docker # systemctl enable docker
Docker イメージのダウンロード
Docker イメージは、コンテナを実行するために必要なアーカイブ*2と、コンテナのメタ情報を持ちます。
多くのベースイメージは Docker Hub Registry で公開されているので、そこからダウンロードするのが一般的です。イメージのダウンロードは、docker pull コマンドを実行します。
(書式) # docker pull {イメージ名}:{タグ名}
初期設定では、Docker レジストリとして「Docker Hub Registry」にアクセスするようになっています。
今回の例では、Ubuntu Linux Dockerイメージの最新版をダウンロードします。*3
# docker pull ubuntu
以下のコマンドで、ダウンロードした Docker イメージの一覧を確認します。
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest d55e68e6cc9c 3 weeks ago 187.9 MB
Docker コンテナの作成・実行
docker run コマンドで、コンテナの新規作成と実行の両方を行います。
(書式) # docker run [オプション] [--name {コンテナ名}] {イメージ名}[:{タグ名}] [コンテナで実行するコマンド] [引数]
主なオプション
- 「-d」:バックグラウンドで実行する。(Web サーバー等、常時実行するコンテナで指定)
- 「-i」:コンテナの標準入力を開く。(/bin/bashなどでコンテナを操作する際に指定)
- 「-t」:tty(端末デバイス)を確保する。(/bin/bashなどでコンテナを操作する際に指定)
- 「-p{ホストのポート番号}:{コンテナのポート番号}」:Docker のホストとポートマッピングを構成
今回の例では、Ubuntu イメージからコンテナ「web01」を作成、端末を開き bash を実行します。
# docker run -it --name web01 ubuntu /bin/bash
root@ef408ef16c7a:/#
コンテナで bash が実行され、プロンプトが表示されます。
一瞬で新規作成~起動まで完了し、コンテナ内で任意の操作ができます。
Web サーバーの「nginx」をコンテナにインストールします。
# apt-get install -y nginx
curl を使用して確認します。
# curl localhost <!DOCTYPE html> <html> <head> <...snip...>
確認が完了したら[Ctrl]+[d]キーで bash プロセスを終了します。
プロセスの終了とコンテナの停止は連動するため、この時点でコンテナ「web01」は停止状態になります。
端末を再度開く場合は、プロセスを起動し docker attach コマンドを使用します。
# docker start web01 # docker attach web01
Docker コンテナの確認
Docker コンテナの一覧は、docker ps コマンドで確認します。
(書式) # docker ps [-a]
docker ps コマンドでは実行中のコンテナのみ表示されますが、「-a」オプションを付加すると、停止中のコンテナも表示されます。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ef408ef16c7a ubuntu "/bin/bash" 10 hours ago Exited (0) 7 minutes ago web01 STATUS で「Up」は実行中、「Exit」は停止を示します。
Docker イメージの作成
上記で作成したコンテナ(web01)から、新しいイメージ(ubuntu_template)を作成してみます。
(書式) # docker commit {コンテナ名}|{コンテナID} [{ユーザー名}/]{イメージ名}
# docker commit web01 user01/ubuntu_template
以下のコマンドで、作成した Docker イメージの一覧を確認します。
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE user01/ubuntu_template latest e1f421fdefaf 5 seconds ago 216.5 MB ubuntu latest d55e68e6cc9c 3 weeks ago 187.9 MB
Docker コンテナのバックグラウンド実行
作成したイメージには、nginx が含まれているので、こちらからコンテナを作成、実行してみます。
# docker run -d -p 80:80 --name web02 user01/ubuntu_template /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf 7f5b4a545ba47c356148b78898d74342bd56249bc4d71938648a79279c50c10f 80番ポートを Listen しバックグラウンドで実行するようにオプションを指定します。
バックグラウンドで実行しているため、docker ps コマンドの-aオプションなしでも表示されます。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7f5b4a545ba4 user01/ubuntu_template "/usr/sbin/nginx -g '" About a minute ago Up About a minute 0.0.0.0:80->80/tcp web02
Docker コンテナのの停止
実行中の Docker コンテナは、docker stop で停止します。
(書式) # docker stop {コンテナ名}|{コンテナID}
停止後、docker ps を実行すると表示されなくなります。
# docker stop web02 web02 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Docker コンテナのの削除
Docker コンテナは docker rm、Docker イメージは docker rmi で削除します。
(書式) # docker rm {コンテナ名}|{コンテナID} # docker rmi {イメージ名}|{イメージID}
今回作成した Docker コンテナを削除します。
# docker rm web01 # docker rm web02
次に Docker イメージを削除します。
# docker rmi user01/ubuntu_template
Untagged: user01/ubuntu_template:latest
Deleted: e1f421fdefaf4c60018ccd3fbec43483ec8c6d07d3232d8c67293878e5422e6f
参考サイト:
https://communities.vmware.com/people/gowatana/blog
http://blog.amedama.jp/entry/2015/09/24/222040
http://www.atmarkit.co.jp/ait/articles/1405/16/news032.html
http://www.atmarkit.co.jp/ait/articles/1406/10/news031_3.html
以上
Cisco ASA のポータルページ無効化
Cisco ASA で WebVPN を使用時、ブラウザで ASA のアドレスにアクセスすると以下のようなポータルサイトが表示されます。
このポータルサイトを無効化するには、以下のコマンドを実行します。
ciscoasa# conf t ciscoasa(config)# webvpn ciscoasa(config-webvpn)# portal-access-rule 1 deny code 403 any ciscoasa(config-webvpn)# end ciscoasa# sh run web
以上
VMware Mirage の CVD Policy について
例えば、複数のディスクドライブ*1を持つ PC からベースレイヤを作成し、それを単一のディスクドライブを持つエンドポイントに配布しようとすると、下記のようなエラーとなります。
Drive Letter Mismatch. Base Layer: 'c,e',Device:'c'
これを回避するには、エンドポイントをベースレイヤと同様のディスク構成にするか、ベースレイヤのディスク構成をエンドポイントにあわせる必要があります。
「CVD Policy」では、保護対象とするディスクを明示的に設定できるため、これを使用してベースレイヤのディスク構成をエンドポイントにあわせることが可能です。
CVD Policy の作成
左ペインの[Polices]で[Add]をクリックします。
[Protected volumes]で、保護対象のボリュームを「C:」のみに指定します。*2
[Policies]に Policy(Name:Protect Only C volume)が作成されます。
CVD Policy の適用
[Pending Devices]から対象の仮想マシンを選択し[Create Reference CVD(Base Layer)]をクリックします。
作成した CVD Policy を選択し[Next]をクリックします。
その他の設定は全てデフォルトを指定し[Finish]をクリックします。
アップロード処理が完了後、[Capture Base Layer]をクリックし、Base Layer の作成処理を開始します。
[Name]に Base Layer の名称を入力し[Next]をクリックします。
その他の設定は全てデフォルトを指定し[Finish]をクリックします。
上記で作成したベースレイヤは、単一のディスクドライブを持つエンドポイントに配布可能となります。
ESXi で CDP を有効化
ESXi で CDP を有効化し、Cisco のスイッチで認識させる設定です。
シェルで以下のコマンドを実行し、vSwitch0 で CDP を有効化します。
~ # esxcfg-vswitch -B both vSwitch0
以下のコマンドで設定状態を確認します。「both」となっていれば有効です。
~ # esxcfg-vswitch -b vSwitch0 both
VMware Mirage の File Portal について
留意事項として、事前にベースラインを適用している必要があります。
また、ベースライン適用時に、Mirage Gateway にログインしているユーザーが、File Portal ユーザーになります。例として、下記 CVD(Name:WIN-K9VEUG0NIUT)の File Portal User は「User01」になります。
File Portal ユーザーは、以下の URL にアクセスし、自分のファイルをダウンロードする事ができます。
https://Mirage Server IP:6443/Exploer
また、管理者は、以下の URL から全ユーザーのファイルをダウンロードする事ができます。
https://Mirage Server IP:6443/AdminExploer
注意点として、アクセス時に「HTTP 500 エラー」が出力される場合があります。
この場合、Mirage Server に「ASP.NET」をインストールします。詳細については、以下を参照ください。
HTTP error 500 or 403 when accessing VMware Horizon Mirage File Portal or Web Manager
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
File Poral ログイン例
以下の URL でログインします。
https://192.168.1.10:6443/Exploer
File Portal User でログインします。
自分のファイルをダウンロードする事ができます。
管理者 File Poral ログイン例
以下の URL でログインします。
https://192.168.1.10:6443/AdminExploer
管理者ユーザーでログインします。
任意のユーザーのファイルをダウンロードする事ができます。
管理者 File Portal のアクセス制御について
管理者 Portal は、「ローカルセキュリティポリシー」で許可されたユーザーのみアクセス可能です。*1
File Portal をインストールした IIS サーバで、[ローカルセキュリティポリシー]をクリックします。
[ローカルポリシー]の[ユーザー権の指定]から[ローカルでログオンを許可]をクリックします。
アクセスを許可したいユーザーを追加します。
これで、user01 でも管理者 File Portal へアクセス可能となります。
以上
*1:デフォルトでは、Mirage をインストール後に追加したユーザー「user01」では、アクセスできませんでした。