それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

2023-03-01から1ヶ月間の記事一覧

vim でターミナルを表示する

vim

vim の画面分割でターミナルを使う。 quickrun が思うように動かなくて代替案を探していた。 知らなかった。Vimの画面分割でターミナルを表示することができる。 :terminal vs code でターミナルを表示できてIDEって便利だなと思ってたら、vim を使えば同じ…

vim quickrun を設定する

vim

久しぶりに、SSH経由で、シェルスクリプトを書いていると、vim quickrun などvim関連の設定が壊れていることに気づいた。 quickrun があると、さくっとあれこれできるので気に入っていたが、どこかのタイミングで動かなくなってて、vs code などもあるし、良…

dmsetup で lvm を取り外す

dmsetup コマンドを使って、lvm 関連のデバイスを除去する。 sudo dmsetup remove vg.main-root sudo dmsetup remove vg.main-swap これは、次のコマンドでInActiveにするのと同じ作用を齎すらしい。 sudo vgchange -a n vg.main 再起動まえにリロードするな…

php で 自己署名CAを使って証明書certificateを作成する例。

php

sample for generate certificate php で certificate 作成する例。 証明書作成の手順 発行人の秘密鍵の作成 発行人の証明書の作成(自己署名・署名リクエスト) 被発行人の秘密鍵の作成 被発行人の証明書の作成(自己署名・署名リクエスト) 発行人が署名リ…

市販品のUSB-Wifi ドングルを使って5GHzのAPをつくる

USB-Wifi ドングルを使って5GHzのAPをつくる USBのWifiドングルを使ってアクセス・ポイントを構成できないのかとずっと疑問に思っていた。色々と調べているとMediatekのチップでLinuxからAPになれることがわかった。 また、5Ghzでアクセス・ポイントを構成…

curl って telnet 出来たのか。

curl って telnet 出来たのか。 curl telnet://www.google.com:80 GET / HTTP/1.1 Host: www.google.com telnet コマンドをインストールしなくても、curlさえあればtelnetができる。 最近はtelnetコマンドをインストールしなくちゃいけないのだが、インスト…

lxd のストレージ・プールbtrfsに透過圧縮(zstd)を有効にする。

btrfs で透過圧縮ができる。 btrfs はCowで透過圧縮をサポートしている。書き込み量が少なければSSDの寿命にも優しいだろう。 lxd のストレージにbtrfs を採用したのだが、透過圧縮はオフになっている。どうせなら圧縮しておこう。 現在の設定の確認 現在の…

tar から名前を指定して取り出す。

tar から指定ファイルの取り出し tar xvf archive.tar home/takuya/.config 名前の指定 tar xvf archive.tar なまえ フォルダを指定すると、カレントディレクトリにフォルダが作成されて取り出される。 名前の取り出し 名前の一覧を見るには、 tar tv archiv…

mirakurun の b25テストが古いのかもしれないので、最新版のビルドに変えた。

mirakurun(docker)に同梱されている arib-b25-stream-test が古い どれくらい古いのかというと、6年前にnpm に出されたままだ。 しかもnpmのくせに、C言語をmake install するだけのパッケージである。npmにあがってるので、TSを期待して探してたら完全にma…

puppeteer でキャッシュフォルダのエラー

puppeteer で自動実行してたら、ずっとエラーになるのでおかしいなと思って調べた。 自分の環境では動くけどサーバーで自動実行したら動かない。 throw new Error(`Could not find Chromium (rev. ${this.puppeteer.browserRevision}). This can occur if ei…

rclone でSFTPに接続できない。

rclone で sftpに接続しようとしたらエラーになる。 NewFs: couldn't connect SSH: ssh: handshake failed: ssh: unable to authenticate, 原因がわからずパニックになるが、sshはRSA鍵をデフォルトで無効化したことを思い出した。多分これだろうと予想を立…

apt-cacher をnginxの後ろに置こうとしてハマる

apt-cacher を443 でnginxの後ろに置こうとした。 動かない。 ログを見た。 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:443 HTTP/1.1" 400 166 "-" "-" 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:…

ubuntuのaptで入れたsslhで細かい設定を行う。

ubuntu の apt で入れた sslh が微妙だった件。 ubuntu の apt で入れた sslh にいくつか問題があった。どのようにめんどくさいかというと、設定の追加がほぼ不可能なのだ。 /etc/init.d/sslh/ をベースにしていて、 init.dが/etc/default/sslh を sourceし…

プロセス管理でプロセスグループをkillする

プロセスグループをKILLしたい。 プロセスからfork したプロセスから forkしたプロセス、子プロセス・孫プロセスを除去したい。 プロセスグループの確認 ps -ejH で PGIDとSIDを確認する ps -ejH | PID PGID SID TTY TIME CMD 19666 19666 19666 ? 00:00:00 …

openWrtのFirewallにホットプラグする。

OpenWrtはホットプラグで「〇〇したとき」に任意のスクリプトを実行できる。 interface(iface)で、接続時に〇〇するとかできる。 Firewallが追加されたときに、なにかしたいと思ったが、公式サイトに記述がない。 イベントを調べた。 mkdir /etc/hotplug.d/f…

curlが404でif文を判定する。exit code を httpステータスに従わせる。

curlは 接続に成功したら exit code == 0 である。 接続に成功したら、404・500でも 結果は 0 になる。 curl -s http://example.tld ; echo $? httpステータスコードを検証する 接続に成功し、HTTP取得に成功したときだけ何かをしたい。 curl --fail -…

ファイルを空にするlinuxコマンド

ファイルを空っぽにしたい。 dhcp leases とか log とかファイルを空っぽにしたい事があると思います。 rm && touch 単純に考えると、rm して touch ですが。パーミッションが初期化されるので面倒です。 rm fileA && touch fileA 空文字を書き出す。(リダ…

Let'Encrypt発行証明書を使って中間CAを作るとどうなるのか。

Let'Encrypt発行の証明書を使って中間CAを作るとどうなるのか。 Let'Encrypt発行の証明書は、次の用途に使える。 openssl x509 -purpose -noout < cert.pem Certificate purposes: SSL client : Yes SSL client CA : No SSL server : Yes SSL server CA : No…

TLS上で通信するプロコル選択ALPNとは

tls

ALPNとはなんなのか ALPN=Application-Layer Protocol Negotiation アプリケーション側からのプロトコル要求です。 nginx では、これをサポートする HTTPサーバーがALPNで応答しているか確認する echo | openssl s_client -alpn h2 -connect 192.168.1.1:443…

OpenWrtでSSLHをしてHTTPS/TLSを443共有する

OpenWrtでSSLHをしてHTTPS/TLSを443共有する TCP443ポートをSSLHで再利用する。OpenWrtで行う。 インストール opkg install sslh uci show sslh TLS(https)/SSHLの転送先 uci set sslh.default.ssh='10.1.1.1:22' uci set sslh.default.tls='10.1.1.1:443' u…

sslhでSNI認識してサーバを振り分ける。(apln 有無)

sslh にはSNI機能があった nginx で捌いても良いんですが、sslhはnginxより設定がシンプルだ。 443ポートを直接リッスンするならsslhでリッスンして各種ポートに透過プロキシしたほうが再利用性が高くて良い。 443 ポートで、SNIで接続先を選定 特定のホスト…

ポリシールーティング GWが複数時に、条件マッチで経路を変える。

特定の条件だけ経路を変えたい。 たとえば、通常のルーティングはすでにあるとして、特定PC(業務用)だけ経路を変えたい。 ルーティングはテーブルで 通常のルーティングは、ルーティングテーブルで行われる。ルーティングを書けばいい 特定のパケットだけG…

CAを作る(openssl.cnf )中間認証局を作る、サーバー証明書を作る。ローカルドメインをHTTPS化する。

CAを作る(openssl.cnf ) MyCAという名前でRoot CA を作る。 mkdir MyCA cd MyCA 必要なディレクトリを作る。 mkdir ./newcerts mkdir ./requests touch index.txt echo 00 > serial echo 00 > crlnumber openssl.cnf を作る。 /etc/ssl/openssl.cnf から必要…

openssl でオレオレ証明書(自己署名証明書)を作りCAを作り、他の証明書リクエストに署名する。

ネットを探してても時間が浪費するので、よく使いそうな機能をまとめておく オレオレ証明書を作る。 この記事に書いたこと オレオレ証明書を作る オレオレ証明書でAliceの証明書を発行する オレオレ証明書で認証基盤(認証局機能)を作る オレオレ認証局でAl…

AppleのフォントをWindowsにインストール

プラグインテーマがmacOS用のアイコンを要求する Joplin のmacOS theme が macOSのアイコンを要求する。 このテーマファイルをいれたらアイコンがすべて豆腐になった。なんで豆腐?理由が知りたくて調べた。アイコンが豆腐の原因はフォントが不足でした。フ…

手動でインストールしたと設定されました。を戻す。

debian/ubuntu で、インストールを手動マークされる apt install をすると最初から入っていた。とかよくある 手動マークされた 次のように、「手動でインストールされた」(set to manually installed.)とメッセージが出てくる。 bsd-mailx は手動でインス…

機密passwordを安全に保存する。コマンドで使う。保存する。keyringコマンド

開発用パスワード・キーの管理をしたい env.txt だとか .git/config とか .gitconfig とか、パスワードとAPIキーが散らばる。どこかに保存したい。 keyring コマンドで管理する。 linux には keyring コマンドがある。これを使うと機密な文字列をマスターパ…

Null合体演算子(Null Coalescing)と三項演算子の短縮形(Short-ternary )をまとめておく。

php

Null合体演算子(Null Coalescing)と三項演算子の短縮形(Short-ternary )を使ってパニクったので整理。 この値を知りたい。 値 比較 結果 unset($a) $a[0] ?? null NULL $a = null $a[0] ?? null NULL $a = $a[0] ?? null NULL $a = ['x'] $a[0] ?? null '…

ヌーラボ・バックログのAPIライブラリを作った

ヌーラボ・バックログのAPIにアクセスしたかった。 Nulabのドキュメントをみていて、BacklogのAPIライブラリを探したのですが。PHPでサクッと使えそうなのがなかった。 https://developer.nulab.com/ja/docs/backlog/libraries/#%E3%83%A9%E3%82%A4%E3%83%96…

php の foreach で配列の展開までいっきにやる。list と foreach をまとめて書く。

php

ふと、他人の書いたPHPコードgithub で眺めていると、次のような記述に遭遇した。 list() と foreach で配列を変数に展開する。