
サーバーセキュリティ設定ガイド ─すぐできる10個の設定
サーバーは企業の重要なデータやサービスを支える中核であり、セキュリティ対策が非常に重要です。特にサイバー攻撃のリスクは増加・高度化しており、十分な対策が行われないままだと、機密情報の漏えいやサービス停止など、甚大な被害を受ける可能性があります。
本記事では、サーバーが攻撃されるリスクや、基本的なセキュリティ設定、効果的なパスワードポリシーの設定、侵入検知システム(IDS/IPS)やデータ暗号化まで、セキュリティを強化するための具体的な対策を詳しく解説します。
サーバーセキュリティを強化したいとお考えの担当者様は、ぜひご一読ください。
サーバーが攻撃されるリスクと影響

悪意のある第三者によってサーバーが攻撃されるリスクは、年々増加・高度化しています。標的は企業規模を問わず大企業から中小企業までさまざまであり、あらゆるサーバーが被害に遭うおそれがあります。
サイバー攻撃の代表的な手法は、不正アクセス、ランサムウェア、DDoS攻撃、マルウェア感染などが挙げられます。攻撃を受けると、機密情報の漏えい、サービスの停止、Webサイトの改ざん、さらには他者への攻撃の踏み台にされるケースもあります。
サイバー攻撃によって業務停止や情報漏えいが起こると、顧客や取引先からの信用を失うだけでなく、法的な責任を問われて高額な罰金や賠償金が発生するリスクも考えられます。企業の業績やブランドイメージに大きなダメージを与える可能性があるため、未然に防止するためのセキュリティ対策が不可欠です。
サーバーの基本的なセキュリティ設定

ここからは、サーバーのセキュリティにかかわるさまざまな設定方法を紹介します。
ファイアウォール、パスワードポリシー、アクセス制御リストなど、すぐに使えるセキュリティ対策について解説しますので、これからセキュリティ設定を行う予定の方はぜひ参考にしてください。
ファイアウォールの設定手順
ファイアウォールは、外部からの不正アクセスを防ぐための基本的なセキュリティ対策です。設定は以下の手順で行います。
ステップ1:ファイアウォールのインストールと有効化
Linuxサーバーで使用するファイアウォールの代表例としては、標準搭載されている「iptables」や、Ubuntuで使用可能な設定ツールの「ufw(Uncomplicated Firewall)」などがあります。
まずは下記のコマンドでファイアウォールをお使いのサーバーにインストールしましょう。
sudo apt-get install ufw # Ubuntu/Debian系sudo yum install firewalld # CentOS/RHEL系 |
インストール後、ファイアウォールを有効化します。
・Ubuntu/Debian系
sudo apt-get updatesudo apt-get install ufwsudo ufw enable |
・CentOS/RHEL系
sudo yum install firewalldsudo systemctl enable firewalldsudo systemctl start firewalld |
ステップ2:デフォルトポリシーの設定
不要なトラフィックをブロックするために、最初にすべてのインバウンド接続を拒否し、アウトバウンド接続のみを許可します。
・Ubuntu/Debian系
sudo ufw default deny incomingsudo ufw default allow outgoing |
・CentOS/RHEL系
# デフォルトゾーンの確認(通常は “public” など)firewall-cmd –get-default-zone # すべての着信を拒否(dropゾーンへ切り替える例)sudo firewall-cmd –set-default-zone=drop –permanentsudo firewall-cmd –reload |
ステップ3:必要なポートの許可
サーバーで提供するサービスに応じて、必要なポートだけを許可します。例えば、SSH(ポート22)、HTTP(ポート80)、HTTPS(ポート443)を許可する場合、下記のようなコマンドを使用します。
・Ubuntu/Debian系
sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcp |
・CentOS/RHEL系
sudo firewall-cmd –permanent –add-port=22/tcpsudo firewall-cmd –permanent –add-port=80/tcpsudo firewall-cmd –permanent –add-port=443/tcpsudo firewall-cmd –reload |
ステップ4:設定の適用と確認
設定を適用し、現在の状態を確認します。
・Ubuntu/Debian系
sudo ufw reloadsudo ufw status verbose |
・CentOS/RHEL系
sudo firewall-cmd –reloadsudo firewall-cmd –list-all |
想定通りの設定内容が表示されれば、ファイアウォールの設定は完了です。
効果的なパスワードポリシーの設定方法
サーバーセキュリティを強化するためには、強力なパスワードポリシーを設定する必要があります。パスワードポリシーを設定する際は、下記のポイントを押さえることが重要です。
・長さは最低12~16文字以上に設定する・英大文字、英小文字、数字、特殊文字を組み合わせたパスワードを設定する・パスワードは60~90日程度を目安に定期的に変更する・同一パスワードの再利用を禁止する |
これらのポイントを押さえたパスワードポリシーを設定することで、セキュリティを強化できます。
アクセス制御リスト(ACL)の導入と設定方法
ACLを利用すると、ユーザーやグループごとに詳細なアクセス権を設定できます。下記では、LinuxでACLを導入・設定する方法を解説します。
ステップ1.パッケージのインストール
Linuxでは「acl」パッケージをインストールします。
sudo apt-get install acl # Ubuntu/Debian系sudo yum install acl # CentOS/RHEL系 |
ステップ2.ACLの設定
特定のファイルに対して、ユーザーの読み取り・書き込み権限を付与します。下記は、「testuser」に権限を付与する例です。
sudo setfacl -m u:testuser:rw /path/to/filegetfacl /path/to/file # 設定内容を確認 |
設定内容の確認は次のコマンドで行います。
getfacl /path/to/file |
内容に間違いがなければ、ACLの設定は完了です。
よりセキュリティを強化するための設定
さらにセキュリティを強化するためには、自動更新やIPアドレス制限の設定も重要です。
自動更新の設定
セキュリティパッチの適用を自動化します。Ubuntuの場合、以下のコマンドで自動更新を有効化できます。
・Ubuntu/Debian系
sudo apt-get install unattended-upgradessudo dpkg-reconfigure –priority=low unattended-upgrades |
・CentOS/RHEL系
# yum-cron を導入して自動更新を設定sudo yum install yum-cronsudo systemctl enable yum-cronsudo systemctl start yum-cron # 設定ファイル(/etc/yum/yum-cron.conf や /etc/yum/yum-cron-hourly.conf)を編集し、自動更新を有効化 |
IPアドレス制限
下記は、特定のIPアドレスのみからのアクセスを許可する設定です。
・Ubuntu/Debian系
sudo ufw allow from <IPアドレス> to any port <22> |
・CentOS/RHEL系
sudo firewall-cmd –permanent –add-rich-rule=”rule family=’ipv4′ source address='<IPアドレス>’ port port=’22’ protocol=’tcp’ accept”sudo firewall-cmd –reload |
<IPアドレス>の部分に任意のアドレスを、<22>の部分に任意のポートを指定しましょう。
侵入検知システム(IDS)と侵入防止システム(IPS)の設定方法
セキュリティ強化には、IDS/PSの導入も有効です。
IDSおよびIPSの設定方法の例は、次の通りです。ここでは、オープンソースのIDS/IPSである「Snort」を導入した場合の設定例を紹介します。
ステップ1:Snortのインストールと設定
下記のコマンドを使用し、Snortをインストールします。
・Ubuntu/Debian系
sudo apt-get updatesudo apt-get install snort |
・CentOS/RHEL系
sudo yum install epel-releasesudo yum install snort |
ステップ2:ネットワークとルールの定義
/etc/snort/snort.confで設定を行い、監視対象のネットワークやルールを定義します。
ステップ3:起動とログの確認
Snortを起動し、ログを監視します。
ログ管理と監視の設定方法
サーバーセキュリティの強化において、こまめなログの取得・監視は欠かせません。Linuxサーバーにおけるログ監視は、オープンソースのログ管理ソフトウェア「rsyslog」を利用すると便利です。
rsyslogを利用すると、ファイルへのログ記録やリモートサーバーへの転送が可能です。
rsyslogのインストール方法
下記のコマンドを実行すると、rsyslogをインストールし、システム起動時に自動的に開始する設定を行えます。
・Ubuntu/Debian系
sudo apt-get install rsyslogsudo systemctl enable rsyslog |
・CentOS/RHEL系
sudo yum install rsyslogsudo systemctl enable rsyslogsudo systemctl start rsyslog |
ログ監視におすすめのツール
サーバーのログ監視には、無料で導入可能なログ取得・分析ツールの「logwatch」や、ブルートフォースアタックの脅威からサーバーを守る「fail2ban」などのツールがおすすめです。
ログファイルの解析と自動対応を行えるように設定することで、セキュリティを強化できます。
データ暗号化とSSL証明書の導入手順
安全なファイルの送受信には、データの暗号化とSSL証明書の導入が不可欠です。ここでは、無料で証明書を発行可能な認証局「Let’s Encypt」を利用してSSL証明書を導入する手順を紹介します。
ステップ1:Certbotのインストール
下記のコマンドで、Certbotをインストールします。
・Ubuntu/Debian系(Apacheの場合)
sudo apt-get install certbot python3-certbot-apache |
・CentOS/RHEL系(Apacheの場合)
sudo yum install certbot python3-certbot-apache |
ステップ2:証明書の取得・適用
取得した証明書を、お使いのWebサーバーに適用します。
sudo certbot –apache |
以上で、SSL証明書の導入は完了です。
不要なポートの閉鎖
不要なサービスやポートを無効化することで、外部からの攻撃リスクを低減できます。まずは、下記のコマンドでサーバー上の開いているポートを確認しましょう。
sudo netstat -tuln |
その後、不要なサービスを停止します。
sudo systemctl stop <サービス名>sudo systemctl disable <サービス名> |
使用しないポートを詳細に把握し、常に必要なポートのみを開けておくことをおすすめします。
SSH接続のセキュリティ設定
SSH接続をデフォルトの22番ポート以外に変更して、攻撃リスクを低減します。下記は、一例としてポートを「2222番」に変更する場合のコマンドです。
sudo vim /etc/ssh/sshd_configPort 2222 |
また、パスワード認証の無効化と公開鍵認証の設定も、セキュリティを高めるために有効です。まずは、下記のコマンドでパスワード認証を無効化します。
PasswordAuthentication no |
その後、生成した公開鍵を指定したサーバーにコピーします。
ssh-keygen -t rsassh-copy-id user@server |
user@serverには公開鍵をコピーする対象のサーバー情報を指定します。userはリモートサーバーのユーザー名、serverはそのサーバーのホスト名やIPアドレスを指します。
上記の手順によって、公開鍵がリモートサーバーの~/.ssh/authorized_keysファイルに追加され、以降はパスワードなしでSSH接続できるようになります。
VPNを使ったアクセス制限の設定方法
VPNを使用することで、外部からのアクセスを暗号化し、安全な接続を確保できます。
ステップ1:OpenVPNの導入
まずは、OpenVPNをインストールします。
・Ubuntu/Debian系
sudo apt-get updatesudo apt-get install openvpn |
・CentOS/RHEL系
sudo yum install epel-releasesudo yum install openvpn |
その後、サーバーとクライアントの設定ファイルを作成し、適切なセキュリティプロトコルを設定します。
ステップ2:接続テスト
設定が完了したら、VPN経由でサーバーにアクセスし、問題なく接続できることを確認しましょう。
さらにセキュリティを高めるための推奨対策

さらにセキュリティを高めるための対策として、セキュリティパッチの適用と自動更新の設定、サーバーバックアップの設定、多要素認証の導入などが推奨されます。ここでは、押さえておきたい3つの対策について解説します。
セキュリティパッチの適用と自動更新の設定
サーバーのセキュリティを強化するためには、セキュリティパッチの迅速な適用が不可欠です。新たな脆弱性が発見された際、攻撃者は脆弱性を悪用してサイバー攻撃を仕掛ける可能性が高いため、最新のパッチを適用することでリスクを軽減する必要があります。
セキュリティパッチを手動で更新する場合、更新を忘れたりタイミングの遅れが生じたりするリスクがあるため、自動更新を設定しておくと安心です。Linuxサーバーなら「unattended-upgrades」や「yum-cron」などを利用して自動更新を設定できます。
サーバーバックアップの設定
サーバーのバックアップは、データ消失やランサムウェア攻撃などに備えるための重要な対策のひとつです。バックアップを定期的に取得しておくことで、サーバーが攻撃されたり、なんらかの原因で故障したりした際にも迅速に復旧できます。
また、バックアップ時にはデータの暗号化を行い、不正なアクセスや改ざんを防ぐ対策も忘れずに行いましょう。スケジュールを設定して定期的にバックアップを取得し、バックアップデータのリストア手順を事前に確認しておくと、緊急時でもスムーズな対応が可能になります。
多要素認証(MFA)の導入
多要素認証(MFA)は、ログイン時に複数の認証要素を要求し、セキュリティを強化する手法です。
一般的によく用いられるIDとパスワードの認証情報に加えて、ワンタイムパスワードやハードウェアトークン、スマートフォンアプリなどの認証を組み合わせることで、第三者による不正アクセスを防止できます。
万が一パスワードが漏えいした場合でも、多要素認証を導入していれば追加の認証が必要になるため、不正アクセスのリスクを大幅に低減できます。
まとめ

サーバーのセキュリティ対策は、サイバー攻撃から企業の重要なデータやサービスを守るために不可欠です。サーバーが攻撃されると、情報漏えいやサービス停止、法的な責任など、重大な被害が生じるリスクがあります。
パスワードポリシーやファイアウォールの設定、侵入検知システム(IDS/IPS)の導入、データ暗号化やSSL証明書の導入など、複数の手法を組み合わせた多層的な対策を講じることで、サーバーの安全性を確保できます。
継続的なセキュリティ強化に取り組み、サイバー攻撃に強いセキュリティ体制を整えましょう。