Proxmox VEでLXCのDebian 8をセットアップ

#LXCを作成（ホストから）
```
pct create 100 /var/lib/vz/template/cache/debian-8.0-standard_8.4-1_amd64.tar.gz \
  -ostype debian -hostname CT100 \
  -memory 1024 -swap 256 \
  -storage local -rootfs 1.5 \
  -net0 name=eth0,bridge=vmbr0,hwaddr=00:00:00:00:00:00,ip=192.168.1.2/24,gw=192.168.1.1,ip6=auto,type=veth
```
WebUIで作成するのが面倒になったときに使ってください。

#SSH設定（ホストから）
```
pct start 100 #起動
pct enter 100 #LXCのコンソールに移動
mkdir -m 700 ~/.ssh #.sshディレクトリーを作成（rootユーザー）
nano ~/.ssh/authorized_keys #SSHデーモンに公開鍵を登録（rootユーザー）
chmod 600 ~/.ssh/authorized_keys #本人だけ読み書き可に
```

#初期設定（SSH接続のrootユーザーから）
```
#SSHデーモンのパスワード認証を禁止
nano /etc/ssh/sshd_config
#>#PasswordAuthentication yes
#>↓
#>PasswordAuthentication no
#sed -i -r 's/^#? *(PasswordAuthentication) .*$/\1 no/' /etc/ssh/sshd_config
/etc/init.d/ssh restart #SSHデーモンを再起動して設定を反映

#パッケージを更新する
apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

#パッケージを更新する（IPv6が原因で遅いとき）
apt-get update -o Acquire::ForceIPv4=true &&
apt-get upgrade -y -o Acquire::ForceIPv4=true &&
apt-get dist-upgrade -y -o Acquire::ForceIPv4=true
```

#管理用一般ユーザーを追加（SSH接続のrootユーザーから）
```
#suをadmグループのユーザーに制限
nano /etc/pam.d/su
#># auth       required   pam_wheel.so
#>↓
#>auth       required   pam_wheel.so group=adm
#sed -i -r 's/^# *(auth +required +pam_wheel\.so)$/\1 group=adm/' /etc/pam.d/su

#sudoをインストールする
apt-get -y install sudo

#sudoのパスワードを不要にする
nano /etc/sudoers
#>%sudo	ALL=(ALL:ALL) ALL
#>↓
#>%sudo	ALL=(ALL:ALL) NOPASSWD:ALL
#sed -i -r 's/^(%sudo[\t ]+ALL=\(ALL:ALL\)[\t ]+)(ALL)$/\1NOPASSWD:\2/' /etc/sudoers

#管理用一般ユーザーを追加
user='user' &&
uid=9999 &&
useradd -u $uid -m -s /bin/bash $user && #追加
gpasswd -a $user adm && #suを許可
gpasswd -a $user sudo #sudoを許可

passwd user #パスワードを設定（対話）
echo 'user:password' | chpasswd && history -c #パスワードを設定（非対話）


#管理用一般ユーザーのSSH設定
su user #管理用一般ユーザーでログイン
chmod 700 ~ #homeディレクトリーを本人だけ読み書き可に
mkdir -m 700 ~/.ssh #.sshディレクトリーを作成
nano ~/.ssh/authorized_keys #SSHデーモンに公開鍵を登録
chmod 600 ~/.ssh/authorized_keys #本人だけ読み書き可に
```

#その他セットアップ（SSH接続の管理用一般ユーザーから）
##日本語化・日本時間化
```
#日本語化
locale #現状を確認

sudo nano /etc/locale.gen
#># ja_JP.UTF-8 UTF-8
#>↓
#>ja_JP.UTF-8 UTF-8
#sudo sed -i -r 's/^#? *(ja_JP\.UTF-8 UTF-8)$/\1/' /etc/locale.gen
sudo locale-gen

sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale

#日本時間化
cat /etc/timezone #現状を確認

sudo echo "Asia/Tokyo" > /etc/timezone
sudo dpkg-reconfigure --frontend noninteractive tzdata
```

##セキュリティーアップデートを自動化する
```
sudo apt-get install -y unattended-upgrades apt-listchanges
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
#>//Unattended-Upgrade::Mail "root";
#>↓
#>Unattended-Upgrade::Mail "root";
#sudo sed -i -r 's!^//(Unattended-Upgrade::Mail "root";)$!\1!' /etc/apt/apt.conf.d/50unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
```

##Sambaをインストール
```
sudo apt-get -y install samba

sudo nano /etc/samba/smb.conf
#globalセクションの冒頭に書き足す
#   unix charset = UTF-8
#   dos charset = CP932
#   load printers = no
#   disable spoolss = yes
#   acl allow execute always = yes
#
#homesセクションのread onlyをnoにする
#   read only = no

sudo /etc/init.d/samba restart #Sambaを再起動し設定を反映

#Samba関連でユーザーを管理
sudo pdbedit -a -u user #Sambaにユーザーを登録
sudo pdbedit -L #Sambaのユーザーを列挙
sudo pdbedit -a -u user #Sambaからユーザーを削除

#WindowsからSambaにアクセス
rundll32.exe keymgr.dll,KRShowKeyMgr #テスト時に資格情報を削除したいとき
```

#その他管理（SSH接続の管理用一般ユーザーから）
##SSHデーモンの公開鍵を差し替え
```
#rootユーザー
sudo nano ~/.ssh/authorized_keys

sudo chmod 600 ~/.ssh/authorized_keys #本人だけ読み書き可に

#一般ユーザー
sudo su user
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys #本人だけ読み書き可に
exit

#IPアドレスを確認
ip a
```

##公開鍵と秘密鍵を作成
```
#rootユーザー
sudo ssh-keygen -N '' -t rsa -f ~/.ssh/id_rsa &&
sudo ssh-keygen -N '' -t ecdsa -f ~/.ssh/id_ecdsa &&
sudo ssh-keygen -N '' -t ed25519 -f ~/.ssh/id_ed25519 &&
history -c

#一般ユーザー
ssh-keygen -N '' -t rsa -f ~/.ssh/id_rsa &&
ssh-keygen -N '' -t ecdsa -f ~/.ssh/id_ecdsa &&
ssh-keygen -N '' -t ed25519 -f ~/.ssh/id_ed25519 &&
history -c
```

##ユーザーを管理
```
#ユーザーを追加
sudo useradd -u 9999 -m -s /bin/bash user
sudo su user #ユーザーでログイン
chmod 700 ~ #homeディレクトリーを本人だけ読み書き可に
mkdir ~/.ssh #.sshディレクトリーを作成
chmod 700 ~/.ssh #本人だけ読み書き可に
nano ~/.ssh/authorized_keys #SSHデーモンに公開鍵を登録
chmod 600 ~/.ssh/authorized_keys #本人だけ読み書き可に
exit #ログアウト

#ユーザーを削除
sudo userdel -r user

#パスワードを設定
sudo passwd user #対話
echo 'user:password' | sudo chpasswd #非対話

#シェルを変更
cat /etc/shells #使用可能なシェルを確認
sudo usermod -s /bin/bash user #変更

#グループの追加と削除
sudo groupadd -g 9999 group #追加
sudo groupdel group #削除

#グループにユーザーを追加と削除
sudo gpasswd -a user group #追加
sudo gpasswd -d user group #削除

#ユーザーとグループを確認
cat /etc/passwd #ユーザーを列挙
cat /etc/group #グループを列挙
id user #ユーザーの情報を表示
```

##パッケージを更新する
```
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove && sudo apt-get -y autoclean

#IPv6が原因で遅いとき
sudo apt-get update -o Acquire::ForceIPv4=true &&
sudo apt-get upgrade -y -o Acquire::ForceIPv4=true &&
sudo apt-get dist-upgrade -y -o Acquire::ForceIPv4=true &&
sudo apt-get autoremove -y -o Acquire::ForceIPv4=true &&
sudo apt-get autoclean -y -o Acquire::ForceIPv4=true
```