Raspberry Piを買いに行く
久しぶりの平日休みで秋葉原へ行ってきた。
どれ位ぶりだろ?1、2年ぶりくらい?
昔は特に用も無いのに週末行ってたけど、最近は全然だった。
秋葉原に着いたが、おっさん過ぎて疲れたので喫茶店で休む。
この日秋葉原に来た目的は、 Raspberry Pi 3 Model B+
を買うため。
前の世代のRaspberry Piは持ってるけど、それには無線LANがついていない。
Raspberry Pi 3 Model B+
には、無線LANとBLEに対応しているので今回購入を決意。
ではなんで新しいRaspberry Piを買おうと思ったかというと、これにセンサーをつけて、ズグロン(ズグロシロハラインコ)の観察・健康管理をする装置を作ろうと思ったため。
これから夏に向かってどんどん暑くなっていくし、日中外に出ているとまあいろいろ心配だよね。
喫茶店で買うものに大体検討をつけたら、お店へGO。
秋月電子通商 秋葉原店にやってきた。
最初にお目当ての Raspberry Pi 3 Model B+
を手に取ったけど、これ単体ではあんまり出来ないのでいろいろ周辺部品も探す。
ブレッドボードやら、ジャンパワイヤー、電子部品類など、個々に揃えるのは面倒だし、最初は何が必要かあんまりわかっていないので、キット的なものはないかとお店をブラブラ。
そしたら、ラズパイマガジン 2019年2月4月号の部品セットを発見。
https://www.amazon.co.jp/dp/4296101862/ref=cm_sw_r_tw_dp_U_x_ccj6Cb9CBWJ5H
いろんなセンサー部品、抵抗、LED、ジャンパーワイヤー、ブレッドボード一式入ってる。
これ、ええやん。
センサーは、使いたかった温度センサー、温湿度センサーが入ってる!
雑誌はKindle版があったので、あとでポチることにした。
さて、一式買ったものは下記。
金額はこんな感じ。
品目 | 単価 | 数量 | 合計 |
---|---|---|---|
Raspberry Pi 3 Model B+ | ¥5,600 | 1 | ¥5,600 |
Raspberry Pi B+用ヒートシンクセット | ¥120 | 1 | ¥120 |
ラズパイマガジン 2019年2月4月号 部品セット | ¥5,200 | 1 | ¥5,200 |
小型クリップ付きコード 5色 45cm 10本入り | ¥350 | 1 | ¥350 |
TOSHIBA microSDHC EXCERIA 16GB 100MB/s | ¥1,150 | 1 | ¥1,150 |
バッファロー microSD→SD変換アダプター | ¥267 | 1 | ¥267 |
合計 | ¥12,687 |
さて、開封。
そのまんま入っているのね。
今日は一旦ここまで。
直近、次やることはこれかな。
- Raspberry PiにRaspbianをインストールする。
- 部品セットを開封し、各部品を確認する。
- とりあえずブレッドボードにLEDをぶっ刺して、Raspberry Piから点灯させてみる。
構内LANを挟む2つネットワークをIPsec拠点間接続し、片側からインターネットへ接続するネットワークの構築
図のようにネットワークがあるとする。ネットワークAは、LinuxルータAから構内LANへ接続されている。ネットワークBは、LinuxルータBから構内LANへ接続され、ルータ[192.168.20.1]によってインターネットに接続できる。ネットワークAからインターネットへ接続したい場合、LinuxルータA→LinuxルータB→ルータ→インターネットという経路をたどる。構内LANから直接ネットワークA、ネットワークBへの接続を許可していないとする。この場合、通常のルーティングの設定をしただけでは、Linuxルータ間のパケットはそのまま転送され、構内LANから通信内容を覗く事ができてしまう。そのため、構内LANに流れるLinuxルータ間の通信内容を暗号化する必要がある。そこで、IPsecによって拠点間接続VPNを構築する。
LinuxルータAにはDHCPサーバとDNSサーバの機能を加える。DNSサーバはネットワークBのルータへフォワーディングする。デフォルトゲートウェイは、LinuxルータBのLAN側[192.168.20.2]に設定する。
LinuxルータBは、デフォルトゲートウェイをルータ [192.168.20.1]に設定する。ネットワークBではルータでDHCPサーバとDNSサーバが稼働しているので、LinuxルータBでこれらのサービスを構築する必要はない。
LinuxルータのディストリビューションはCentOS 5.4。
ネットワークインターフェイスの設定
LinuxルータA
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR=00:00:00:00:00:00 ONBOOT=yes BROADCAST=192.168.100.255 IPADDR=192.168.100.1 NETMASK=255.255.255.0 NETWORK=192.168.100.0
# vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static HWADDR=00:00:00:00:00:00 ONBOOT=yes BROADCAST=192.168.10.255 IPADDR=192.168.10.1 NETMASK=255.255.255.0 NETWORK=192.168.10.0
LinuxルータB
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR=00:00:00:00:00:00 ONBOOT=yes BROADCAST=192.168.100.255 IPADDR=192.168.100.2 NETMASK=255.255.255.0 NETWORK=192.168.100.0
# vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static HWADDR=00:00:00:00:00:00 ONBOOT=yes BROADCAST=192.168.20.255 IPADDR=192.168.20.2 NETMASK=255.255.255.0 NETWORK=192.168.20.0
IPsec toolsのインストールと設定
IPsecを実装するには、IPsec接続を行う全てのLinuxルータにIPsec toolsのインストールが必要である。
IPsec toolsをインストールすることによって、setkeyとracoonがインストールされる。
setkeyは、カーネル内のIPsecのセキュリティポリシーデータベース(SPD)エントリの追加、設定を行う。racoonは、IKEキー管理デーモンで、自動鍵設定によるIPsec接続を行える。
IPsecの設定はIPsec設定ファイルを編集して行い、ネットワークインターフェイス起動時に自動的に接続が行われる。
# wget http://downloads.sourceforge.net/project/ipsec-tools/snapshots/0.8-alpha20090422/ipsec-tools-0.8-alpha20090422.tar.bz2?use_mirror=jaist
※最新版はココから
# tar xjvf ipsec-tools-0.8-alpha20090422.tar.bz2 # cd ipsec-tools-0.8-alpha20090422 # ./configure # make # make install
LinuxルータA
# vi /etc/sysconfig/network-scripts/ifcfg-ipsec0 TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.10.1 DSTGW=192.168.20.2 SRCNET=192.168.10.0/24 DSTNET=0.0.0.0/0 SRC=192.168.100.1 DST=192.168.100.2
LinuxルータB
# vi /etc/sysconfig/network-scripts/ifcfg-ipsec1 TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK SRCGW=192.168.20.2 DSTGW=192.168.10.1 SRCNET=0.0.0.0/0 DSTNET=192.168.10.0/24 SRC=192.168.100.2 DST=192.168.100.1
実ネットワークインターフェイスのように、IPsec接続用のifcfgファイルを設定する。ここでは、LinuxルータAの識別名をipsec0、LinuxルータBの識別名をipsec1と設定する。
IKE_METHOD=PSKによって事前共有鍵認証方法を使用する。SRCGWは、送信元Linuxルータの内部ネットワーク側IPアドレスを指定する。DSTGWは、宛先Linuxルータの内部ネットワーク側IPアドレスを指定する。SRCNETは、送信元ネットワークを指定する。DSTNETは、宛先ネットワークを指定する。LinuxルータAのDSTNETが0.0.0.0/0となっているのは、ネットワークAから、ネットワークBを経由して、インターネットへ接続するためである。0.0.0.0/0は全てのネットワークへという意味であり、インターネット向けの宛先IPアドレスは不定であるため、このように記述する。ここでもし、LinuxルータAのDSTNETを192.168.20.0/24と書いた場合、ネットワークAからネットワークBに接続できるが、インターネットには接続できない。これは、セキュリティポリシーデータベースには、「送信元が192.168.10.0/24で、宛先が192.168.20.0/24に一致するパケット」として登録されるからである。インターネット向けパケットは宛先IPアドレスが192.168.20.0/24に一致せず不定で、セキュリティポリシーデータベースには不定IPアドレスに対するルールが存在しないため、IPsecカプセル化が適用されない。SRCは、送信元Linuxルータの外部ネットワーク側IPアドレスを指定する。DSTは、宛先LINUXルータの外部ネットワーク側IPアドレスを指定する。
事前共有鍵ファイルを設定する。IPsec接続する2つのLinuxルータでこのファイ ルの内容は同一でなければならない。また、このファイルは読み取り、書き込みができるユーザをrootだけにする必要がある。
# vi /etc/sysconfig/network-scripts/keys-ipsec* IKE_PSK=testIKEPreSharedKey
*:IPsec識別名
# chmod 600 /etc/sysconfig/network-scripts/keys-ipsec*
Linuxルータのインターフェイス間をIPsecパケットが行来できるよう、IPフォワーディングをカーネルで有効にする必要がある。
# vi /etc/sysctl.conf net.ipv4.ip_forward = 0 ↓ net.ipv4.ip_forward = 1
# sysctl -p /etc/sysctl.conf
IKEフェーズ1にて、メインモードのみ使用する場合は以下を全てのLinuxルータに設定する。
# vi /etc/sysconfig/network-script/ifup-ipsec exchange_mode aggressive, main; ↓ exchange_mode main;
ルータにネットワークAの経路を追加
ルータのルーティングテーブルに192.168.10.0のネットワークへの経路を追加する必要がある。LinuxルータBをネクストホップとして追加する。この設定をしないと、インターネットから帰ってきたネットワークA宛のパケットをルータは転送することができず、ネットワークA上のクライアントは正常な通信を行うことができない。
IPsec接続の開始
IPsec接続を開始するには、Linuxルータを再起動するか、ifupコマンドでipsecデバイスを起動させるか、ネットワークをリスタートする。
ifupコマンド
# /sbin/ifup ipsec*
ネットワークリスタート
# /etc/rc.d/init.d/network restart
下記はまだ書きかけ。
iptablesの設定とかまだあるんだよな…。
あとAHとESPの有効化とか。
DNS,DHCP
参考サイト
- Red Hat Enterprise Linux 4: セキュリティガイド
IPsec ネットワーク間 (Network-to-Network) 設定
Product Documentation for Red Hat Enterprise Linux 8 - Red Hat Customer Portal - DHCPサーバー構築(dhcp) - CentOSで自宅サーバー構築
DHCPサーバー構築(dhcp) - CentOSで自宅サーバー構築 - DNSサーバー構築(BIND) - CentOSで自宅サーバー構築
http://centossrv.com/bind-centos5.shtml
またレーザでいろいろと…。
また実家に帰ってきたので、レーザ加工機でいろいろ遊んでみた。
ミクを妹に描いてもらいました。かわいいw
あとこんなのもできるのねぇ
桜の木でハンコをほってみた。
もう、ハンコ屋さんに頼まなくてもハンコ作れてしまう。。 。
あとこんなのも。
レーザの出力を弱くしてシール用紙の片層だけ剥ぐということもできちゃう。
まだまだレーザの可能性はありますな。