ConoHa VPSでWebサーバーを立ち上げる
【はじめに】 ConohaVPSでWebサーバーを立ち上げる
今回ブログを書くためにConoha VPSを契約しました。 VPSの初期設定とWebサーバー(Apache)の立ち上げまでの備忘録です。
- VPSサーバー : ConohaVPS
- OS : Debian 11.0
VPSサーバーの初期設定
はじめに基本的なセキュリティ対策をやっておきます。 下記のサイトを参考にしました。CentOSとDebianで異なるところも ありますが。
ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」
1. rootユーザーでのログインを禁止する。
root(管理者権限)のパスワードが流出しても、直接ログインできなくしておくことで セキュリティを高めることができます。
- 一般ユーザーを作成する
# adduser ユーザー名
# passwd ユーザー名
- /etc/ssh/sshd_configの編集
#PermitRoorLogin yes
コメントアウトされていれば#をとり、yes→noに
- 設定の反映
# systemctl restart sshd.service
2.sshのポート番号を変更する。
SSHポートを標準の22番のままにしておくと、不正アクセスの攻撃にあいます。 早めに変更しておきましょう。
- /etc/ssh/sshd_configの編集
#Port 22
コメントアウトされていれば#をとり、22を任意の番号に
-
設定ファイルの構文チェック
# sshd -t
エラーが出なければOK. -
設定の反映
# service sshd restart
-
設定の確認
$ ssh -p xxxxx ユーザー名@aaa.bbb.ccc.ddd
ポートを指定してログインできれば成功です。ポート番号22でログイン出来ないことも確認してお来ましょう。 -
補足
3.ファイアウォールの設定
-
ufwのインストール
apt install ufw
-
プロファイルの設定 ポートを開放したいプロファイルを設定します。 プロファイルは
ufw app list
コマンドで確認できます。 今回はhttpとhttpsを使用できる[WWW Full]に設定しました。 設定はufw allow "WWW Full"
コマンドです。 設定した値はufw status verbose
コマンドで確認できます。
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
xxx ALLOW IN Anywhere
80,443/tcp (WWW Full) ALLOW IN Anywhere
xxx (v6) ALLOW IN Anywhere (v6)
80,443/tcp (WWW Full (v6)) ALLOW IN Anywhere (v6)
2. Apacheをインストールする
VPSをWebサーバーとして使用するのにApacheが必要です。
Debianなのでaptでインストールします。
# apt install apache2
でインストール後、サービスが起動しているか確認します。
# systemctl list-unit-files -t service
---
apache-htcacheclean.service disabled enabled
apache-htcacheclean@.service disabled enabled
apache2.service enabled enabled
apache2@.service disabled enabled
---
「apache2.service」が「enable」であればOKです。
自分の環境ではインストールしたらenabledになっていましたが、
disabledだったら# systemctl enable apache2
で有効化。
表示するHTMLファイルは/var/www/htmlに格納します。 webブラウザで[http://VPSサーバーのIPアドレス]でテストページが表示されればOKです。
3. ドメインの設定
私はドメインを「お名前.com」で取得しました。下記サイトがわかりやすかったので、参考にして設定しました。 取得したドメインでブログを公開する方法【ConoHaVPS × お名前.com】
4. SSL証明書の発行
セキュリティ強化のためhttpsのページになるように設定します。
- ApacheにOpenSSLモジュールがあるか確認する。
# apachectl -M
ssl_module (shared) ←あればOK.
ない場合は下記コマンドでインストール (自分の環境ではインストールされていたので未確認)
# apt install openssl
# a2enmod ssl
# systemctl restart apache2
- certbotのインストール
# apt install certbot python3-certbot-apache
#certbot --apache -d example.com
!https://exsample.comで表示できればOK.
!3ヶ月に一度証明書の更新が必要。
!# certbot renew を実行。面倒ならcronを設定
5. rsyncの設定
※rsync以外の転送ソフトを使用する場合には不要です
データのアップロードにはrsyncを使用しています。 rsyncはクライアント、サーバー双方にインストールが必要です。
- rsyncをインストールします。aptでできます。
# apt install rsync
- 実行コマンドは下記の通り。
# rsync -e "ssh -p [ポート番号]" -urlOtcv --delete public/ [VPSユーザー名]@[VPS_IPアドレス]:/var/www/html/
おわりに
以上、VPSの初期設定とApacheのインストール方法を紹介しました。 正直静的サイトを公開するだけならGithub Pagesとかでもよさそうですが、今後やりたいこともあったのでVPSにしてみました。参考になれば幸いです。