104 lines
2.1 KiB
Markdown
104 lines
2.1 KiB
Markdown
# 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
|
||
``` |