Intel NUCとVMware ESXi 6.5上にSophos XG Firewallを構築する
仮想化技術の勉強のため新しくIntel NUCを購入しました。業務用サーバのようなデカくてうるさいやつはさすがに自宅に置けないので、省スペースなNUCを選びました。
INTEL インテル i5-8259U M.2 SSDに対応 2.5" (9.5mm厚) HDD/SSDも搭載可能 ハイパフォーマンス小型ベアボーンキット BOXNUC8I5BEH
- 出版社/メーカー: インテル
- 発売日: 2018/11/08
- メディア: Personal Computers
- この商品を含むブログを見る
この機種を選定した理由として、Core i5の4コアHT対応で論理コアが8コアあるからです。仮想環境で動かすホスト数によってはCPUリソースが足りなくなるかもしれないと考えたためです。
また、ゲストとしてSophos XG Firewall Home Editionを導入し、ネットワーク機器として運用します。このFWの最低動作条件以下の通りです。
- x86064 (64 bit) CPU
- 2 Network Card Interface (NIC)
- 2GB RAM
- 10GB HDD/SDD
動作させるにはNICが2つ必要となります。
続きを読むZabbixのMapからteratermで自動ログインする
ネットワーク機器も増えてきたこともあり、監視する必要がでてきたためにZabbixを使っています。MAP画面を使うと装置のつながりが一目で分かります。 普段はWindowsでTeratermを使っているので、マップから起動してログインできると便利です。ということで、ブラウザからローカルのexeファイルを実行する方法を調べたのですが、セキュリティの観点から禁止されているようです。Internet ExplorerであればActiveXを使うことでJavaScriptから呼び出せるようですが、IEはサポートされなくなるため別の方法を考えます。
ブラウザから次のようにプロトコルを指定したリンクを使うことにより特定のプログラムを実行させることができます。
この例ではtelnet接続のためのクライアントが起動し、localhostへ接続しようとします。どのプログラムが起動するかはレジストリに記述されています。regeditを使って下記のレジストリを確認します。
[HKEY_CLASSES_ROOT\telnet\shell\open\command] (規定)="C:\Windows\System32\rundll32.exe" "C:\Windows\System32\url.dll",TelnetProtocolHandler %l
この規定の値を変更してみます。
[HKEY_CLASSES_ROOT\telnet\shell\open\command] (規定)="C:\Python\Python35\python.exe" "C:\usr\script\show_args.py" %l
なお、show_args.pyは次のようになっています。
import sys import msvcrt print('# of arguments:', len(sys.argv)) print('arguments:', str(sys.argv)) msvcrt.getch()
telnetのリンクをクリックすると次のように表示されます。
# of arguments: 2 arguments: ['C:\\usr\\script\\show_args.py', 'telnet://localhost/']
引数としてエンコードされたURL文字列自身が渡されます。したがって、次のように処理をします。
- zabbixのマップからtelnetリンクを生成
- telnetリンクをクリック
- レジストリに登録されたプログラムを起動
- URLエンコードされた文字列を処理
- teratermマクロでログイン処理を実行する
まずは、マップのURLsにリンクを張ります。
URLsのNameとURLを設定します。URLはCGIにIPアドレスとユーザ名を渡します。今回は次のようにします。
http://localhost/macro/login.cgi?type=≪実行するマクロ名≫&ip=≪ip アドレス≫&args=≪ユーザ名≫ --- http://localhost/macro/login.cgi?type=ssh_login&ip=192.168.11.10&args=jinglan
参照先のCGIは以下のようになっています。
#!/usr/bin/perl use strict; use warnings; use CGI; # クエリパラメータ取得 my $query = new CGI; my $telnet_url = 'localhost/'.$query->param('type').'.ttl '.$query->param('ip').' '.$query->param('args'); # レスポンスヘッダの出力 print "Content-type: text/html", "\n\n"; # HTMLの出力 my $buff =<<"EOM"; <!DOCTYPE html> <html> <head> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <script language="javascript"> function main() { document.location.href = "telnet://$telnet_url"; //history.go(-1); //Chromeだとうまく動作しないのでコメントアウト } </script> <title>Login</title> </head> <body onload="main()"></body> </html> EOM print $buff;
このスクリプトはHTMLページを作成し、telnet://のアドレスへ自動的にリダイレクトします。これにより、レジストリに登録されたプログラムが実行されます。レジストリへの登録は下記の内容を.regファイルにするとダブルクリックで変更できるので簡単です。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\telnet\shell\open\command] @="\"C:\\Program Files (x86)\\teraterm\\ttpmacro.exe\" C:\\usr\\script\\login.ttl %l"
telnetプロトコルをteratermマクロに関連付け、C:\usr\script\login.ttlを実行しています。login.ttlの内容は以下のようになっています。
arg_str = param2 strreplace arg_str 1 'telnet://localhost/' '' do strreplace arg_str 1 '%20' ' ' loop while result = 1 strsplit arg_str ' ' SSH_CONN_PARAM = "" strconcat SSH_CONN_PARAM groupmatchstr3 strconcat SSH_CONN_PARAM "@" strconcat SSH_CONN_PARAM groupmatchstr2 include "Login_ManagementServer.ttl" sendln "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null " SSH_CONN_PARAM
ブラウザによるURLエンコードでスペースが%20に変換されるため、置換で戻しています。また、telnet://localhost/は不要なので削除しています。踏み台サーバ(Linux)にログインした後、sshコマンドで接続しています。
以上でMAPからワンクリックでパスワード入力まで自動化させることができました。注意点として、Windowsのtelnetプロトコルの処理を変更しているのでセキュリティには留意する必要があります。
電気通信主任技術者の受験記
昨年は電気通信主任技術者(伝送交換)を受験し、合格したのでそのときのメモです。
受験時にはすでに下記の資格を持っていました。
工事担任者(総合種)を持っていたので「システム」「設備」「専門」「法規」のうち「システム」は免除となりました。また、 基本情報処理技術者をもっているので「専門」はデータ通信を選択しました。
「設備」「法規」の試験対策として次の過去問を買いました。資格勉強では過去問は必須です。
18~19年版電気通信主任技術者試験全問題解答集1共通編: 伝送交換主任技術者・線路主任技術者
- 作者: 電気通信主任技術者試験研究会
- 出版社/メーカー: 日本理工出版会
- 発売日: 2017/10/20
- メディア: 単行本
- この商品を含むブログを見る
過去問は多くの問題が収録されているものが良いです。調べたところこの本が一番収録されていました。「専門」を除く「システム」「設備」「法規」が収録されているので科目ごとに過去問を買う必要もありません。
「専門」については公式サイトの過去問4回分を使いました。この過去問は解説がないので自力で解答の理由を導く必要があります。しかし、 基本情報処理技術者試験を受けていればおおよそ解答の見当が付きます。基本情報処理技術者試験に出題されないような通信系の問題はルータなどの通信機器を扱った経験があれば難しくないでしょう。
また、参考書は今回購入しませんでした。
「設備」に関しては工事担任者で電話機の通信方式(DPやISDN)、無線や伝送時の符号化について、基本情報処理技術者でMTBFや情報セキュリティといったトピックについて理解しているのであれば参考書は不要だと思います。自分の周りではオーム社のテキストを使っている人が多かったです。
電気通信主任技術者試験 これなら受かる 伝送交換設備及び設備管理 改訂2版
- 作者: オーム社
- 出版社/メーカー: オーム社
- 発売日: 2018/03/24
- メディア: 単行本
- この商品を含むブログを見る
「法規」に関しては丸暗記です。過去問を1周すればどんな問題が出題されるか、どれが正解なのか分かるようになります。法律用語や解釈に不慣れであれば参考書を購入するのも一考です。
- 作者: オーム社
- 出版社/メーカー: オーム社
- 発売日: 2018/10/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
CiscoルータでOCNのIPoEを使ってみる (DNS設定編)
前回、OCNのIPoEの設定を実施しました。今回はDNSを設定します。というのも、IPv6パススルーを使うとDNSがRAアドバタイズとDHCPv6によって通知されるため、自動的にISPのDNSサーバとなってしまいます。LAN内に自前のサーバがある都合上、DNS(Proxy)サーバを用いてIPv4で名前解決をできるようにします。
OCNのDNSサーバではIPv4からの問い合わせはIPv6のAAAAレコードを返しません(AAAAフィルタリング)。
[jinglan@localserver]$ nslookup -type=a www.google.com 192.168.11.1 Server: 192.168.11.1 Address: 192.168.11.1#53 Non-authoritative answer: Name: www.google.com Address: 172.217.25.196 [jinglan@localserver]$ nslookup -type=aaaa www.google.com 192.168.11.1 Server: 192.168.11.1 Address: 192.168.11.1#53 Non-authoritative answer: *** Can't find www.google.com: No answer Authoritative answers can be found from: [jinglan@localserver]$
そのため、IPv4とIPv6に対応したDNSキャッシュサーバを立て、IPv4の問い合わせに対してAAAAレコードも返せるようにします。
続きを読む