Step 04: ネットワーク管理とセキュリティ

Step 04: ネットワーク管理とセキュリティ

サーバーを構築しても、外部と繋がらなければ意味がありません。しかし、インターネットに晒した瞬間、世界中からの不正アクセスの標的になります。10年間、本番環境を守り続けて痛感したのは、「ネットワークの仕組みを理解し、セキュリティ対策を怠らないこと」が、エンジニアの最低限の責務だということです。sshで安全にサーバーに接続し、ufwでファイアウォールを設定し、auth.logで不正ログインの試みを監視する——このStepで学ぶ技術は、すべてのインフラエンジニアにとって必須科目です。

マスターすべき3つのセキュリティ領域

1. 通信の確認

ip ping ss netstat

ネットワークインターフェースの設定を確認(ip addr)し、相手サーバーと疎通確認(ping)し、開いているポートとリスニング状態を調査(ssnetstat)——通信トラブルの切り分けは、ここから始まります。

2. セキュアな接続

ssh scp ssh-keygen

パスワードではなく公開鍵認証でSSH接続(ssh-keygen)し、暗号化された通信でファイルを転送(scp)する——この「破られない接続」の構築が、セキュリティの第一歩です。ポート22番を狙う攻撃は、毎秒数百回も来ています。

3. アクセス制御とログ

ufw firewalld iptables

ファイアウォールで不要なポートを閉じ(ufwfirewalld)、特定のIPアドレスからのアクセスのみを許可する——さらに、/var/log/auth.logを監視し、不正ログインの試みを早期に検知します。防御は、攻撃を「知る」ことから始まります。

このStepで習得すべき記事

各コマンドを実際のサーバーで試し、セキュアな運用環境を構築してください。

現場の知恵:SSHパスワード認証を禁止すべき理由と、ポート22番の現実

サーバーを公開した翌日、/var/log/auth.logを見て驚愕しました。世界中からのSSHログイン試行が、1分間に数十回も記録されていたのです。攻撃者は辞書攻撃やブルートフォースで、一般的なユーザー名(root、admin、user等)とパスワードの組み合わせを機械的に試してきます。パスワード認証を許可している限り、いつか突破される危険があります。

そのため、本番環境では必ずSSHのパスワード認証を無効化し、公開鍵認証のみを許可してください。/etc/ssh/sshd_configPasswordAuthentication noに設定し、PubkeyAuthentication yesにします。さらに、rootログインも禁止(PermitRootLogin no)し、デフォルトポート22番を変更することも検討してください。

教訓:セキュリティは「設定したら終わり」ではありません。定期的にauth.logを確認し、異常なアクセスパターンを監視してください。また、fail2banなどのツールを導入し、短時間に複数回ログイン失敗したIPアドレスを自動的にブロックすることも有効です。攻撃は、常に進化しています。