This commit is contained in:
2025-07-05 13:48:50 +09:00
parent 00c9af330b
commit 9758126225
26 changed files with 3134 additions and 0 deletions

View File

@ -0,0 +1,104 @@
# Arch LinuxでのClaude Code安全利用ガイド
## 推奨セットアップ
### 1. systemd-nspawnコンテナ最も推奨
```bash
# インストール
sudo pacman -S arch-install-scripts systemd-container
# コンテナ作成
sudo mkdir -p /var/lib/machines/claude-sandbox
sudo pacstrap -c /var/lib/machines/claude-sandbox base base-devel git nodejs npm python
# コンテナ起動
sudo systemd-nspawn -bD /var/lib/machines/claude-sandbox
# ホストディレクトリをバインド
sudo systemd-nspawn -bD /var/lib/machines/claude-sandbox \
--bind-ro=/home/$USER/projects:/projects
```
### 2. Firejailサンドボックス
```bash
# インストール
sudo pacman -S firejail
# 基本的な使用
firejail --noprofile --private claude
# より厳格な設定
firejail --noprofile --private --noroot --nosound --no3d claude
```
### 3. 安全なpacmanフック
`/etc/pacman.d/hooks/claude-safety.hook`:
```ini
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *
[Action]
Description = Claude Code安全チェック
When = PreTransaction
Exec = /usr/local/bin/claude-pacman-check.sh
```
### 4. ZFSまたはBtrfsスナップショット
```bash
# Btrfsの場合
sudo btrfs subvolume snapshot -r / /.snapshots/$(date +%Y%m%d-%H%M%S)
# 自動スナップショット
sudo pacman -S snapper
sudo snapper -c root create-config /
sudo snapper -c root create --description "Before Claude Code"
```
### 5. 監査とロギング
```bash
# auditdで監視
sudo pacman -S audit
sudo systemctl enable --now auditd
# 特定のコマンドを監査
sudo auditctl -a always,exit -F path=/usr/bin/rm -F perm=x
```
## Claude Code設定
`~/.claude/settings.json`:
```json
{
"hooks": {
"before_bash": "/usr/local/bin/claude-arch-safety-check.sh"
}
}
```
## 緊急時の復旧
1. **Btrfsスナップショットから復元**
```bash
sudo btrfs subvolume list /
sudo btrfs subvolume set-default <ID> /
```
2. **systemd-nspawnコンテナのリセット**
```bash
sudo rm -rf /var/lib/machines/claude-sandbox
# 再作成
```
3. **パッケージの整合性チェック**
```bash
sudo pacman -Qkk
```