Linux VPSのセキュリティ設定ガイド
お前ら、元気にしてるか? きこにいだよ。
今日は、俺が昔散々痛い目見て、それでも這い上がってきた経験から、マジで大事な話をする。
テーマは「Linux VPSのセキュリティ設定」。
「きこにい、また小難しい話かよ」って思った奴もいるだろ? でもな、これ、お前らのビジネスや情報を守る、マジで生命線に関わる話なんだ。
俺は昔、年商1.6億から一気に2億の負債抱えて、自己破産。うつ病でどん底まで落ちた。あの時、色んなものがぶっ壊れたけど、情報資産も例外じゃなかった。
セキュリティを甘く見てたわけじゃない。でも、どこか「自分だけは大丈夫」って思ってた節があったんだ。結果、痛い目見た。
だからこそ、お前らには同じ轍を踏んで欲しくない。特に、VPSを自分で借りてWebサービスやブログ、何かしらのシステムを動かしてる奴は、今日の内容をマジで頭に叩き込んでくれ。
なぜセキュリティが重要なのか?
「別に俺のサイトなんて誰も狙わないだろ」って思ってる奴、甘い。
攻撃者は、特定のターゲットを狙うばかりじゃない。脆弱なシステムを無差別に探し、そこを足がかりに侵入してくるんだ。
例えば、
- DDoS攻撃: お前らのサービスをダウンさせ、ビジネス機会を損失させる。
- 情報漏洩: 顧客情報が流出すれば、信用は失墜し、損害賠償問題に発展することも。俺も顧客を抱える身だから、これは絶対避けたい。
- Webサイトの改ざん: 不適切な内容に書き換えられ、ブランドイメージが傷つく。
- マルウェアの配布元にされる: お前らのサーバーが、知らないうちに悪意のあるプログラムの配布元にされることもある。
俺は、一時期サービスがDDoS攻撃を受けて、本当に困った経験がある。アクセス集中でサーバーが落ちるのとはワケが違う。悪意を持ってサービスを妨害されるのは、想像以上に精神的に来るんだ。
あの時は、本当に「俺のビジネス、これで終わりか…」って思った。でも、そこから必死でセキュリティを学び直し、対策を講じた。
だから、VPSを借りたら、まず最初にセキュリティ設定を徹底すること。これは、歯磨きや飯を食うのと同じくらい、いや、それ以上に大事なルーティンだと思ってくれ。
具体的なセキュリティ設定ガイド
ここからが本番だ。具体的な設定方法を、俺の経験も踏まえて話していく。
1. SSHポートの変更と鍵認証の導入
これが基本中の基本。
- SSHポートの変更: デフォルトの22番ポートは、攻撃者にとって格好のターゲットだ。これを例えば「22222」とか、覚えやすくて推測されにくいポート番号に変更する。
sudo vi /etc/ssh/sshd_configを開いてPort 22の行をPort 22222のように変更する。- 設定変更後は
sudo systemctl restart sshdでSSHサービスを再起動。
- パスワード認証の無効化と鍵認証の導入: パスワード認証はブルートフォースアタック(総当たり攻撃)のリスクがある。公開鍵認証に切り替えることで、セキュリティが格段に向上する。
- クライアント側で
ssh-keygenコマンドを使って鍵ペアを作成。 - 公開鍵をサーバーの
~/.ssh/authorized_keysに配置。 sshd_configでPasswordAuthentication noに設定。
- クライアント側で
俺は昔、パスワード認証だけで運用してた時に、ログイン試行のログがすごい数になっててマジでビビったことがある。鍵認証にしてから、そういう無駄なアタックは激減した。数字で言うと、試行回数が1日あたり平均5000回から、ほぼゼロになったんだ。このインパクトはでかい。
2. ファイアウォールの設定 (UFW/Firewalld)
サーバーには、必ずファイアウォールを設定しろ。不要なポートは閉じる。
- UFW (Uncomplicated Firewall): UbuntuなどのDebian系ディストリビューションでよく使われる。
sudo ufw enableで有効化。sudo ufw allow 22222/tcp(変更したSSHポート)sudo ufw allow 80/tcp(HTTP)sudo ufw allow 443/tcp(HTTPS)sudo ufw default deny incomingでデフォルトは全て拒否。
- Firewalld: CentOSなどのRed Hat系ディストリビューションでよく使われる。
sudo systemctl start firewalldで起動。sudo firewall-cmd --add-port=22222/tcp --permanentsudo firewall-cmd --add-service=http --permanentsudo firewall-cmd --add-service=https --permanentsudo firewall-cmd --reloadで設定を反映。
俺は昔、Webサーバーを立てた時に、ポート開けっぱなしで運用してた時期があったんだ。そしたら、ある日、知らないプロセスが動いてるのを発見して血の気が引いた。すぐにファイアウォール設定を見直して、不要なポートは全部閉じた。あの時の教訓はデカい。
3. Fail2Banの導入
これはマジで必須。ブルートフォースアタックからサーバーを守ってくれる。
- Fail2Banとは: ログイン試行の失敗回数が多いIPアドレスを自動的にブロックしてくれるツール。
- 導入方法 (Ubuntuの例):
sudo apt update && sudo apt install fail2bansudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localjail.localを編集して、SSHやWebサーバーのログ監視を設定。bantime = 1h(ブロック時間)findtime = 10m(この時間内の失敗をカウント)maxretry = 5(失敗回数)[sshd]セクションでenabled = trueにする。port = 22222(変更したSSHポート) に変更するのを忘れるな。
sudo systemctl restart fail2ban
俺のサーバーのログを見てると、Fail2Banが毎日何十、何百というIPアドレスをブロックしてくれてるのがわかる。こいつがなかったら、サーバーは常にアタックの危機に晒されてただろう。見えないところで、こいつが俺のビジネスを守ってくれてるんだ。
4. 定期的なOS・ソフトウェアのアップデート
脆弱性対策の基本中の基本。
- OSやミドルウェア(Webサーバー、DBなど)には、日々新しい脆弱性が見つかっている。
- アップデートを怠ると、既知の脆弱性を突かれて侵入されるリスクが高まる。
sudo apt update && sudo apt upgrade(Debian/Ubuntu)sudo yum update(CentOS/RHEL)- セキュリティアップデートは自動適用設定にしておくのも手だが、大きな変更の場合は手動で確認することも重要。
俺は過去に、アップデートをサボってて、あるサービスで既知の脆弱性を突かれそうになったことがある。幸い、その時はギリギリで回避できたが、冷や汗ものだった。それ以来、アップデートは欠かさないようにしてる。
5. 不要なサービスの停止と削除
サーバーで動いているサービスは、少なければ少ないほど攻撃対象が減る。
- 使ってないWebサーバーやDB、FTPサーバーなどが動いてないか確認。
sudo systemctl list-unit-files --type=serviceで確認し、不要なものは停止・無効化する。sudo systemctl stop [サービス名]sudo systemctl disable [サービス名]
- 場合によってはアンインストールも検討。
俺は昔、サービスを複数立ち上げてた時期があって、そのうちの一つが実はもう使ってないのに動いてた、なんてことがあった。そこから侵入される可能性を考えると、ゾッとするよな。必要最低限のサービスだけを動かすのが鉄則だ。
6. ユーザーアカウントの管理
ルート権限の濫用は危険。
- rootでの直接ログイン禁止: SSHの
sshd_configでPermitRootLogin noに設定。 - 一般ユーザーの作成とsudo権限の付与: 日常的な作業は一般ユーザーで行い、管理者権限が必要な時だけ
sudoコマンドを使う。 - 強いパスワードの設定: パスワード認証を使う場合は、大文字小文字、数字、記号を組み合わせた12文字以上の複雑なパスワードを設定する。
俺は、自己破産してうつ病になった時、色んなものから逃げたくなった。でも、情報セキュリティからは逃げられない。もし、俺のアカウントが乗っ取られて、そのせいで俺の「アジト」のメンバーに迷惑がかかったら、もう二度と立ち直れないだろう。だから、アカウント管理はマジで徹底してる。
7. 定期的なバックアップ
どんなにセキュリティ対策をしても、万が一の事態は起こりうる。
- データのバックアップは定期的に、かつ複数の場所に保存すること。
- サーバーと同じリージョンやデータセンターだけでなく、別の場所にコピーを置くのが望ましい。
- バックアップからの復元テストも定期的に行う。
俺は、一度、システムの不具合でデータが一部吹っ飛んだことがある。その時はバックアップがあったから助かったけど、もしなかったら、本当に「終焉祝祭」だった。お前らも、最悪の事態を想定して備えておけ。
まとめ
今日は、Linux VPSのセキュリティ設定について、俺の経験も交えながら話した。
- SSHポートの変更と鍵認証
- ファイアウォールの設定
- Fail2Banの導入
- OS・ソフトウェアのアップデート
- 不要なサービスの停止と削除
- ユーザーアカウントの管理
- 定期的なバックアップ
これらは、お前らの大切なビジネスや情報を守るための、マジで基本的な対策だ。
「面倒くさい」「後でやろう」って思う気持ちもわかる。俺も昔はそうだった。でもな、その油断が命取りになるんだ。俺は、一度どん底まで落ちたからこそ、その痛みを骨身に染みて知ってる。
俺は今、株式会社終焉祝祭の代表として、そしてTikTok配信者として、もう一度泥臭く這い上がってる。コミュニティ「アジト」も運営して、みんなと高みを目指してるんだ。その道のりで、もう二度とセキュリティで失敗するわけにはいかない。
お前らも、今日話したことを参考にして、自分のサーバーを、自分のビジネスを、そして自分の未来を、しっかり守ってくれ。
じゃあな! また次の記事で会おう。