ネットワークエンジニアのアレ

技術情報メインの備忘系ブログです

www.flickr.com

GitHubから起動可能なWebIDE「Gitpod」を使ってみました。

Gitpod


先日のPublickeyさんの記事で知った、WebIDEの「Gitpod」。

www.publickey1.jp

ソースコード管理サービス(GitHub,GitLab,Bitbucket)と連携でき、ブラウザ上でコーディングが行なえます(WebIDE)。

エディター部分は殆どVisual Studio Code(以下、VS Code)。

 

  • Gitpodの特徴
  • Gitpodの使い方
    • 起動
    • 環境イメージ
  • Workspaceのライフサイクル
    • Workspaceの停止
    • Workspaceの削除
  • DockerFile or Docker Imageで環境をカスタマイズ
  • VS Code拡張機能が使える
  • iPadで使える
  • おわりに

 

VS Code本家のMicrosoftが提供しているVisual Studio Codespaces(以下、Codespaces)も以前使っていましたが、ブラウザ操作時の反応速度やセルフホステッド環境の不具合などで、最近は使っていませんでした。
 
気軽にブラウザで開発できる環境を探していたので「Gitpod」使ってみました。

Juniper SRXのログ設定(ログファイルの保存設定)

Juniper SRXを初めて触ったときにログ設定で少しハマったので、備忘のために設定方法などを書きます。

ログモードの設定

SRXにはログモードが2つあります。

  • Event mode :デフォルトの設定(最大 1,500 event/秒までの環境で設定)
  • Stream mode :高負荷な環境でセキュリティログの取得が必要な場合に設定

中規模くらいまでは”Event mode”で問題なさそうですが、それ以上は”Stream mode”にします。
ただし、”Stream mode”では機器内部にログが保存されないので注意が必要です。

”Event mode”の場合、ルーティングエンジンが処理した後に保存・ログ転送を行いますが、”Stream mode”の場合は、ルーティングエンジンを経由しないので負荷が軽くなります。

# 設定
# set security log event
# set security log stream 

トラフィックログの設定

SRXのログ管理は少し特殊です。
一般的なファイアウォールでは、特に設定しなくても機器内部にログが保存されますが、SRXは明示的に設定しなければ保存されません。
例えば、トラフィックログを保存する場合は以下の設定を行います。

基本設定

# set system syslog file policy_session any any
# set system syslog file policy_session match RT_FLOW
# 説明
set system syslog file <①ファイル名> <②facility> <③severity>  
set system syslog file <①ファイル名> match <④ログファイル内の文字列>

”①ファイル名”はログファイ名、”②facility”と”③severity”はその名の通りです。

※参考(facility、severity) www.juniper.net

”④ログファイル内の文字列”はログファイルに出力させるログ内に記載されている文字列を指定します。
この値に文字列をログファイルに保存します。

RT_FLOWという文字列がトラフィックログに含まれています。

# トラフィックログイメージ
Aug  8 09:00:00 SRXFW-1 RT_FLOW: RT_FLOW_SESSION_CLOSE: session closed TCP SERVER RST ※以下略※

ログサイズ・世代管理設定

ログサイズと世代管理は以下の設定を行います。

# set system syslog file policy_session archive size 1000k
# set system syslog file policy_session archive files 3
# 説明
set system syslog file policy_session archive size <①ログファイルサイズ>
set system syslog file policy_session archive files <②保存する世代数>

”①ログファイルサイズ”は1ログファイルのサイズです。このサイズを超えたログはローテートされます。
”②保存する世代数”はログファイルを保存する世代数です。

ログローテートはサイズを超えたら即時されるわけではなく、定期的(デフォルト15分)にファイルサイズの確認を行っていて、その際にサイズが超えていた場合に行います。
確認のタイミングは以下の設定で変更可能です。

 # set system syslog log-rotate-frequency < 1-59 分 >

その他設定

以下の設定はJ-Web(SRXのGUI)にログを表示するために必要な設定です。
GUIにログを表示するのにも設定が必要・・・・。

# set system syslog file policy_session archive world-readable
# set system syslog file policy_session structured-data

UTMログの設定

続いて、アンチウィルス・WEBフィルタ・IDP・ログの設定です。 基本的にトラフィックログと設定は同じです。

変更する必要があるのはマッチ条件で使う文字列です。

  • アンチウィルス : AV_
  • WEBフィルタ  :WEBFILTER_
  • IDP       :RT_IDP
# set system syslog file antivirus-log any any
# set system syslog file antivirus-log match AV_
# set system syslog file antivirus-log archive size 1000k
# set system syslog file policy_session archive files 3
# set system syslog file antivirus-log archive world-readable
# set system syslog file antivirus-log structured-data


# set system syslog file webfilter-log any any
# set system syslog file webfilter-log match WEBFILTER_
# set system syslog file webfilter-log archive size 1000k
# set system syslog file policy_session archive files 3
# set system syslog file webfilter-log archive world-readable
# set system syslog file webfilter-log structured-data

# set system syslog file IDP_attack.log any any
# set system syslog file IDP_attack.log match RT_IDP
# set system syslog file IDP_attack.log archive size 1000k
# set system syslog file policy_session archive files 3
# set system syslog file IDP_attack.log archive world-readable
# set system syslog file IDP_attack.log structured-data

セキュティポリシーの設定

セキュティポリシーにログ出力設定を行わないと保存されないので、設定を行います。

# set security policies from-zone trust to-zone untrust policy default-permit then log session-close

then log session-close :通信終了時にログが保存されます。
then log session-init :通信開始時にログが保存されます。

ログ確認コマンド

以下のコマンドで保存されたログを確認可能です。

show log <ログファイル名>


次回はSYSLOG転送の設定について書きたいと思います。

NoCodeサービス「Bubble」でTagを表示する

Bubble_NoCode_Tag設定

最近SNSなどで目にするようになってきた「NoCode(ノーコード)」
自分も「Bubble(バブル)」というサービスを触ってます。

 

bubble.io


この記事では「Bubble」のTipsについて紹介したいと思います。

 

「Bubble」とは何か?や一通りの使い方は@__shinji__さんが恐ろしく詳しく解説しているので、下記動画をぜひご覧ください。

www.youtube.com

 

 

Tag(タグ)を表示する

今回はブログやSNSで標準的な機能の Tag(タグ)を表示する方法の紹介です。

 

完成イメージ

完成イメージはこちら。

入力したキーワードが下記画像のように表示されるやつです。

Bubble_NoCode_Tag設定

作り方

データベース作成

まず、Tagを格納するデータベースを作成します。

Type(テーブル) :article
Field(カラム)  :tag

上記の名前で作成。Field typeは”List of texts”を選択します。

Bubble_NoCode_001

1つのレコードの内容はこんな感じです。

Bubble_NoCode_Tag設定

Element設置

こんな感じでElementを設置します。

Bubble_NoCode_Tag設定

 

Tagを登録

WorkflowでTag登録(tag Fieldに格納)の設定を行います。

今回は以下の仕様にします。

  • Inputフォームに入力された単語をTagとして登録
  • 単語の間にスペースがある場合は別の単語として登録

 

設定は以下のように行います。

 

Bubble_NoCode_Tag設定

正規表現で単語を抽出しているので、”extract with Regex”でParrernに”\S+”を入力します。

これで空白以外の単語抽出してtag Fieldに格納します。

 

また、tag FieldのField typeが”List of texts”なので”set list”を選択します。

Bubble_NoCode_Tag設定

 

上記設定で下記動作を行うようになります。

  • Inputフォームに入力された単語をTagとして登録
  • 単語の間にスペースがある場合は別の単語として登録


「猫 ねこ cat」と入力し登録ボタンをクリックした場合、Listでtag Fieldに格納されます。

Bubble_NoCode_Tag設定

 

Tagを表示する 

HTML ElementをRepeating Group内に設置します。

Bubble_NoCode_Tag設定

Appearance内に以下を入力します。

太字のところはdynamic dataです。

<style>
.tag-list span {
padding: 2px 4px;
border: 1px dotted rgba(1, 176, 187, 0.65);
border-radius: 5px;
color: rgba(1, 176, 187, 1);
font-family: Roboto;
font-size: 12px;
margin: 0 5px 10px 0;
font-weight: 500;
display: inline-block;
word-wrap: break-word;
white-space: normal;
}
</style>
<div class="tag-list"><span>

Current cell's article's tag join with </span><span>:uppercase

</div>

上記記述はBubbleコミュニティでTipsとして掲載されていました。

(とても助かりました。)

コミュニティが活発なのもBubbleの特徴です。調べると何かしら出てきます。

forum.bubble.io

 

これでtag Fieldから単語を取り出してTagのように出力可能になります。

Bubble_NoCode_Tag設定

動作イメージ

Bubble_NoCode_Tag設定

 おわりに

「Bubble」を使いはじめて1ヶ月。

コードを書かなくても動くものができるのはとても良いですね。

込み入ったことをすると、「Bubble」の仕様に依存して逆に大変・・・ってこともありますが、前述のとおりコミュニティも充実しているので何かしら解決策が見つかります。

Pluginも豊富で自分でも作成できるので、必要な機能があったら追加することも可能です。

 

近いうちに「Bubble」でサービスをリリースしたいと思います。

FortiGateでDS-Lite(IPv4 over IPv6)を設定。楽天ひかりで快適インターネット。

DS-Lite(IPv4 over IPv6)を設定。楽天ひかりで快適インターネット。


最近リモートでの打ち合わせが増えて、ネット環境のプライオリティが上がったので固定回線を契約しました。
打ち合わせの途中で切れるとツライ・・・。

 

今回は固定回線(楽天ひかり)を契約し、Fortinet社のFortiGateDS-Lite(IPv4 over IPv6)設定、インターネットを利用するまでの手順を書きたいと思います。

 

楽天ひかりを契約

楽天ひかりは通信速度が遅いと評判(?)でしたが、最近 IPv6(IPoE/IPv4 over IPv6)に対応して改善されたとのことで契約。

 

hikari.rakuten.co.jp

 

1ヶ月ほどで開通しました。

構成

構成はこんな感じです。

 

FortiGateでDS-Lite_楽天ひかり 

①ファイアウォール(FortiGate)
 今回の設定対象です。

②IPv6 IPoEネットワーク
 フレッツ網内のIPv6 IPoEネットワークです。通信はここを通ります。

③IPv4 over IPv6 トンネル
 FortiGateとAFTR間で張ります。
 トンネリングすることでIPv6ネットワークにIPv4パケットを通すことができます。

④AFTR(Address Family Transition Router)
 IPv4 over IPv6カプセル化解除とグローバルIPへのNATを行います。
 VNE事業者のアルテリア・ネットワークス社が提供しています(楽天ひかりでは)。

 

FortiGateの設定

OSは下記バージョンを利用します。

v6.2.4 build1112 (GA)  

1.IPv6有効化

IPv6が有効になっていない場合は有効にします。

「システム」→「表示機能設定」→「コアフィーチャー」から「IPv6」を有効化。

Fortigate_DS-Lite_楽天ひかり

2.IPv4 over IPv6トンネル設定

以下の設定を行います。

FW# config system ipv6-tunnel
FW(ipv6-tunnel) edit <任意のtunnel名>
FW(トンネル名) # set source <wan1に割り当てられたIPv6アドレス>
FW(トンネル名) # set destination <AFTRのアドレス>
FW(トンネル名) # set interface wan1
FW(トンネル名) # end

 

FW# config system ipv6-tunnel
FW(ipv6-tunnel) # edit ip6gateway
FW(ip6gateway) # set source **********
FW(ip6gateway) # set destination 2001:f60:0:200::1:1
FW(ip6gateway) # set interface wan1
FW(ip6gateway) # end

●wan1に割り当てられたIPv6アドレス

1.wan1に以下の設定を行います。

FW# config system interface
FW (interface) # edit wan1
FW (wan1) # config ipv6
FW (ipv6) # set dhcp6-prefix-delegation enable
FW (ipv6) # set autoconf enable
FW(ipv6) # end
FW(wan1) # end

2.wan1にネットワークケーブル接続します。

 

3.以下のコマンドを実行し、払い出されるIPv6アドレスを確認しコピーします。

”dst:”の次の数字がIPv6アドレスです。

※ff02やfe80以外からはじまるIPアドレスをコピーしてください

# diagnose ipv6 route list | grep wan1

vf=0 type=01(unicast) protocol=2(kernel) flag=004c0000 prio=256 dst:********** dev=5(wan1) pmtu=1500 

4.コピーしたIPv6アドレスを「set source 」の値として設定します。

 

AFTRのアドレス

楽天ひかりの公式手順を見ると、設定するAFTRのアドレスは「dgw.xpass.jp」となっていますが、FortiGateはドメインでの設定ができなかったので、一度名前解決をしてIPv6アドレス(2001:f60:0:200::1:1)を設定しています。

 

3.ルーティング設定

「ネットワーク」→「スタティックルート」からIPv4スタティックルートを新規作成します。

宛先を「0.0.0.0/0.0.0.0(デフォルトゲートウェイ)」に設定し、インタフェースに作成した「トンネル名(ip6gateway)」を選択します。

Fortigate_DS-Lite_楽天ひかり

これですべてのIPv4通信はIPv6トンネルを通ることになります。

4.ポリシー設定

「ポリシー&オブジェクト」→「IPv4ポリシー」からポリシーを新規作成します。

発信インタフェースは作成したトンネルを指定、NATを有効化します。
※NATしなくても通信できたので必須ではないかも

着信インタフェースはlanです。

Fortigate_DS-Lite_楽天ひかり

 その他のパラメータは任意に設定します。

5.MSS設定

以下の設定を行います。

FW# config firewall policy
FW(policy) # edit <作成したポリシーのID>
FW(ポリシーID) # set tcp-mss-sender 1420
FW(ポリシーID) # set tcp-mss-receiver 1420

インターネット宛の通信はカプセル化(IPv4 over IPv6トンネル)しているので、IPv6ヘッダーの40Byteが追加されます。

 

そのためMSSに1420Byteを設定します。

1500Byte - 80Byte(IPv6ヘッダー 40Byte + IPv4ヘッダー 20Byte + TCPヘッダー20Byte
= 1420 Byte

トンネルインタフェース(ip6gateway)にMSS・MTUが設定できなかったので、ポリシーにMSSを設定しています。

おわりに 

 PPPoEではなくDS-Lite(IPv4 over IPv6)で接続することによって快適に使えています。

スループットは40〜60Mbps程度出ています。

 

参考にしたサイト

ありがとうございます!!

FortiGateで外部リストを取り込める「Threat feeds」機能を使ってみた。

FortiGate_外部リスト読み込み 前回に引き続いてFortiGateの記事です。

FortiOS 6.0から追加された「Threat feeds」機能について概要と設定方法を書きます。

Threat feeds

「Threat feeds」はWEBサーバにあるリスト(IPアドレス等の一覧)をFortiGateに取り込み、リストにあるIPアドレス等の情報を通信制御に利用する機能です。

「Threat feeds」機能

FortiGate_Threat feeds

取り込むことが可能なリストはこちら。

  • IPアドレス
  • ドメイン
  • URL
  • マルウェアハッシュ

取り込んだリストを、セキュリティポリシーやプロファイルに適用して利用します。

たとえば、自社で独自に生成した攻撃者のIPアドレスや、外部で公開されているマルウェアサイトのURLリスト等を取り込むことが可能です。
数十、数百あるIPアドレス等のオブジェクトを手動で追加するのは手間ですが、「Threat feeds」機能を使うことで定期的にリストを取り込んで反映してくれるので運用がかなり楽になります。

また、昨今では通信が暗号化(SSL)されている場合が多いので、ファイアウォールで通信の内容を検査することができない場合も多くなりました。
ファイアウォールでSSLを復号化すれば良いのですが、ファイアウォールのリソースが足りなかったりクライアントPCに証明書を配布するのが大変・・・等、なかなか進まない場合も多いです。

「Threat feeds」機能を使うことでIPアドレスやドメインベースで悪意のある通信をブロックできるので、SSLの復号化不要でセキュリティレベルを上げることが可能です。

FortiOS 6.0では取り込んだIPアドレスリストをProxyポリシーでしか利用できませんでしたが、FortiOS 6.2からはファイアウォールポリシーで利用できるようになりました。


今回はIPアドレスリストドメインリストの設定手順について説明します。

FortiOS 6.4.0で検証しています。

IPアドレスリスト

設定手順

1.ダッシュボードの「Security Fabric」→「External Connectors」→「IP Address」を選択します。

FortiGate ThreatFeeds list import

2.パラメータを入れます。

  • Name :オブジェクトの名称
  • URL of external resource:取り込むリストのURL

今回はこちらで公開しているリストを登録しました。

panwdbl.appspot.com

”Refresh Rate”はリストを更新(リストをGet)する間隔です。デフォルトは5分です。

FortiGate ThreatFeeds list import

3.オブジェクトが生成されます。

①をクリックするとリストを取り込むことが可能です。
②をクリックすると状態が表示されます(ウィンドウが表示されます)。
③をクリックすると取り込んだリストの内容を確認することが可能です。

FortiGate ThreatFeeds list import

4.ファイアウォールポリシーに作成したオブジェクトを登録します。

今回はポリシーの宛先に設定しています。
リストに入っているIPアドレスへの通信をブロックします。

FortiGate ThreatFeeds list import

動作確認

設定が完了したので動作確認を行います。

せっかくなので、動作確認は仕事で開発しているネットワークテスト製品の「NEEDLEWORK」で行います。
NEEDLEWORKは送信元と宛先のIPアドレスを仮想的に生成し、指定したプロトコルで通信することができます。

www.ap-com.co.jp

構成はこちら。

FortiGate ThreatFeeds list import
構成

送信元IPアドレスが「172.16.0.100」で宛先IPアドレスが「4.59.56.18 」、プロトコルはPing(icmp)でテストします。
4.59.56.18 」がIPアドレスリストに含まれているので通信がDropされるはずです。


リスト含まれていないIPアドレスは問題なく通信が通ることを確認するために、宛先IPアドレス「203.0.113.100」のテストも行います。


FortiGate ThreatFeeds list import


画面一番右に結果が出力されます。
ファイアウォールに取り込んだIPアドレスリストに含まれる4.59.56.18へのPing(icmp)がDropされていることがわかります(宛先 203.0.113.100へのPingは通っています)。 FortiGate ThreatFeeds list import

また、NEEDLEWORKでは通信フローを見ることができます。
宛先にパケットが届いていないことがわかります。
FortiGate ThreatFeeds list import

ドメインリスト

続いてドメインリストです。
基本的にIPリストと同じなので簡易版で説明します。

設定手順

ダッシュボードの「Security Fabric」→「External Connectors」を選択します。
「Domain Name」を選択し、IPアドレスリストと同様にオブジェクト名とURLを入力します。

FortiGate ThreatFeeds list import


DNS Filterプロファイルを作成します。
”Category Based Filter”のRemote Categoriesに、作成したオブジェクト(今回はdomain-block-listという名前)があるので、Actionを「Redirect to Block Portal」に設定します。

FortiGate ThreatFeeds list import


作成したDNS Filterプロファイルをファイアウォールポリシーに設定します。

FortiGate ThreatFeeds list import

動作確認

動作確認を行います。
IPアドレスリストと同じく「NEEDLEWORK」を使います。

FortiGate ThreatFeeds list import
構成

69hack.comがリストに含まれているドメインです。
NEEDLEWORKでは、プロトコルにDNSを指定すると指定したドメインのAレコードを解決するクエリーを送信することができます。

FortiGate ThreatFeeds list import

69hack.comの通信がDropされています。
リストに含まれていないwww.naitwo.meの通信は通っています。

おわりに

「Threat feeds」は動的に更新されるIPアドレス等の情報を、簡単にファイアウォールに適応することができる便利な機能です。

ベンダーが用意しているブロックリストやシグネチャにプラスして独自の情報を入れることにより、セキュリティレベルを上げることもできます。

また、たとえばこんな要件がある場合、

PCのエンドポイント製品やIPS/IDSで攻撃・感染検知したIPアドレス情報を自動的にファイアウォールのポリシーに追加してブロックする。

スクリプトを書いてAPIを叩いてファイアウォールに設定・・・・。
しなくても、WEBサーバに置いたリスト(テキストファイル)に追記するだけで、取り込みから反映までファイアウォールでやってくれる。


色々活用できそうな機能なのでぜひ使ってみてください。

参考サイト: docs.fortinet.com

FortiGate VMをVirtualBoxで動かす

VirtualBox-FortiGateVM

Hyper-V、KVM、Xen、VMWare・・・。
FortiGateは多くのハイパーバイザに対応しています。

 

手元のMacで動かしたかったんですがVirtualBox版がなかった・・。

 

今回はFortiGate VMをVirtualBoxで動作させ、管理画面にブラウザで接続するまでをご紹介します。

※あくまでも検証目的での利用なので本番利用とかはしないでください

 

環境

以下の環境で作業しました。

macOS Catalina(10.15.4)

VirtualBox 6.0

qemu-img 4.2.0

事前準備

VMイメージを用意

VMイメージは「KVM」のものを用意します。

ファイル名は”fortios.qcow2”のはずです。

qemu-imgをインストール

Macのターミナルで下記コマンドを実行します。

$ brew install qemu

ディスクイメージのフォーマット変換

ディスクのフォーマットをVDI形式に変換します。

Macのターミナルで下記コマンドを実行します。

$ qemu-img convert -O vdi 【VMイメージのパスを指定】 【変換後のファイル名(パス)を指定】

 例:

$ qemu-img convert -O vdi /Users/hoge/work/fortios.qcow2 /Users/hoge/work/fortios.vdi

VirtualBoxの設定

続いてVirtualBoxの設定です。

仮想マシンの新規作成

仮想マシンの新規作成を行います。

VirtualBox-FortiGate

仮想マシンの設定1

以下の画像のように設定します。

メモリは1024MB以上であれば大丈夫です。

”Hard disk”は作成(変換した)ディスクイメージを指定します。

VirtualBox-FortiGate

仮想マシンの設定2

Paravirtualization Interface(準仮想化インタフェース)は”KVM”を指定します。

VirtualBox-FortiGate

仮想マシンの起動

作成した仮想マシンを起動します。

ログインプロンプトが出れば起動完了です。

 初回は「ユーザ名:admin、パスワード:なし」でログインできます。

VirtualBox-FortiGate

ネットワークの設定

管理画面へWEB接続するため、ネットワークの設定を行います。

※今回はホストオンリーアダプター経由で接続します

 

構成はこんな感じです。

 

Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
 

メニューの「ファイル」→「ホストネットワークマネージャー」を選択。

任意のIPアドレスを設定します。

以下の例では192.168.1.1/24を設定

VirtualBox-FortiGate

 

仮想マシンのネットワーク設定で、”アダプター1”をホストオンリーアダプターに指定、上で設定したホストオンリーアダプターを指定します。

VirtualBox-FortiGate

 

FortiFateの設定

IPアドレスの設定

コンソールにログインし、以下のコマンドを実行します。

※Port1に”192.168.1.100/24”を設定します

# config system interface

(interface)# edit port1

(port1)# set mode static

(port1)# set ip 192.168.1.100 255.255.255.0

(port1)# end

WEBアクセス

ブラウザで”https://192.168.1.100”にアクセスします。

FortigateVM-VirtualBox

 

これで完了です。

Pythonを使ってHTTPサーバを5秒で立てる

ネットワークを構築している時に、疎通確認のためにHTTPサーバが必要になる時があります。
Apacheをインストール&設定して――までするのは面倒。

そんな時に便利な、Pythonを使ってサクッとHTTPサーバを立てる方法をご紹介します。 (意外と知らない人がいたので)

PythonでHTTPサーバを立てる

Pythonが動作すればOKなので、Linux(CentOSとか)やMacの環境であれば事前準備不要です。

以下のコマンドを実行するだけでHTTPサーバが起動します。
Pythonの” SimpleHTTPServer”というモジュールを呼び出しています。

python -m SimpleHTTPServer 8080


8080はリッスンさせるポート番号でデフォルトは8000です。
コマンドを実行したディレクトリがHTTPサーバのルートディレクトリになります。

実行例

以下は実際にサーバを起動させてクライアントからアクセスさせる例です。

クライアント(IP:192.168.1.1)→ サーバ(IP:192.168.1.100)

サーバ側

#  python -m SimpleHTTPServer 8080
    Serving HTTP on 0.0.0.0 port 8080 ...
    192.168.1.1 - - [15/Aug/2019 13:18:17] "GET / HTTP/1.1" 200 -

クライアント側

 # curl 192.168.1.100:8080
  <html>
  <head>
  <meta charset="utf-8">
  <title>hoge</title>
  </head>
  <body>
  hoge
  </body>
  </html>

おわりに

サクッと疎通確認をする時に便利です。
活用してみてはいかがでしょう。

JANOG44@神戸に参加します

f:id:naitwo2:20190209161811j:plain

明日から開始される「JANOG44ミーティング」に参加します(ブース出展がメインです)。

ブース出展は7月25日(木)と26日(金)の2日間。

 

FWポリシー&ネットワークテスト自動化製品のNEEDLEWORKを展示します。

続きを読む

VSCodeの新機能「VS Code Remote」を使ってみた

VSCodeの新機能「VS Code Remote」を使ってみた

5月2日に「Visual Studio Code(以下VSCode)」の新機能「VS Code Remote」がリリースされました。

現在は安定版ではなくプレビュー版(Insiders)でのリリースです。

code.visualstudio.com

サクッと新機能を試してみたのでご紹介します。

  • VSCode Remoteとは?
    • リモート接続方式・接続先
  • VSCode Remote SSHを試してみた
    • 1.プレビュー版(Insiders)をインストール(ローカル環境)
    • 2.拡張機能をインストール(ローカル環境)
    • 3.接続先設定(ローカル環境)
    • 4.リモート接続(ローカル環境)
    • 5.リモート接続完了(リモート環境)
    • 6.リモートサーバに拡張機能をインストール(リモート環境)
  • おわりに
続きを読む

CoderでオンラインVSCode環境を作る

Visual Studio Code

自分は普段から「Visual Studio Code(以下VSCode)」を使ってますが、MaciPadChromeBookなど環境が変わるたびにエディタが変わることにストレスを感じていました。

いつでもどこでもVSCodeを使いたい!!

Coder」というサービスで、そのストレスが解消しそうだったので試してみました。 

  • Coderとは?
  • 自分でホストする
    • AWSにインストール
    • ブラウザでアクセス
    • HTTPSに対応する
    • iPadでの使用感
  • おわりに
続きを読む

簡単・軽量・柔軟なモックサーバ を作る(gostub)

f:id:naitwo2:20190310021018p:plain

モックサーバ

「バックエンドが完成していなくて(API完成していない)、フロント側の開発・テストが進まない。」 よくある話だと思います。
そんな場合は、任意のレスポンスを静的に返すモックサーバを用意することがよくある解決策だと思います。

自分もモックサーバが必要になり、 ”gostub”というGolangのモックサーバライブラリを見つけました。
調べて使ってみると、要件にかなりマッチしていたので紹介します。

@moaible(もあいぶる🗿(@moaible)さん | Twitter)さん作。

github.com

求めていた要件

求めていた要件はこんな感じ。

  • 環境構築が簡単なこと(簡単)
  • 設定も簡単なこと(簡単)
  • 軽量であること(軽量)
  • ある程度細かなハンドリングを行えること(柔軟)
    • headerの内容に応じてレスポンスを変える等
続きを読む

Desktop PWAを試してみた

NEIGHBORSがPWAに対応

会社のチームで開発しているWEBサービスがPWAに対応しました。
WEBサービス名は「NEIGHBORS(ネイバーズ)」で、フォローしている人がサービス内で見た記事が分かるリーダーとなっています。

会社のチームメンバーや尊敬する人の見た記事が分かり、共通の話題が見つかったり興味の幅を広げることができるサービスです。

■NEIGHBORS(ネイバーズ)
https://neighbors.cc

よかったら登録して下さい。
自分のアカウントはこちら(↓)です。

neighbors.cc

  • NEIGHBORSがPWAに対応
  • PWA?
  • Desktop PWAを使ってみた
    • Desktop PWA利用手順
  • おわりに
続きを読む