続:ipsetによるufwブロックの効率化スクリプト。

このスクリプトのver.2といったところです。

#!/bin/bash

# セット名の定義
SET_NAME="ufw-blocklist"
SAVE_FILE="/etc/ufw/ipsets.save"

# 1. root権限チェック
if [[ $EUID -ne 0 ]]; then
   echo "エラー: このスクリプトは sudo または root 権限で実行してください。"
   exit 1
fi

# 保存用関数 (変更があった場合のみ呼び出し)
confirm_and_save() {
    echo "------------------------------------------"
    read -p "変更をファイルに保存しますか? ($SAVE_FILE) (y/n): " confirm
    if [[ "$confirm" =~ ^[Yy]$ ]]; then
        ipset save "$SET_NAME" -f "$SAVE_FILE"
        echo "保存完了しました。"
    else
        echo "保存をスキップしました。"
    fi
}

# ipsetが存在しない場合に作成
if ! ipset list "$SET_NAME" > /dev/null 2>&1; then
    echo "情報: $SET_NAME が見つからないため新規作成します。"
    ipset create "$SET_NAME" hash:net
fi

while true; do
    echo "=========================================="
    echo " ipset 管理メニュー ($SET_NAME)"
    echo "=========================================="
    echo "1) ネットワーク帯/IP を追加 (例: 192.0.2.0/24 203.0.113.5)"
    echo "2) ネットワーク帯/IP を削除"
    echo "3) 現在のリストを表示 (list)"
    echo "q) 終了"
    echo "------------------------------------------"
    read -p "番号を選択してください: " choice

    case $choice in
        1)
            echo "【追加モード】追加したいNW帯を入力してください(空エンターでメニューに戻る)"
            echo "例: 203.0.113.0/24 198.51.100.0/24"
            changed=false
            while true; do
                read -p "追加対象: " targets
                [ -z "$targets" ] && break
                
                for target in $targets; do
                    if ipset add "$SET_NAME" "$target" 2>/dev/null; then
                        echo "  [成功] $target を追加しました。"
                        changed=true
                    else
                        echo "  [失敗] $target は既にあるか、形式が不正です。"
                    fi
                done
            done
            [ "$changed" = true ] && confirm_and_save
            ;;
        2)
            echo "【削除モード】削除したいNW帯を入力してください(空エンターでメニューに戻る)"
            changed=false
            while true; do
                read -p "削除対象: " targets
                [ -z "$targets" ] && break
                
                for target in $targets; do
                    if ipset del "$SET_NAME" "$target" 2>/dev/null; then
                        echo "  [成功] $target を削除しました。"
                        changed=true
                    else
                        echo "  [失敗] $target が見つからないか、形式が不正です。"
                    fi
                done
            done
            [ "$changed" = true ] && confirm_and_save
            ;;
        3)
            echo "--- 現在の登録内容 ---"
            ipset list "$SET_NAME" | grep -A 100 "Members:"
            ;;
        q)
            echo "終了します。"
            exit 0
            ;;
        *)
            echo "無効な選択です。"
            ;;
    esac
    echo ""
done

試作版との違いは

  1. 連続入力に対応。ASNが持つNWを連続で断つことができます。
  2. 既にブロックされているNW/IPアドレスをチェックする機能を追加。

まだ詰められる感じなのでもう少し続けます。

弁当、バリエーションの広がり。

ランチバッグを買えた変化として、「より弁当の盛りを考えよう」思うようになりました。

そこで、持て余していた弁当箱に声をかけました。

この二段弁当箱はサイズ感も高さも申し分なしだったため、

  • 豚丼
  • 卵焼き(カレー風味)
  • 焼き豆腐
  • ピーマン焼き浸し
  • サツマイモ煮付け

と、ちょっとした駅弁並みに盛ることができました。

この成功体験があり、その翌日は

  • 焼き鳥丼
  • 卵焼き(カレー風味)
  • 鶏とブロッコリー炒め
  • ピーマン焼き浸し

それぞれ、鶏団子の味噌汁と、温まりボリュームあるものに。

興味が続くうちはこのスタイルを続けよう思いました。

お茶とお茶菓子。

東京駅にマホウドコロができたという話を聞き、早速行ってみました。

9と3/4ホームが東京駅にもできているというのが少し面白く。

ここでのお目当ては

ホグワーツ各寮をイメージしたお茶。ハッフルパフは既にいただいていたので残り3寮がようやく揃ったという形です。

そして、後日、お茶菓子を追加。

1/6フィギュアがそのまま背景になる程度の大きさ塗料なので、食べ害があります。

休日の弁当作り。

土曜日、たまにはということで弁当を作ってのお出かけ。

時間に余裕があるので、しっかりと卵を巻きます。

スープジャーに詰める味噌汁は

  • しめじ
  • 豆腐
  • ネギ

さらに、母が勧めるおいしいお味噌。

こうしてできあがって広げたのがこちらです。ご飯は牡蠣の甘露煮を混ぜたもの。缶詰なので食あたりのリスクを軽減させました。

結果として:

  • 暖かい汁物付きのご飯を
  • お気に入りの環境で食べる

いい経験となりました。

鰺と蛸。

午後休を利用して、久しぶりに巣鴨の定食屋を訪れました。

注文したのは

鰺のたたき定食と

蛸の唐揚げ。

醤油をはじくような勢いの鰺の脂ののり具合に、ネギとショウガが別添えというさりげない気遣い。
たこの唐揚げにしても、吸盤がそのまま活きているかのような歯ごたえと凝縮された旨味。

ですが、真に素晴らしかったのはご飯、味噌汁、漬物の3点セット。出汁の贅沢さが尋常ではなく、大根葉とワカメが出汁と味噌を引き立て。
漬物はおかずとご飯の永久機関を完成させます。

そして、食後20分後に最後に口に残るのがご飯の甘さというのも完璧。これで「合計で」2000円というのはレジの故障か何かかと思ったほどです。

ガイアと航法。(スマートフォン版『ガイアプロジェクト』イタル人チャレンジ。

パワートークンを燃やしてもガイアエリアに移動するだけであり、首府を解放済みの場合は、そのガイアエリアからのトークンを4つ排除することで任意の技術タイルを取得することができるイタル人。

その分、パワートークンの減りが早いため

  • パワーアクション:トークン×2
  • ラウンドブースター:トークン×2+鉱石1

の2つはコンスタントに取ることが必須。

今回のゲームは、それが両方ともできたため可能な盤面がありました。

初期配置

非常にありがたいことに、受動パワーがとても得やすい初期配置。これによって、失点を恐れずガンガンとパワーをもらって資源を獲得。

順当に首府を解放してガイア戦略。また、次元横断星が散らばっているため

  • 航法
  • ガイア計画

の2つに絞って研究を(タイルを消費して)あげていく戦略を取ります。

3R目

この段階で、施設数は黒のマッド・アンドロイドに水をあけられていますが

4R目

ここで2差。QICを消費して、より次元横断星が安いところへ進出できたのもありがたいです。

5R目

ラス前のラウンドで施設数を逆転。

6R開始

5Rに同盟を組んで、航法ゴール。暗黒惑星を右上に配置し、ゲーム終了目的でもある「衛星数」につないでいきます。

最終盤面

広範囲にまたがる形での同盟を2つ追加。

  • 施設数:17
  • 衛星数:12

と、全く文句ないものになりました。

施設数とタイル

個人ボードで開いていない施設が右学院と研究所のみと言う。(学院開放は最終ラウンドだったので右の学院を取るべきでした)

得点

得点は166点。上級タイルが「ガイア(鉱山)×2」だったらもっと取れていたでしょうが、

  • ガイア3点と7勝利点タイルで43点
  • ガイアゴールで16点

は誇れる数字でした。

発掘、電子ノート。

部屋の掃除をしている中で、思わぬものを見ました。

シャープの電子ノートです。ご丁寧にほぼ日のカバーに入れていたことからも保存状況は良好でした。

画像では見切れていますが、スタイラスもカスタマイズしていたので、買った当初はそれなりに気合いを入れていたことがうかがえます。

これを使ってこなかったのは

  • 万年筆を多用するようになった
  • それに合わせてあの書き味が違う

で使わなくなったことは予想されますが、新たな使い道が見つかりそうです。それは

「ボードゲームの記録」。

以前の大鎌戦役のように、計算式が複数あるゲームは多々あります。そんな中で

  • インク切れが起きず
  • インクがコンポーネントにつかず
  • 相手の服やカードにつかない

構造は非常に大事。これは少し使っていこうと思った次第です。

『ライザのアトリエ2DX』追加「素材エリア」のメモ。【ストーリーのネタバレなし)

『ライザのアトリエ2』、

  • 採取
  • 調合
  • 戦闘

のサイクルが本当に楽しくなってくるのはキャラクターが全員プレイアブルになる頃という体幹を大きく改善してくれました。

DX追加マップ『ゼレプスト洞穴』

アンペルとリラが仲間になるタイミング。『地下乙女の墓所』クリア後。

ここで採取できるアイテムは、「このタイミングにしては」良好。

特に役立つのは、水のカテゴリを持つアクア鉱です。

属性値「3」を持つ水はこの段階では貴重。

そのため、投入数に乏しく、属性値が低い素材しか手に入らない状態でも一発で中和剤の効果2を発現可能。

後は中和剤ループで属性を高め

中間素材を調合し

ステータスが跳ね上がる武器を作れるようになり、その後の探索と戦闘が楽になります。

試作版:ipsetによるufwブロックの効率化スクリプト。

攻撃者の種は尽きまじという形。

この、ufwの効率化を図るスクリプトを試作です。

前提条件

上記リンク先にあるとおり、ipsetをipset-persistant抜きで入れている場合。なので、相当、対象者は限られます。

スクリプト内容

#!/bin/bash

# セット名の定義
SET_NAME="ufw-blocklist"
SAVE_FILE="/etc/ufw/ipsets.save"

# 1. root権限チェック
if [[ $EUID -ne 0 ]]; then
   echo "エラー: このスクリプトは sudo または root 権限で実行してください。"
   exit 1
fi

# 保存用関数
save_ipset() {
    read -p "設定をファイルに保存しますか? (y/n): " confirm
    if [[ "$confirm" =~ ^[Yy]$ ]]; then
        ipset save "$SET_NAME" -f "$SAVE_FILE"
        echo "保存完了: $SAVE_FILE"
    else
        echo "保存をスキップしました(メモリ上の設定のみ更新)。"
    fi
}

# ipsetが存在しない場合に作成
if ! ipset list "$SET_NAME" > /dev/null 2>&1; then
    echo "情報: $SET_NAME が見つからないため新規作成します。"
    ipset create "$SET_NAME" hash:net
fi

while true; do
    echo "------------------------------------------"
    echo " ipset 管理メニュー ($SET_NAME)"
    echo "------------------------------------------"
    echo "1) IP/ネットワークを追加 (例: 198.51.100.42, 203.0.113.0/24)"
    echo "2) IP/ネットワークを削除"
    echo "3) ステータス表示 (list)"
    echo "q) 終了"
    echo "------------------------------------------"
    read -p "番号を選択してください: " choice

    case $choice in
        1)
            echo "--- 追加モード ---"
            read -p "追加する IP/NW: " target
            if [ -n "$target" ]; then
                if ipset add "$SET_NAME" "$target"; then
                    echo "追加成功: $target"
                    save_ipset
                fi
            fi
            ;;
        2)
            echo "--- 削除モード ---"
            read -p "削除する IP/NW: " target
            if [ -n "$target" ]; then
                if ipset del "$SET_NAME" "$target"; then
                    echo "削除成功: $target"
                    save_ipset
                fi
            fi
            ;;
        3)
            echo "--- 現在のリスト ---"
            ipset list "$SET_NAME"
            ;;
        q)
            echo "終了します。"
            exit 0
            ;;
        *)
            echo "無効な選択です。"
            ;;
    esac
    echo ""
done

後は

sudo chmod 755 ipset-block.sh

等として実行権限を付与。

sudo bash ipset-block.sh

等で実行することで

------------------------------------------
 ipset 管理メニュー (ufw-blocklist)
------------------------------------------
1) IP/ネットワークを追加 (例: 198.51.100.42, 203.0.113.0/24)
2) IP/ネットワークを削除
3) ステータス表示 (list)
q) 終了
------------------------------------------

番号表示。

--- 追加モード ---
追加する IP/NW: 

で、IP/NWを設定すれば、後はセーブまでしてくれます。

今後の展望

  • 引数
  • ファイルからの一括入力
  • 既にあるリストとの突き合わせ

など。興味は尽きません。

ルール、再確認。(ボードゲーム『大鎌戦役』ソロプレイ)

ボードゲーム『大鎌戦役』ソロプレイ時のルールを再確認しました。

勘違いしていたルール

セクション2に切り替わった瞬間、オートマは星章を得る。

オートマカードの『Ⅱ』の背後の斉唱を見落としていました。

オートマのワーカーの挙動。

基本的にオートマのワーカーは「近傍」を利用してワープしますが、そのワープ先は

  • 既にワーカーがいない
  • 周囲に敵(つまりプレイヤー)のユニットから離れたところに

「勢力拡大する」

形です。その結果、「あり得ない速度で勢力を拡大する」パターンが多いです。

オートマのやりにくさ

「意図が読めない」に尽きます。

渡河能力、移動力を無視して領土を拡大する上、次に何をするかが読みにくい。

そのため、敵を利用するとか、敵が攻めてこないところで内政を行うなどができません。

そんな中での勝敗結果

こちらはクリミアを使い、オートマはロスヴィエトを担当。

結果は64-55での勝利。

勝てた理由

「負けを覚悟した戦闘で全力を出したら勝った」

です。オートマの数値の下振れとこちらの戦闘カードの上振れが左右。

この、自分の宝、ペイントされたミニチュアを動かすというのはそれだけでテンションが上がります。

Page 1 of 284

Powered by WordPress & Theme by Anders Norén