投稿

svgからwoff2へ変換するNode.js製「grunt-webfont」

fontcustomがエラーを吐くようになったので、 fontforgeを使った svgからwoff2へ変換する方法を探しているときの覚書。 環境: CentOS Stream 8, fontforge 20200314, Node.js v18.9.1 最近も更新されている下記Node.js(Grunt)製ツールを試してみた。 L2jLiga/grunt-webfonts: SVG to webfont converter for Grunt ドキュメントに従い依存関係のあるソフトのインストール # dnf install fontforge ttfautohint ttfautohintはリポジトリになかった。 そのまま進める。 grunt-webfontをインストールする。 gruntをglobalにインストール済みならgrunt-webfontだけでいい。 # su - node $ cd /path/to/project/ $ npm install grunt grunt-webfont --save-dev npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE   package: 'svg-pathdata@1.0.0', npm WARN EBADENGINE   required: { node: '0.10.*' }, npm WARN EBADENGINE   current: { node: 'v18.9.1', npm: '8.19.3' } npm WARN EBADENGINE } WARNINNGが出たけどとりあえず進める。 Gruntfile.jsを作る $ vi Gruntfile.js module.exports = function(grunt) {   grunt.loadNpmTasks('grunt-webfont');   grunt.initConfig ({     webfont: {       icons: {         src...

svgからウェブフォントwoff2に変換するNode.js製ツール

fontcustomがエラーで変換に失敗するようになったので代替コマンドを探しているときの覚書。 環境: CentOS Stream 8, Node.js v18.9.1 Node.jsを使うのが汎用的で良さそう。 tancredi/fantasticon: Icon font generation tool jaywcjlove/svgtofont: Read a set of SVG icons and ouput a TTF/EOT/WOFF/WOFF2/SVG font. シンプルそうなfantasticonを試す。 インストール。 $ npm install fantasticon --save-dev package.jsonにコマンドを書く。   "scripts": {     "font": "fantasticon ./fonts/svg --output ./fonts/icons --name icons --font-types woff2 woff --asset-types css html"   } 実行 $ npm run font 一部 iconmonstr でダウンロードしたsvgの変換が上手くいっていない。 変換には内部でfontforgeを使うツールがないか探すことにした。 【関連記事】 CentOS Stream 8 + Ruby + fontcustomをインストール 【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール

JpegからAVIFへ変換するためのコマンドラインツールSquoosh, sharp, cavif

WebPとAVIFの比較をしようとLinux向けの変換ツールを調査しているときの覚書。 環境: CentOS Stream 8, Node.js v14.18.2 -> v18.9.1 AVIFの対応状況 "avif" | Can I use... Support tables for HTML5, CSS3, etc Edge以外は対応している。 Node.jsをv18に変更 開発環境のNode.jsがv14だったので最新のv18にアップグレードする。 確認 # dnf module list nodejs v14からv18に変更 # dnf module reset nodejs # dnf module enable nodejs:18 # dnf --allowerasing distro-sync 確認 # node --version v18.9.1 Squoosh CLI Chrome teamが開発している画像圧縮ウェブツール「Squoosh 」をコマンドラインで使えるようにしたもの。 squoosh/cli at dev · GoogleChromeLabs/squoosh · GitHub Globalでインストール # npm i -g @squoosh/cli AVIFに変換してみる。 $ squoosh-cli --avif '{quality: 30}' key-visual.jpg TypeError: Failed to parse URL from /usr/local/lib/node_modules/@squoosh/cli/node_modules/@squoosh/lib/build/imagequant_node-a4aafbae.wasm エラーになった。 ウェブアプリ版のSquoosh でAVIF変換したら問題なく完了した。 Quality: 30 Effort: 4 ファイルサイズ比較 Jpeg: 281KB WebP: 70KB AVIF: 26KB Jpegの10分の1でWebPの半分なのにGoogle Chromeで表示して並べてみても違いが分からない。 とりあえずsquoosh-cliはアンインストール。 # npm uninstall -g @...

dnf updateしたらphp-pgsqlのエラー

dnf updateしたらエラーになったので調べた時の覚書。 環境: CentOS Stream 8, PHP 7.4.30 # dnf update Last metadata expiration check: 8:04:20 ago on Fri 21 Oct 2022 07:49:06 AM JST. Error:  Problem: package php-pgsql-7.4.30-1.module_el8.7.0+1190+d11b935a.x86_64 requires libpq.so.5(RHPG_9.6)(64bit), but none of the providers can be installed   - cannot install both libpq5-15.0-42PGDG.rhel8.x86_64 and libpq5-14.5-42PGDG.rhel8.x86_64   - package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.2-1.el8.x86_64   - package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.3-1.el8_4.x86_64   - package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.5-1.el8.x86_64   - cannot install the best update candidate for package php-pgsql-7.4.30-1.module_el8.7.0+1190+d11b935a.x86_64   - cannot install the best update candidate for package libpq5-14.5-42PGDG.rhel8.x86_64 (try to add '--allowerasing' to command line to replace conflictin...

ARPとルーティングテーブル

サイバーセキュリティの勉強をしているときの覚書。 環境: Windows 10, CentOS Stream 8 ARP(Address Resolution Protocol)とは? IPv4アドレスとMACアドレスを紐づけるプロトコル。 相手のMacアドレスが分からない場合、ARPリクエストをネットワークにブロードキャストするとMACアドレスを格納してARPリプライが返ってくる。 一度取得したIPv4とMACアドレスの関連情報をARPテーブルにキャッシュとして保存される。 Windowsの場合は15秒~30秒間キャッシュに保存する。 WindowsでキャッシュされたARPテーブルを表示するコマンド C:> arp -a CentOSでキャッシュされたARPテーブルを表示するコマンド # ip n 参考サイト Address Resolution Protocol - Wikipedia Address Resolution Protocol caching behavior - Windows Server | Microsoft Learn ARPとルーティングテーブル 通信するときはまずルーティングテーブルを見て、どの経路で通信すればいいか決める。 その後、ARPのキャッシュテーブルまたはリクエストを参照して、宛先のMACアドレスが決まる。 サイバーセキュリティとARP ネットワークを盗聴する場合は、IPv4アドレスとMACアドレスの関連を偽装する場合はあるため、怪しい動作するPCおよびルーターのARPテーブルの中身は保存しておく。 【関連記事】 ルーティングテーブルとnetstat, ipコマンド

共通鍵暗号アルゴリズムAES(Advanced Encryption Standard)

サイバーセキュリティの勉強をしているときの覚書。 AESとは? AES(Advanced Encryption Standard)は2001年にアメリカで定められた標準暗号。 特徴 共通鍵暗号方式 鍵長は128bit, 192bit, 256bitの3種類 (鍵長と処理速度は相関関係にあるため用途に応じて選択する) 無料で利用可 現在の主流(今のところどんな攻撃にも屈していない) 日本政府管轄プロジェクト「CRYPTREC」に電子政府推奨暗号リストとして登録されている。 参考サイト Advanced Encryption Standard - Wikipedia CRYPTREC - Wikipedia AESはアルゴリズムなので、この暗号化アルゴリズムを利用した実装がいろいろとある。 AESが使われている実装の例 一覧とリンク TLS/HTTPS通信など。参考:  Transport Layer Security - Wikipedia ZIP/ファイルの暗号化。参考:  ZIP (ファイルフォーマット) - Wikipedia WPA2/Wi-Fiの 標準暗号化プロトコル CCMP。参考:  Counter mode with Cipher-block chaining Message authentication code Protocol - Wikipedia AACS/Blue-ray Discの暗号化規格。参考:  Advanced Access Content System - Wikipedia 【関連記事】 Let's Encryptで無料SSLをCentOS7に設定(certbot)

ルーティングテーブルとnetstat, ipコマンド

サイバーセキュリティの勉強をしているときの覚書。 環境: Windows 10, CentOS Stream 8 ルーティングテーブルとは? パケットの宛先と次の転送先を記したネットワーク経路一覧。 同じ宛先が登録されている場合はネットマスク値が高い(長い)経路が優先される。 一般的な端末PCではルーターがデフォルトゲートウェイとして登録されているだけ。 VPNや仮想マシンを設定している場合はそのネットワーク用の宛先がルーティングテーブルに記載されている。 参考サイト ルーティングとは|ヤマハ ルーティングテーブルを確認するコマンド WindowsとMacでは「route -r」で確認できる。 netstatはネットワーク情報を表示するコマンド。-rはルーティングテーブルを表示するオプション。 C:> netstat -r CentOS8からはnetstat, ifconfigはipコマンドに統一された。 # ip route show  netstat - Wikipedia ipコマンドチートシート for Red Hat Enterprise Linux サイバーセキュリティとルーティングテーブル マルウェアに感染した場合やハッカーがネットワーク内を調査する際、このルーティングテーブルを書き換えることがある。 そのため、ディジタルフォレンジックス(セキュリティ証拠収集)の一つとしてルーティングテーブルの確認方法は知っておきたい。 デジタル・フォレンジック - Wikipedia 【関連記事】 WindowsノートPCにCentOS7をクリーンインストール

サイバーセキュリティ対策のSIEM、UEBA、SOARとは?

SIEM(シーム: Security Information and Event Management)を調査しているときの覚書。 SIEM(Security Information and Event Management)とは? サイバーセキュリティ対策向けに異常検知を目的とした統合ログモニタリングシステム。 ファイヤーウォール/サーバー/IT機器などからログを収集・分析して見える化する。 サイバー攻撃を早期に発見して対応することが可能になる。 ログ収集や異常検知の設定など運用面でのコストがネック。 参考サイト SIEM(シーム)とは?セキュリティの異常を自動検知する仕組み SIEMとは?仕組みや機能、メリット、導入のポイントを解説!|Joshisu Man(情シスマン) SIEMとは?セキュリティ対策におけるログ収集の重要性 | サイバーセキュリティ情報局 UEBA(User and Entity Behavior Analytics)とは? ユーザーや機器の異常動作を機械学習によって検知する機能。 SEIMと合わせて活用することで運用コストを下げる。 よって、SEIM+UEBAを次世代SEIMと呼ぶこともある。 参考サイト 「SIEM運用は難しい」を覆す次世代ソリューション「LogRhythm」とは? | 東京エレクトロンデバイス SOAR(Security Orchestration, Automation and Response)とは? セキュリティ運用の統合管理ソリューション。 様々な情報を集約、分析して発生したインシデントの管理や関係者への通知を自動化する。 IT機器を個別に監視するのではなく、セキュリティインフラ全体を統合管理することで、組織全体のセキュリティを強化する考え方。 SOARするためのモニタリング手段としてUEBA機能付きのSIEMが導入される感じ。 SOARは インシデント対応(Response)までを含む のが大きな違い。 参考サイト SOARとは?意味・定義 | ITトレンド用語 | NTTコミュニケーションズ SOARとは:セキュリティのオーケストレーションと自動化によるレスポンス | Splunk 【関連記事】 ファイヤーウォールの意味/次世代ファイアウォール(NGFW) OWASP ZAPでWordPressサイトをセキュ...

オフィスのネットワークが遅い(DNSサーバーからの応答が遅い)

最近ネットワークが遅いと感じることが多かったので調査したときの覚書。 オフィスのネットワーク環境はレンタルオフィスなので、施設提供のLANケーブルにオフィスルーターを接続している。 オフィスルーター: Aterm WX3000HP 1.問題の切り分け PCとオフィスルーターを再起動した後、下記確認する PCのネットワークドライバの更新情報 ルーターのファームウェアバージョン 同じLAN内からdigコマンドなどでDNS応答状況 DNS(名前解決)状況を調査 Windows Terminalからネットワーク環境を調査。 > ipconfig DNSサーバーはオフィスルーター(192.168.10.1)を参照している。 nslookupでレスポンスを見る > nslookup > google.com タイムアウトするか確認。 同じLAN内のLinux仮想マシンからはdigコマンドを実行する。 # dig google.com Google Public DNSに問い合わせる。 # dig @8.8.8.8 google.com 分かったこと 同じドメイン名でもタイミングによってはタイムアウトする。 GoogleとCloudflareのPublic DNSを指定してもタイムアウトする場合がある。 LAN上のどのPCから行っても同じ。 なぜだ? 施設のルーターでDNSパケットを制御しているのかもしれない。 2.Public DNSをオフィスルーターに設定 DHCPから提供されたDNSサーバー(施設ネットワークの出口になっているルーター)ではなくPublic DNSに変更してみる。 GoogleとCloudflareのPublic DNSが有名。 今回はCloudflareを設定してみた。 Public DNS  |  Google Developers Set up 1.1.1.1 on a router · Cloudflare 1.1.1.1 docs 1.1.1.1 - Wikipedia 3.WindowsのDNSサーバーを直接変更 設定 → ネットワーク → アダプターのオプションを変更する からDNSサーバーを指定する 優先DNSサーバー: 1.1.1.1 代替DNSサーバー: 1.0.0.1 施設ルーターの問題ならオフィスル...

PHPでTwilio API SDKを叩いてSMS送信を試す

 Twilio APIをPHPから叩いているときの覚書。 環境: PHP 7.4.30, Twilio SDK 6.42.0 公式サイト GitHub - twilio/twilio-php: A PHP library for communicating with the Twilio REST API and generating TwiML. PHP Helper library | Twilio 1.インストール composerを使ってインストールする。 $ composer require twilio/sdk 2.SMS送信サンプル サンプルを実行してみる。 <?php $sid = "ACXXXXXX"; // Your Account SID from www.twilio.com/console $token = "YYYYYY"; // Your Auth Token from www.twilio.com/console $client = new Twilio\Rest\Client($sid, $token); $message = $client->messages->create(   '+819012345678', // Text this number   [     'from' => '+12223334444', // From a valid Twilio number     'body' => "テスト\n送信",   ] ); print $message->sid; print $message->status;  簡単に送れた。 MessageInstanceを返すので詳細はソースコードを読んだ方が分かりやすい。 送信ログはTwilio Consoleの電話番号を選択したMessages logでも確認できる。 3.Twilio Lookup APIを試す Lookup APIは電話番号が正しい形式かキャリア情報を取得できる。 参考サイト Twilio Lookup API – SMSを送信する前に電話番号の詳細情報を取得する #twilio | ...