当サイトではIT・Web系技術、メタバースなどの情報提供を目的とします。
個人的な技術ブログなども投稿する予定です。

【RaspberryPi】LAN内全部広告ブロックできるPi-holeを構築する

みなさんこんにちは、ゆーろんです。 今回はLAN全体を広告ブロックできるDNSサーバであるPi-holeをRaspberrypi zero 2 Wを用いて構築してみましたので、その手順を紹介したいと思います。 これによりサイトに表示されるバナー広告などが表示されなくなることが見込めます。 なお残念ながらYoutubeの広告はアルゴリズムが特殊なため広告ブロックはそのままではされません。 とは言っても通常のサイトは快適に見れるようになるのでLAN自体で広告ブロックをするのはよい選択だと思います。 クライアントのブラウザに個別に広告ブロックの拡張機能(u-block originなど)を入れる必要もなくなります。 今回の記事では主に構築方法と簡単な設定方法を紹介していきたいと思います。 目次 構築環境 Pi-holeのインストール DNSの指定 WEB GUIの設定 設定上の注意点 DMZにPiHoleを設定している場合 ローカルDNSを設定する 構築環境 筆者の構築では以下機材を用意しました。 Raspberry Pi zero 2 W microSD Card 16GB以上 USBtype-b LAN コネクタ Raspberry Pi zero 2 wケース 電源ケーブル USBtype-b LAN コネクタ を用意した理由は有線経由でLANに接続するためです。 WIFI経由でも接続できますが、コリジョンがないため有線の方が安定しやすいと言えます。 Pi-holeのインストール Pi-holeは、Raspberry Pi OS liteに追加でインストールする形になります。 Lite版はGUIがありませんので、基本的はコマンド操作になります。 他のPCからSSHで遠隔接続すると楽に操作できます。 ゆーろん Raspberry Pi OS liteに設定するユーザ名は「Pihole」以外にしてね~。さもないと競合しちゃうよ! Raspberry Pi ImagerでRaspberry Pi OS liteをmicroSDカードに書き込んで起動する形になります。 筆者の場合設定は以下のようにしました。 microSDカードにOSをインストールできたら、Raspberry Pi zero 2 wにセットしてLANに接続します。 このとき、インストールした際の設定でIPアドレスを固定化しておくと接続が楽です。 固定化を忘れた場合はWEBからルータ設定に入ってクライアントリストを確認すると良いでしょう。

【AWS】LightSailへのWebアクセスをCloudFrontリクエスト以外を無効化する

こんにちは。ゆーろんです。 最近このWEBサイトへのアクセスログを見ると、CloudFront経由ではなく直接HTTPリクエストを送って見られることが多いです。 ログを見るとKali付属のツールを使ってスキャニングを行いセキュリティホールを探すようなリクエストばかりでした。 特に海外からのスキャニングが多い…。 セキュリティ強度を上げるため、HTTP/HTTPSリクエストはCloudFrontのみから受け付けるようにすることにしました。 というわけでその方法をメモしていきます。 目次 CloudFrontのみのアクセスにする仕組み 環境 実装手順 CloudFrontの設定 Webサーバの設定 動作確認 CloudFrontのみのアクセスにする仕組み 仕組みとしては以下の通りです。 CloudFrontからオリジンへリクエストを送る際に秘密の独自HTTPヘッダを付与 オリジン側では独自HTTPヘッダが付いていればCloudFrontからのリクエストと判断し、もし付いていなければ403を返してアクセス拒否する 結構、仕組みはシンプルです。 CloudFrontの機能で「カスタムヘッダーの追加」という設定項目で自由にヘッダーを付けることができるので使用します。 環境 環境は以下の通りです。 CDN: CloudFront Webサーバ: Apache Apache以外も大体似た感じに設定できると思うので適宜読み替えてください。 実装手順 CloudFrontの設定 CroudFrontのすでに展開しているディストリビューションを編集し以下画像のように任意のヘッダと任意の文字列を追加します。 なお文字列は推測されにくい文字列を設定することをお勧めします。 これで設定を反映したらステータスがDeployedになるまで待ちます。 Webサーバの設定 Lightsailの場合は/etc/apache2/apache2.confがApacheの設定ファイルになります。 設定ファイルに以下のように追加(<と>はとってください)。 <Directory /opt/bitnami/wordpress> Require all granted AllowOverride All SetEnvIf <任意のヘッダ名> \"^<任意の文字列>\" CDNValid Order deny,allow Deny from all Allow from env=CDNValid </Directory> 動作確認 curlコマンドでオリジンへ直接アクセスし以下のようにレスポンスがあれば成功。 curl <オリジンのIPアドレス>/wordpress <!DOCTYPE HTML> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don\'t have permission to access this resource.</p> </body></html> これでHTTPリクエストでオリジンへ直接アクセスすることを禁止にできました。

Proxmox VEのインストールと推奨設定

こんにちは。ゆーろんです。 先日、学習用/実験用に仮想化基盤ホスト用の物理サーバを用意しました。 仮想化基盤はVMware ESXIかProxmox VEのどちらかをインストールしようと思っていたが、 コチラの記事からわかる通り、VMware製品の販売/配布の終了が決まったこと、Proxmox VEは無料ですべての機能が使える特徴があることからProxmox VEを採用した。 というわけで、今回はProxMox VEをホストマシンにインストールする手順と初期設定を紹介します。 目次 Proxmox VEとは 構築環境 インストール手順 推奨する初期設定 参照リポジトリの変更 ロケールの日本語化 IPv6の無効化 rootでのSSH制限 WEB GUIのサブスクリプションダイアログの無効化 まとめ Proxmox VEとは Proxmox VE(Proxmox Virtual Environment)はLinuxのDebianベースで開発されている仮想化基盤を構築するためのOSS仮想化プラットフォーム。 仮想化の構築はKVMとLXCに基づき、仮想マシン(VM)やコンテナを作成、管理、監視するための機能を提供している。 また、WebのUIを備えているため、仮想マシンの作成、スナップショット、復元、クローン、移行などが容易に行える。 Proxmox Virtual Environment - Open-Source Server Virtualization Platform Proxmox Proxmox VE is an open-source server virtualization management platform. 特徴は以下の通り。

Ubuntu上にOpenVPNサーバを構築する

こんにちはゆーろんです。 今回はAWSのEC2に入れたUbuntuサーバにOpenVPNサーバを構築しようと思います。 個人的には外部のLANからインターネットアクセスした場合ののプロキシサーバとして利用するために設定を行いました。 ゆーろん 頑張って書いたのでぜひご覧ください! 目次 OpenVPNとは OpenVPNの設定手順 OpenVPNとeasy-rsaのインストール ルート認証局の作成 認証局/DHパラメータの作成 サーバ用の秘密鍵/証明書の作成 クライアント用秘密鍵/証明書の作成 OpenVPNの設定 パケット転送の有効化 VPNクライアントに固定IPを割り当てる OpenVPNの起動 VPNクライアントの通信をOpenVPNサーバに経由させる OpenVPNクライアントの設定 参考記事 OpenVPNとは OpenVPNはGPL Lisenceで公開されているOSSのインターネットVPNのこと。 具体的にはSSL/TLSプロトコルを利用したSSL VPNといえます。 特徴は以下の通りです。 堅牢なセキュリティと安全性 設定がテキストベース Windows, Unix問わず、様々なOSに対応している VPNが低コストで実現できるため、個人や小規模事業者がVPNを構築する際の選択肢の1つとなっています。 OpenVPNとは | OpenVPN.JP OpenVPN.JP | OpenVPN日本語情報サイト

【WIFI脆弱性調査ツール】Pwnagotchiの製作

お久しぶりです。ゆーろんです。 今回はpwnagotchというWIFIに関する脆弱性調査ガシェットを紹介いたします。 アスキーアートで表現された顔文字が特徴なかわいらしい電子ペットです。 目次 Pwnagotchiとは 製作 材料 構築 まとめ Pwnagotchiとは 「Pwnagotchi(ポーナゴッチ)」はWi-Fiの脆弱性を突いてその情報を収集する電子ペットキット。 具体的にはWPA, WPA2の4Wayハンドシェイク、アソシエーションを傍受しその情報を集めるデバイスです。 これはKrackと呼ばれる脆弱性に関する情報を集めているのに等しいです。 特徴としてWi-Fiを探査する際に深層強化学習アルゴリズムを用いて行われることがあります。 なおこのガジェットはセキュリティの勉強のために設計されているため、WIFIの攻撃を直接できない設計になっています。 Pwnagotchi - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning. 製作 筆者はAmazonとスイッチサイエンスで材料をそろえました。 材料費は1万円以内程度でした。 なお2022年現在、入手できる電子ペーパディスプレイWaveshareがV4.0となっていることが多いです。 このバージョンは公式ファームウェアがサポートしていないため、対応させる方法に関して後ほど紹介します。 材料 最低限の材料は以下の通り。 Raspberry pi zero w(wh) Waveshare 2.13inch 電子ペーパディスプレイ MicroSD (最低8GB) 持ち運び用のモバイルバッテリなどの電源 オプショナルな材料は以下の通り。 Raspberry pi zeroのケース Raspberry pi zero用バッテリ 構築

【Kali Linux対応】Monitorモード対応無線アダプタ AWUS036ACUの紹介

こんにちはゆーろんです。 先日、Amazonにて台湾の企業であるAlfa Networkの提供するAWU036シリーズのAWUS036ACUを購入しました。 このデバイスはWIFIのMonitor Modeが対応しているようではありますが、実際の動作報告がネット上で少ないため今回は動作報告とレビューをしたいと思います。 なお、結論から言うとはKali Linux 2023においてMonitor Modeに対応していることが実際に確認できました。 目次 Alfa AWUS036ACU 検証環境 Monitorモードの使用確認 まとめ Alfa AWUS036ACU Alfa AWUS036ACUはAlfa社が出しているWifiアダプタです。 ALfa社の提供するWIFIアダプタで有名なものにはAWUS036ACHなどがあります。 なおAWUS036ACUのスペックは以下の通りです。 パラメータ 値 WIFI対応規格 IEEE 802.11(b,g,n,ac) 周波数帯 2.4GHz(最大 300Mbs), 5.0GHz(最大 867Mbps) セキュリティ対応規格 WEP, WPA, WPA2, WPA3 公式の対応デバイス Windows, MaCOS Error CODE: 400 MESSAGE: Unable to retrieve content from the URL. Error CODE: 400 MESSAGE: Unable to retrieve content from the URL. 使用されているほとんどのWIFIは未だにIEEE802.11(b,g,n,ac)が多いので通常の検証には十分なデバイスだと思います。 なお、関連製品のAWUS036ACHはIEEE802.11aをこれに加えて対応しています。

AWS LightSailのApacheログをS3に転送する

こんにちは。ゆーろんです。 今回はAWS LightSailのWordPreess構成におけるApacheのログをS3に転送する方法を1つを紹介します。 目次 LightSailのログをS3に転送する方法 今回の目的 設定手順 Apacheのアクセスログを日付ベースで作成させる AWSにてS3転送用のIAMユーザを作成する aws cliにS3転送用IAMユーザ情報を登録する 任意のフォルダにShellScriptを作成する CrontabにShellScriptを登録する LightSailのログをS3に転送する方法 LightSailのログをS3に転送する方法はいくつかあります。 私の知る限りの具体例を2つ出してみます。 CloudWatch Agentを利用してCloudWatch logsにログ転送後Lambda+EventBridgeを用いてS3に転送 aws cliを利用したS3転送用のShellScriptを用意してCronやSystem-timerで回す 1の手法の特徴はログの様子をCloudWatchで観測できる点です。 ただ今回の場合、インスタンスはLightSailですから、AWSリソースも多く使用する必要があること、目的がS3に送ることなのに関して構成が回りくどいことから不採用にします。 2の手法はログをaws cli経由でS3に転送するといった単純なものです。 設定もS3転送用のIAMユーザの作成、aws cliのインストールやShellScriptの用意と定期実行系への登録で済みます。以上のことからこの手法を今回は採用します。 今回の目的 Apacheのaccess_logを日付毎に取得/生成し、それをS3に転送することを目的とします。 設定手順 Apacheのアクセスログを日付ベースで作成させる デフォルトではApacheのログはaccess_logに書き続けられます。 そのため日毎のaccess_log.日付などを生成しそこにログを書いてもらう必要があります。 LightSailのWordPress構成の場合Bitnami環境で構築されています。 設定ファイルは/opt/bitnami/apache/conf/httpd.confとなります。 このファイルをviやvimで開いてもらってCustomLog “logs/access_log” commmonの記述部分を以下のように変更します。 CustomLog "|/opt/bitnami/apache/bin/rotatelogs /opt/bitnami/apache/logs/access_log-%Y%m%d 864000 540" combined 上記記述はApacheの機能でログをローテーションさせています。 具体的には「access_log-20220314のようにログファイルを1日(864000秒)に1回、UTC+9時間(540分)のオフセットでcombined(commonにリファラやagent情報を含める)モードで作成/ログを保存する」という記述になります。 設定を保存後、以下コマンドでapacheを再起動します。 sudo /opt/bitnami/ctlscript.sh restart apache AWSにてS3転送用のIAMユーザを作成する AWS Console等でS3転送用のIAMユーザを作成します。 与える権限はS3に書き込みができるような権限(S3FullAccessなど)を与えます。 またIAMユーザ生成の際に作成したアクセスキー、シークレットキーはメモしておきます。 aws cliにS3転送用IAMユーザ情報を登録する Lightsailのbitnami環境ではaws cliはすでにインストールされています。 以下コマンドを入力してaws cliにS3転送用IAMユーザ情報を登録します。 aws configure その後、コンソールに表示される情報に従って、アクセスキー、シークレットキー、AWSのリージョン情報(例: ap-northeast-1)、デフォルトの保存形式(.txt, .logなど)を登録します。 任意のフォルダにShellScriptを作成する 任意のフォルダにtouchコマンド等でShellScriptを作成します。今の回例では“send_accesslog_s3.sh“と作成しました。 以下に記述例を示します。

Vagrant+VirtualBoxで仮想サーバ構築②Zabbixサーバ編

こんにちは。ゆーろんです。 今回はVagrant+VirtualBoxで監視ツールであるZabbixサーバ(Manager)と監視対象のZabbixエージェント(監視対象サーバ)をローカルで立ててみましたので、手順を紹介します。 目次 説明 VirtualBoxとは Vagrantとは AlmaLinuxについて Zabbixについて 環境 環境構築 Vagrant+VirtualBoxの設定 Zabbix Mannagerに対する設定 ブラウザからZabbixの設定 あとがき 説明 初めに今回の使用技術とAlmaLinuxに関して説明します。 VirtualBoxとは ホスト型の仮想化ソフトウェア。 Vagrantとは 一言でいうと仮想マシンなどを簡単に構築/操作するためのソフトウェア。 VirtualBoxやVMwareを直接操作せずともエージェントとして操作できる。 ちなみにTerraformと同じHashiCorp製。 Vagrant by HashiCorp Vagrant by HashiCorp AlmaLinuxについて RHELのクローン。 サーバ用Linuxの事実上の標準だったCentOSの開発終了に伴い、AlmaLinuxまたはRockyLinuxに移行するケースが多い模様。

Vagrant+VirtualBoxで仮想サーバ構築①Webサーバ編

こんにちは、ゆーろんです。 今回はVagrant+VirtualBoxでWebサーバをローカルで建ててみますので、手順をまとめます。 目次 説明 VirtualBoxとは Vagrantとは AlmaLinuxについて 環境 構築手順 Vagrant+VirtualBoxの設定 AlmaLinuxの設定 おまけ 説明 初めに今回の使用技術とAlmaLinuxに関して説明します。 VirtualBoxとは ホスト型の仮想化ソフトウェア。 Vagrantとは 一言でいうと仮想マシンなどを簡単に構築/操作するためのソフトウェア。 VirtualBoxやVMwareを直接操作せずともエージェントとして操作できる。 ちなみにTerraformと同じHashiCorp製。 Vagrant by HashiCorp Vagrant by HashiCorp AlmaLinuxについて RHELのクローン。 サーバ用Linuxの事実上の標準だったCentOSの開発終了に伴い、AlmaLinuxまたはRockyLinuxに移行するケースが多い模様。