ネットワークの基礎とセキュリティ管理
ウェルノウンポートとRFC 1918プライベートアドレスの暗記、ip・ssコマンドによる設定確認、find -perm・chage・sudoの管理操作、SSH公開鍵認証とポート転送オプションの対応が本章の得点源である。
LinuCレベル1の出題範囲(Version 10.0)では、主題1.07「ネットワークの基礎」と主題1.10「セキュリティ」が本章の対象である。まずTCP/IPの基礎を押さえる。トランスポート層のTCPはコネクション型で信頼性のある通信を提供し、UDPはコネクションレスで軽量な通信を提供する。ICMPはpingが用いるエコー要求・応答など制御メッセージを運ぶ。試験ではウェルノウンポート(0〜1023番)の暗記が必須である。FTPは20/21番、SSHは22番、Telnetは23番、SMTPは25番、DNSは53番、HTTPは80番、POP3は110番、NTPは123番、IMAPは143番、HTTPSは443番、メール投稿用のサブミッションポートは587番を使用する。サービス名とポート番号の対応は/etc/servicesファイルに定義されており、番号からサービスを問う設問とサービスから番号を問う設問の双方が出題される。
IPv4アドレスは32ビットで、ネットワーク部とホスト部の境界をサブネットマスクまたはCIDR表記(/24など)で示す。ホスト部のビット数をnとすると、利用可能なホスト数は2のn乗から2(ネットワークアドレスとブロードキャストアドレスの分)を引いた値になる。例えば/26ならホスト部は6ビットで62台である。RFC 1918で定められたプライベートアドレスは、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16の3ブロックであり、172.16.0.0/12の範囲が172.16.0.0から172.31.255.255までである点は頻出のひっかけである。IPv6は128ビットで、ループバックアドレスは::1、リンクローカルアドレスはfe80::/10で始まる。IPv6ではブロードキャストが廃止されマルチキャストで代替される点も問われる。
ネットワーク設定の正本となるファイルとコマンドを整理する。ホスト名は/etc/hostnameに保存され、hostnamectlコマンドで変更できる。/etc/hostsはIPアドレスとホスト名の静的対応表であり、/etc/resolv.confはnameserver行で参照DNSサーバーを、search行でドメイン補完を指定する。名前解決の参照順序は/etc/nsswitch.confのhosts行(例: files dns)が決める。インターフェース操作はiproute2のipコマンドが現行標準で、ip addr showでアドレス確認、ip link setでリンクの有効化・無効化、ip route showでルーティングテーブル表示、ip route add default via <ゲートウェイ>でデフォルトゲートウェイを追加する。net-toolsのifconfig・route・netstatはレガシーであり、試験でもipコマンドとssコマンドへの置き換えが前提となる。多くのディストリビューションではNetworkManagerが接続を管理し、nmcliコマンドで設定を行う。
ネットワークのトラブルシューティングは階層を意識した切り分け手順で出題される。pingはICMPエコー要求で到達性を確認し、IPv6にはping6(またはping -6)を用いる。tracerouteは経路上のルーターを表示するが、LinuxのデフォルトはUDPデータグラムを送信し、-Iオプション指定時にICMPエコー要求を使う点がWindowsのtracertとの違いとして問われる。tracepathは特権不要で同様の調査ができる。ソケットの状態確認はssコマンドが標準で、-tでTCP、-uでUDP、-lでリッスン中のみ、-nで名前解決の抑止、-pでプロセス表示となり、ss -tlnのような組み合わせが頻出である。名前解決の確認にはhost、dig、getent hostsを使い、digはDNSサーバーへの問い合わせ結果を詳細に表示する。ループバック→自ホストIP→デフォルトゲートウェイ→外部IP→名前解決の順に確認する切り分けの定石も押さえておく。
セキュリティ管理業務(出題範囲1.10.1)では、まずSUID・SGIDファイルの点検が問われる。SUIDが設定された実行ファイルは実行時に所有者(多くはroot)の権限で動作するため、find / -perm -u+s(数値指定では-4000)で定期的に洗い出す。SGIDの検索は-g+s(数値では-2000)である。パスワードエージングはchageコマンドで管理し、chage -l ユーザー名で有効期限情報を一覧表示、-Mで最大有効日数、-Eでアカウント失効日を設定する。アカウントの一時停止はpasswd -lまたはusermod -Lでロックし、passwd -u/usermod -Uで解除する。特権操作はsuよりsudoが推奨され、設定ファイル/etc/sudoersは必ずvisudoで編集して文法エラーによる管理不能を防ぐ。ログイン履歴はlast、各ユーザーの最終ログインはlastlog、現在のログインユーザーはwやwhoで確認する。開放ポートの点検にはssやnetstat、lsof -iを用い、ユーザーが使える資源の上限はulimitで設定する。
ホストのセキュリティ設定(出題範囲1.10.2)の基本原則は攻撃対象領域の最小化である。不要なサービスはsystemctl stopで停止し、systemctl disableで自動起動を無効化、さらにsystemctl maskで手動起動も封じる。systemdにはソケットユニット(.socket)があり、接続要求を受けてから対応するサービスを起動するオンデマンド起動を提供する。これは従来のinetd/xinetdスーパーサーバーの後継に当たる機能である。一般ユーザーのログインを一時的に禁止するには/etc/nologinファイルを作成する(rootはログイン可能なまま残る)。対話ログインをさせないシステムアカウントには、シェルとして/sbin/nologinや/bin/falseを設定する。リッスンしているポートをssコマンドで定期的に棚卸しし、用途不明のポートに対応するサービスを特定して閉じる、という一連の手順が試験でも実務でも問われる。
暗号化によるデータの保護(出題範囲1.10.3)の中心はOpenSSHとGnuPGである。SSHはTCP22番ポートで動作し、公開鍵認証ではssh-keygenで鍵ペアを生成し、公開鍵(例: id_ed25519.pub)を接続先サーバーの~/.ssh/authorized_keysに登録する。秘密鍵はクライアント側に置いたまま決して配布しない。初回接続時に検証したホスト鍵は~/.ssh/known_hostsに記録され、以後のなりすまし検知に使われる。パスフレーズ入力を省くにはssh-agentを起動しssh-addで秘密鍵を登録する。ポート転送は、-Lがローカル転送、-Rがリモート(逆方向)転送、-DがSOCKSプロキシとして働くダイナミック転送、-XがX11転送であり、オプションと機能の対応関係が頻出である。ファイル転送はscpやsftpを使う。GnuPGはgpg --gen-keyで鍵を生成し、--encryptと--decryptで暗号化・復号、--signや--clearsignで署名を行い、公開鍵を--exportで書き出して相手と交換する。
この章の問題から3問
RFC 1918で定められたプライベートIPv4アドレス 172.16.0.0/12 の範囲には、172.31.255.255 が含まれる。
正解 ○(正しい)
正しい。RFC 1918のプライベートアドレスは10.0.0.0/8、172.16.0.0/12、192.168.0.0/16の3ブロック。/12はホスト部が20ビットで、範囲は172.16.0.0〜172.31.255.255となる。第2オクテットを「16のみ」と誤解させるのが定番のひっかけで、正しくは16〜31である(出題範囲1.07.1 インターネットプロトコルの基礎)。
Linuxのtracerouteコマンドは、デフォルトでICMPエコー要求を送信して経路を調査する。
正解 ×(誤り)
誤り。Linuxのtracerouteのデフォルトは宛先ポートを変えながら送るUDPデータグラムであり、ICMPエコー要求を使うのは-Iオプション指定時である。デフォルトでICMPを使うのはWindowsのtracertで、両者を混同させるひっかけ(出題範囲1.07.3 基本的なネットワークの問題解決)。
SUIDビットが設定されたファイルを検索するには、find / -perm -g+s を実行すればよい。
正解 ×(誤り)
誤り。-g+s(数値表記では-2000)が検索するのはSGIDファイルである。SUIDの検索はfind / -perm -u+s(数値表記では-4000)を用いる。SUIDとSGIDの記号・数値表記を入れ替えるひっかけが頻出(出題範囲1.10.1 セキュリティ管理業務の実施)。
登録不要 ・ 採点と解説はその場 ・ 進捗は端末に保存
LinuC レベル1(101試験)の他の章
- Linuxのインストールと仮想マシン・コンテナ
- ファイル・ディレクトリの操作と管理(パーミッション)
- GNUとUnixのコマンド(テキスト処理・パイプ)
- プロセス管理とシェルスクリプトの基礎
- ハードウェアとデバイス・ファイルシステム
本ページの講義ノートと問題は、各試験の出題範囲に基づきAIが作成し、法令・基準に照らして別のAIレンズで敵対的に検証したものです(検証プロセス)。法改正等で誤りが見つかった場合は随時修正します。合格を保証するものではありません。