debian

Debian の「全て」を理解してまとめておく。

セットアップ

  • Debian はインストール時に root と一般ユーザが登録される
  • sudoコマンドがないので「su -」で root になって操作する。root が馴染み深くなる

最低限の環境設定

$ cat /etc/debian_version 
$ vi .bash_aliases
 alias ls='ls -lh --color=auto'
 alias less='less -N'
$ . ~/.bash_aliases

SSH接続

[港]
$ systemctl status sshd
$ ss -tan
# vi /etc/ssh/sshd_config
 Port 55555
# systemctl sshd restart
$ ss -tan
$ lsof -i:55555
# ls /etc/ssh
$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
# vi /etc/ssh/sshd_config
 PasswordAuthentication no
$ cat ~/.ssh/authorized_keys
[領内]
$ ssh-keygen -t ed25519
$ vi ~/.ssh/config
 HOST hoge
 HostName moge.vs.sakura.ne.jp
 Port 55555
$ ssh-copy-id hoge
$ ssh-add
$ ssh-add -l
$ ssh hoge

セキュアなサーバ設定

起動サービスの確認

# systemctl -t service
# systemctl stop [service]
# systemctl disable [service]
  • 不要なサービスは脆弱性の元なので全て停止する。ランレベル3(CUIモード)で自動起動するサービスを確認して停止、自動起動をオフにする
# chkconfig --list | grep 3:on
# service auditd stop
# service netfs stop
auditd(コマンド監視), ip6tables(IP6利用), netfs(NFSクライアント), postfix(SMTPサーバ利用)
  • メールサーバなど、ユーザアカウントは必要だけどシェルログインは不要なユーザは、ログインシェルを「/sbin/nologin」か「/bin/false」にする
#useradd -s /sbin/nologin march
#usermod -s /sbin/nologin march

パッケージ管理

  • 全てのパッケージを最新のものにアップデートしてシステムを最新の状態にする
$ apt list --installed
# apt update
# apt upgrade
# apt full-upgrade
  • ソフトウェアパッケージのアップデートを自動化する。そのためにも、ソフトは基本的にapt等パッケージ管理システムからインストールする
# apt install cron-apt    ← vi /etc/cron-apt/config(アプデ自動化)
# timedatectl status
# timedatectl set-timezone Asia/Tokyo
# date
  • ユーザがディスクの空き容量を使い切ってしまわないように、ユーザが利用するファイルシステムには独立したパーティションを割り当てる
  • 変更されないデータを格納するファイルシステムは、リードオンリーでマウントすることによりファイルの改竄や破壊行為を抑えられる
  • アドレススキャン(港探索)回避のためにブロードキャスト宛リクエストを無視する。下記の設定ファイルに追記
/etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcast=1