Overview
ネットワークまたはサーバー上の通信とセキュリティーを担保するための基本ガイドラインです。ガイドラインがある意味と内容をよく理解し、ガイドラインに則ったコーディングを行ってください。
ここれはLinuxOSを中心に基本路線とその手順をまとめていますが例外が生じた際には必ずチーム内で協議しDocumentに残してください。
- OSの仕様、利用方法のデフォルトや推奨設定に従う。
- サービス・パッケージ以外の利用と控える。またサードパーティ製のリポジトリの利用はしない。
- サーバーコントロールのためにスクリプトは利用しない。設定ファイルの変更のみで可動する努力をする。
- 可能な限り最新のものを利用する。
WEBサーバー
理由がない限りApache2.4以上を利用する。
セキュリティー名は、IPAの安全なウェブサイトの作り方に従う。サーバーサイドスクリプトとの折衝、グレーゾーンについは吟味し熟考すること。基本的なセキュリティー対策は以下。
- SQL インジェクション
- OS コマンド・インジェクション
- パス名パラメータの未チェック/ディレクトリ・トラバーサル
- セッション管理の不備
- クロスサイト・スクリプティング
- CSRF(クロスサイト・リクエスト・フォージェリ)
- HTTP ヘッダ・インジェクション
- メールヘッダ・インジェクション
- クリックジャッキング
- バッファオーバーフロー
- アクセス制御や認可制御の欠落
サーバー全般
管理ソースは/etc/以下とし、そのほかのソースはバックアップしない。/etc/は基本的にはroot管理下の元Gitのリポジトリを作成してバージョン管理をする。また大きなシステム変更の際はバックアップとしてインスタンスのクローンを一時的に行う。
ネットワーク
- 2019年時点ではipv6は理由がない限り導入しない。
- iptablesはホワイトリスト形式にし、不要なポートは開けない。
- SSH接続はユーザーログインのみを許可しrootユーザーのログインは許可しない。
- SSH接続は秘密鍵認証のみとしパスワードログインは許可しない。
- SSH接続はIP制限を行い所定の場所以外からのアクセスを禁止する。
- SSH接続はウェルノウンポート22は利用しない。4桁の別ポートを利用する。
- 各本番サーバー(商用サーバー)のアクセスには理由がない限り踏み台サーバーを経由する。
WEBサーバーの設定
- httpd.conf以外で記載できる事項についてはconf.d以下に分割してまとめる。
- configファイル類の修正の際は、必ずFILENAME.YYYYMMDD形式でバックアップをする。