ワイルドカードを使ってレンタルサーバーみたいなことをする

用途

複数のサブドメインを管理する場面等

Apache2.4 の設定

<VirtualHost *:80>
ServerName ドメイン
ServerAlias *.ドメイン
VirtualDocumentRoot "/var/www/%1/htdocs"
<Directory /var/www/*/htdocs>
Require all granted
</Directory>
</VirtualHost>

サーバー側の設定は以上です。

「ドメイン」は自身の環境に合わせて変えてください。

使い方として例えば、

「test.ドメイン」にアクセスすると、「/var/www/test/htdocs」が参照されます。

ファイルがなかった場合は404 Not Found が返されます。

カスタマイズすれば リダイレクトさせる、といったこともできると思います!

SSL(証明書)

SSLは前回の記事を参照してもらえれば簡単だと思います。

ワイルドカード証明書

DNS

「*」をAレコードで挿入します。

コンテンツにはサーバーのIPを割り当てて下さい。

TTLは自動で大丈夫です。

 

注意点

自宅鯖の場合、NATループバック機能がないと確認が取れません

 

Let’s Encrypt でワイルドカード証明書

ワイルドカード証明書とは

普通の証明書はサブドメイン事に作成する必要があるけど、ワイルドカード証明書はその必要がない。

サブドメインで使い放題!

インストール

最新のCertbotを落としてくる

$ git clone https://github.com/certbot/certbot.git
$ cd certbot/

証明書作成

$ ./certbot-auto certonly --manual -d *.ドメイン -m メールアドレス --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01

ドメイン(例:devras.info)の前に*(ワイルドカード)を指定すればワイルドカード証明書になる。

途中でTXTレコードの確認が入るけどレコードを挿入してからEnterをしてね。

TXT _acme-challenge.ドメイン xxxxx

生成された証明書は

/etc/letsencrypt/live/ドメイン

にあるはず

 

あとは必要なソフト(Apache等)で設定すれば使えます。

Samba にアクセスできない 【備忘録】

インストール

先日自宅サーバーにて、NASを構築するためにSambaをインストールした。

環境は

$ uname -a
Linux kema-server 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install samba -y

設定

設定ファイルを開く

$ sudo nano /etc/samba/smb.conf

編集する箇所は「interfaces」と「hosts allow」

hosts allow に 192.168.1. なり 192.168.0. を入れておく。

複数指定する場合は間にスペースを入れればOK

 

interfaces は少しめんどくさい

デフォルトで eth0 になってる場合(有線LAN前提)

$ ifconfig

で 接続しているネットワークを確認する。

inet が 127.0.0.1 以外のものでOKなはず

interfaces の最後にそれを追加する

$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.xx netmask 255.255.255.0 broadcast 192.168.1.255
interfaces = 127.0.0.0/8 192.168.0/22 192.168.1/24 eno1

 

interfaces の設定忘れで接続できないことは多いと思うので備忘録。

 

UFW を導入している場合

$ sudo ufw allow 137/udp
$ sudo ufw allow 138/udp
$ sudo ufw allow 139/tcp
$ sudo ufw allow 445/tcp

これで接続できると思います。