編集の要約なし |
|||
3行目: | 3行目: | ||
Debian の「全体」を理解してまとめておく。聖書と同じで Debian も「<strong>全体をしっかり理解</strong>」しておけば本質も深く理解できるし、情報不足ゆえのつまずきも少なくなる。 | Debian の「全体」を理解してまとめておく。聖書と同じで Debian も「<strong>全体をしっかり理解</strong>」しておけば本質も深く理解できるし、情報不足ゆえのつまずきも少なくなる。 | ||
ちなみに、サーバ機能を持つ「城マシン」はインターネット世界の荒海に対して公開されてる「港」になるので色々なことを深く知っていた方が「港運営」が上手にできる。システムを「全て把握」していると何事もスムーズに運ぶ。 | |||
== | ==いざ!自分の城へ接続!== | ||
* [[港管理者のチェックリスト]] / [[Linuxマシンのセットアップ]] | * [[港管理者のチェックリスト]] / [[Linuxマシンのセットアップ]] | ||
* | * セキュアなDebian城を構築する | ||
* Debian はインストール時に root と一般ユーザを登録する | * Debian はインストール時に root と一般ユーザを登録する | ||
* sudoコマンドがないので「su -」で root になって操作する。root が馴染み深くなる | * sudoコマンドがないので「su -」で root になって操作する。root が馴染み深くなる | ||
33行目: | 33行目: | ||
$ cat ~/.ssh/authorized_keys | $ cat ~/.ssh/authorized_keys | ||
[ | [城] | ||
$ ssh-keygen -t ed25519 | $ ssh-keygen -t ed25519 | ||
$ vi ~/.ssh/config | $ vi ~/.ssh/config | ||
46行目: | 46行目: | ||
* SSHの鍵認証で最も広く使われているのはRSA暗号。でも最近のSSHはRSAよりも「[https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%83%AF%E3%83%BC%E3%82%BA%E6%9B%B2%E7%B7%9A%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E7%BD%B2%E5%90%8D%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0#Ed25519 Ed25519]」という暗号化アルゴリズムが強固でパフォーマンスも良く安全面と性能面で最強 | * SSHの鍵認証で最も広く使われているのはRSA暗号。でも最近のSSHはRSAよりも「[https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%83%AF%E3%83%BC%E3%82%BA%E6%9B%B2%E7%B7%9A%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E7%BD%B2%E5%90%8D%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0#Ed25519 Ed25519]」という暗号化アルゴリズムが強固でパフォーマンスも良く安全面と性能面で最強 | ||
== | ==城ざっくり把握== | ||
以下5点(城の説明書)を把握すれば城の全体像は掴める。 | |||
# [[FHS]] - | # [[FHS]] - 城全体の<u>地図</u> | ||
# | # 城内サービス/デーモン - 住み込み<u>常駐社員</u> (?) | ||
# | # 城内コマンド/アプリ - 城で働く<u>正社員</u> (836名) | ||
# | # 城内パッケージ - 城で働く<u>派遣社員</u> (?) | ||
# | # 城ログ - 城で働く社員たちからの<u>報告レポート</u> | ||
===2. | ===2. 城内サービス/デーモン=== | ||
A [[daemon]] is <u>a service process that runs in the background and supervises the system or provides functionality to other processes</u>. Traditionally, daemons are implemented following a scheme originating in SysV Unix. Modern daemons should follow a simpler yet more powerful scheme (here called "new-style" daemons), as <u>implemented by [[systemd]](1)</u>. This manual page covers both schemes, and in particular includes recommendations for daemons that shall be included in the systemd init system. | A [[daemon]] is <u>a service process that runs in the background and supervises the system or provides functionality to other processes</u>. Traditionally, daemons are implemented following a scheme originating in SysV Unix. Modern daemons should follow a simpler yet more powerful scheme (here called "new-style" daemons), as <u>implemented by [[systemd]](1)</u>. This manual page covers both schemes, and in particular includes recommendations for daemons that shall be included in the systemd init system. | ||
79行目: | 79行目: | ||
#usermod -s /sbin/nologin march | #usermod -s /sbin/nologin march | ||
===3. | ===3. 城内コマンド/アプリ=== | ||
lrwxrwxrwx 1 root root 8 Nov 28 14:35 /sbin -> usr/sbin | lrwxrwxrwx 1 root root 8 Nov 28 14:35 /sbin -> usr/sbin | ||
lrwxrwxrwx 1 root root 7 Nov 28 14:35 /bin -> usr/bin | lrwxrwxrwx 1 root root 7 Nov 28 14:35 /bin -> usr/bin |
2023年1月7日 (土) 15:36時点における版

Debian の「全体」を理解してまとめておく。聖書と同じで Debian も「全体をしっかり理解」しておけば本質も深く理解できるし、情報不足ゆえのつまずきも少なくなる。
ちなみに、サーバ機能を持つ「城マシン」はインターネット世界の荒海に対して公開されてる「港」になるので色々なことを深く知っていた方が「港運営」が上手にできる。システムを「全て把握」していると何事もスムーズに運ぶ。
いざ!自分の城へ接続!
- 港管理者のチェックリスト / Linuxマシンのセットアップ
- セキュアな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
- SSHの鍵認証で最も広く使われているのはRSA暗号。でも最近のSSHはRSAよりも「Ed25519」という暗号化アルゴリズムが強固でパフォーマンスも良く安全面と性能面で最強
城ざっくり把握
以下5点(城の説明書)を把握すれば城の全体像は掴める。
- FHS - 城全体の地図
- 城内サービス/デーモン - 住み込み常駐社員 (?)
- 城内コマンド/アプリ - 城で働く正社員 (836名)
- 城内パッケージ - 城で働く派遣社員 (?)
- 城ログ - 城で働く社員たちからの報告レポート
2. 城内サービス/デーモン
A daemon is a service process that runs in the background and supervises the system or provides functionality to other processes. Traditionally, daemons are implemented following a scheme originating in SysV Unix. Modern daemons should follow a simpler yet more powerful scheme (here called "new-style" daemons), as implemented by systemd(1). This manual page covers both schemes, and in particular includes recommendations for daemons that shall be included in the systemd init system.
- 稼働サービスの採用/不採用を決定
- 稼働サービスの確認と停止。セキュリティを考慮して使わないサービスは停止、自動稼働も無効にする
- 「running」は常に戦闘モードな状態。一方「exited」は休んでいる状態
# systemctl -t service | grep running # systemctl stop [service] # systemctl disable [service]
- デフォルトで 稼働しているサービス(Debian系)
- デフォルトで 稼働しているサービス(RH系)
- 不要なサービスは脆弱性の元なので全て停止する。ランレベル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
3. 城内コマンド/アプリ
lrwxrwxrwx 1 root root 8 Nov 28 14:35 /sbin -> usr/sbin lrwxrwxrwx 1 root root 7 Nov 28 14:35 /bin -> usr/bin
- Debian11では「sbin - システム管理者用(209個)」と「bin - 一般ユーザ用(627個)」の2種類のコマンドがある
- とりあえず、上記2種類を把握すればDebianシステムがデフォルトでできる事のおおよそのイメージがつく
- 「sbin」は一般ユーザからは見えない root用コマンド。rootになる必要がある
- オプション「--help」や「-V」、「man」でコマンドの解説が見れる
- ただしiPhoneアプリ等と同じで、深く理解すべきは全体の2割、よく利用されるコマンド (100個程)。故に、無意味な深掘りは厳禁。取捨選択が大切
- 最後にLinuxコマンドの内容も統合する
4. 港内パッケージ管理
- 全てのパッケージを最新のものにアップデートしてシステムを最新の状態にする
$ 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