柴犬と1400GTR

柴犬・コテツと小鈴とカワサキ1400GTRと食べ歩き日記

Debian

サーバーのSSL化 その3

ssl
ひとつの固定グローバルIPアドレスで複数のドメインのサーバーを実行できるバーチャルホストの導入。
# vi /etc/apache2/sites-available/ドメイン.jp.conf


ServerName www.ドメイン.jp
ServerAdmin webmaster@ドメイン.jp
DocumentRoot /home/ユーザーID/public_html
ErrorLog /var/log/apache2/ドメイン.jp.error.log
CustomLog /var/log/apache2/ドメイン.jp.access.log combined
LogLevel warn


# a2ensite ドメイン.jp

# vi /etc/apache2/apache2.conf
70行目にサーバー名追記
ServerName www.ドメイン.jp

# vi /etc/apache2/sites-enabled/000-default.conf
11行目管理者アドレス変更
ServerAdmin webmaster@ドメイン.jp

サーバーのドキュメントルートを変更したい場合は
DocumentRoot /home/ユーザーID/public_html

Options Indexes FollowSymLinks
AllowOverride None
Require all granted


最後に
# apt -y install resolvconf
# vi /etc/network/interfaces
ネームサーバー
dns-nameservers 192.168.*.* (サーバーのIPアドレス)

# reboot 再起動

index-fig-08
SSLなう!にアクセスしてLet's Encrypt へ登録しSSL証明書発行する。

Let's Encryptの管理コマンドのインストール
# apt install python-certbot-apache
# certbot --apache

Let's Encryptの証明書を更新する
アパッチの停止
# apachectl stop
証明書の強制手動更新
# certbot renew --force-renew
ツラツラと更新成功しましたと表示される。
アパッチ再起動
# apachectl restart
本当は更新を自動化した方が良いに決まっているのだけどようわからんのでしばらくは90日に1度手動更新しようと思う(涙)

毎度のことながらこの記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのLinuxOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。

サーバーのSSL化 その2

maxresdefault
SSHでログイン。

ネットワーク設定の見直し。
# vi /etc/network/interfaces
元の設定に追加。
ネットワークアドレス
network 192.168.*.0
ブロードキャストアドレス
broadcast 192.168.*.255

IPv6 を無効化
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# sysctl -p

DNSサーバー(BIND9)のインストール
ルーターの53/TCP,UDPポート開放。
# apt -y install bind9 bind9utils dnsutils
BIND9の設定
例としてグローバルアドレス [abc.def.ghi.jkl/29](実際は数字), プライベートアドレス [192.168.*.*/24], ドメイン名 [ドメイン.jp] とする。
# vi /etc/bind/named.conf
コメント化
# include "/etc/bind/named.conf.default-zones";
追記
include "/etc/bind/named.conf.internal-zones";
include "/etc/bind/named.conf.external-zones";

# vi /etc/bind/named.conf.internal-zones
新規作成、内部向けの定義
view "internal" {
match-clients {
localhost;
192.168.*.0/24;
};
zone "ドメイン.jp" {
type master;
file "/etc/bind/ドメイン.jp.lan";
allow-update { none; };
};
zone "*.168.192.in-addr.arpa" {
type master;
file "/etc/bind/*.168.192.db";
allow-update { none; };
};
include "/etc/bind/named.conf.default-zones";
};

# vi /etc/bind/named.conf.external-zones
新規作成、外部向け
view "external" {
match-clients { any; };
allow-query { any; };
recursion no;
zone "ドメイン.jp" {
type master;
file "/etc/bind/ドメイン.jp.wan";
allow-update { none; };
};
zone "jkl.ghi.def.abc.in-addr.arpa" {
type master;
file "/etc/bind/"jkl.ghi.def.abc.db";
allow-update { none; };
};
};

# vi /etc/bind/named.conf.options
追記
allow-query { localhost; 192.168.*.0/24; };
allow-transfer { localhost; 192.168.*.0/24; };
allow-recursion { localhost; 192.168.*.0/24; };

ゾーン情報設定
ルーターの443/TCPポート開放
内部向け正引き
# vi /etc/bind/ドメイン.jp.lan

$TTL 86400
@ IN SOA www.ドメイン.jp. root.ドメイン.jp. (
2018012715 ;Serial(適当な日にちを入力)
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)

IN NS www.ドメイン.jp.
IN A 192.168.*.*
IN MX 10 www.ドメイン.jp.
www IN A 192.168.*.*

外部向け正引き
# vi /etc/bind/ドメイン.jp.wan

$TTL 86400
@ IN SOA www.ドメイン.jp. root.ドメイン.jp. (
2018012715 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)

IN NS www.ドメイン.jp.
IN A abc.def.ghi.jkl
IN MX 10 www.ドメイン.jp.
www IN A abc.def.ghi.jkl

# systemctl restart ifup@enp2s0 resolvconf bind9

これで固定グローバルIPアドレスと自分のドメインの関係を調べるサイト等で確認する。

毎度のことながらこの記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのLinuxOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。

サーバーのSSL化 その1

15944989872_b958dc5552_z
SSLとはなんぞや?
SSL(Secure Sockets Layer)とはインターネット上でデータを暗号化して送受信する仕組み(プロトコル)のこと。
ヤフージャパンやAmazon、Facebook、Twitter、YouTube、Wikipedia、食べログなどのほとんどのヒトが日常的に利用する大手サイトも軒並み「https」からはじまるURLを持ちブラウザのURL蘭に鍵のマークが表示されるのでSSL化されている。
これからは検索サイトもSSL化サイトがセキュリティがしっかりしていると見なされて優先的に検索される傾向にあるようで自分のサーバーで運営するサイトも遊びではなく仕事で使っているので、思い切ってSSL化することにした。
install-ssl-certificate
しかし個人でサイトをSSL化するにはなかなかハードルが高い。
調べてみたところSSLサーバー証明書は高い(年間数万円から数十万)しそれ以前にこれを全部丸投げで業者に依頼すると膨大になる。
そこで更に調べてみるとLet's Encryptというサイトが有りクライアントソフトウェア「Certbot」を使用することで、SSLサーバ証明書の取得・更新作業を自動化できるようだ。
SSLなう!からLet's Encrypt登録をすれば良いのだがここで必要になるのが
1.独自ドメイン
2.固定グローバルIPアドレス
3.DNSサーバー
ドメインは持っていたので固定グローバルIPアドレスを取得する事にした。
プロバイダーはぷららなのでダブルルートオプションの固定IPアドレスプラン(月々2052円)に申し込んだ。
さて今度はDNSサーバーだが年間6000円でドメイン登録業者から借りるか自分で立ち上げるかの選択になるがダメ元でやってみることにした。

毎度のことながらこの記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのLinuxOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。

Debian 9「stretch」インストール 番外編(USBメモリでインストール)

FMV1 - 1
ヤフオクで中古Windowsノートを落札して手に入れることができた。
F - 1
富士通の11インチで小さくて場所を取らずサーバーにはなかなか良いマシンのようだ。
FM - 1FM - 4
まずはBIOS画面を出して起動ディスクの優先順位を変更する。
FMV11 - 1FM - 6
DVDドライブを最優先に設定してdebianのインストールディスクをセッティングしてインストール開始ぢゃ!
FMV111 - 1
と意気揚々とハリキッて通常DVDドライブのある部分を取り出すとナントそこにはこんなバッテリーが出てきたがな!!
調べてみるとこのマシンは用途に応じて光学ドライブとバッテリーを交換できるようでツインバッテリー仕様になっているのを買ってしまったようだ。
FMV - 1
こうなりゃ良い機会なのでUSBメモリーからのインストールを試してみようと思った。
まずは手持ちのUSBメモリーをMacで初期化してMS-DOS(FAT)にフォーマット。
FMV - 2
LinuxをUSBメモリーでインストールするときに使うUNetbootinというソフトをダウンロードする。
ここにはWindows用もあるので大概のPCで活用できるようだ。
FMV - 3
Debianの公式サイトからマシンに見合ったUSBインストール用のデータを落としてくる。
FMV - 4
これをデスクトップに置いて場所がわかるようにしておく。
FMV - 5
UNetbootinを起動して先程のディスクイメージを指定してUSBメモリーに書き込む。
F - 2
USBメモリーを今度はインストールするマシンに差して起動しBIOSを調整しUSBメモリーを最優先に起動デバイスに設定する。
FM - 2FM - 5
マシンと選択したDebianが合致していると無事にUSBメモリーから起動してくれる。
ここからは光学ディスクから起動したこれまでのパターンと全く同様にインストール可能だ。
楽しみながらではあるがけっこう何度も試行錯誤を繰り返してなんとなく上手く行ったがここらへんは失敗がつきものだというドMな割り切りが必要だ。
それとあまりにも古いPCだとUSBメモリー起動をBIOSがサポートしていない場合もあるようで、この時は諦めなければならない可能性もある。

毎度のことながらこの記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのLinuxOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。

Debian 9「stretch」インストール その3

webdev-debian9-720x340
7、WebサーバーApache2。
・OSと同時にインストールしてあるので基本設定をする。

# vi /etc/apache2/conf-enabled/security.conf
26行目変更
ServerTokens Prod

# vi /etc/apache2/mods-enabled/dir.conf
ディレクトリ名のみでアクセスできるファイル名を設定
DirectoryIndex index.html index.htm index.php
でびあnn - 1
この段階でLAN内からサーバーにブラウザでつないでこの画面がでたら一応ここまでは成功。

・CGI を有効にして Perlスクリプトが利用できるようにする。
# vi /etc/apache2/mods-enabled/mime.conf
219行目コメント解除し、CGIとして扱う拡張子を設定しPHPを追記する。
AddHandler cgi-script .cgi .pl
AddHandler php7-script .php
Perl をインストール
# apt -y install perl libcgi-pm-perl
有効化
# a2enmod cgid
アパッチの再読込。
# systemctl restart apache2

・ PHP を使えるようにする。
# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring
# a2enconf php7.0-cgi 有効化

vi /etc/php/7.0/apache2/php.ini
date.timezone = "Asia/Tokyo"  924行目コメント解除タイムゾーン設定

・ユーザーディレクトリでのPHPを有効にする。
# vi /etc/apache2/mods-enabled/php7.0.conf
# php_admin_flag engine Off 23行目コメント化

・一般ユーザーが自身のホームディレクトリ内に置いたファイルを Web サイトとして公開できるようにする。(任意のディレクトリで CGI/PHP が実行可能なように設定)
# a2enmod userdir
まずはユーザーディレクトリの有効化。

# vi /etc/apache2/mods-enabled/userdir.conf
追加
40

# systemctl restart apache2
設定の有効化。

35
PHPが稼働しているかを確認、この画面が表示されればOK。
データベースサーバーとかはようわからんから省略(笑)

・ノートPCだからフタが閉じると自動的にスリープになってしまうのをオフにする設定。
# vi /etc/systemd/logind.conf
20行目変更
#HandleLidSwitch=suspend

HandleLidSwitch=ignore

# reboot
再起動

これで一応完成。
この記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

カテゴリー
月別アーカイブ
記事検索
メッセージ