ubuntu server を18.04にする

 なぜかWS2016のHyper-Vでubuntu server16.04のバックアップが出来なくなったので、18.04にします。  

今ある設定ファイルなどのバックアップ  

ubuntu server で動いているのはwebサーバーとDNSサーバー、ルーターのログサーバーです。  

/etc/nginx 以下  
/etc/bind 以下  
/var/cache/bind 以下  
/var/www 以下  
/home/ユーザー 以下  

を圧縮してバックアップします。そのまま流用可能なものは設定後にコピーして利用します。  


```
tar zcvf nginx.tar.gz /etc/nginx  
tar zcvf bind.tar.gz /etc/bind  
tar zcvf bind_cache.tar.gz /var/cache/bind  
tar zcvf www.tar.gz /var/www  
tar zcvf home.tar.gz /home/ユーザー
```


これらを外部にバックアップしておきます

  

UbuntuServer18.04 LTSのインストール


[ダウンロードページ]からISOをダウンロードして、Hyper-Vにインストールします。  

Hyper-Vは仮想マシンの新規作成ウィザードに従って設定を済ませます。私の場合は  

  1. 仮想マシンの世代は第二世代  
  2. 起動メモリは1024MBで動的メモリ使用  
  3. 仮想ハードディスクのサイズは64GB  

としました。その後設定から「セキュアブート」を無効にし、「動的メモリの最大サイズ」を4096MBに、「プロセッサ」を2個にしました。


インストールはウィザードに従っていけば問題ないです。  











インストールが終わったら `sudo apt update sudo apt upgrade`


opensshのインストール

```
# apt install openssh-server
```  


ポート番号の変更とrootログインの禁止を設定します。  

```
# apt -y install openssh-server
```  
```
Port 334
PermitRootLogin no
```

終了したら

```
# systemctl restart ssh 
```  


ここから先の作業はクライアントで出来ます  



パッケージのミラーサーバーを日本国内のものに変更  

デフォルトではlrzszがダウンロードできなかったので、日本国内のものに変更します。  

```
# perl -p -i.bak -e 's%https?://(?!security)[^ \t]+%http://jp.archive.ubuntu.com/ubuntu/%g' /etc/apt/sources.list
```


リポジトリの追加

```
# add-apt-repository main
# add-apt-repository universe
# add-apt-repository restricted
# add-apt-repository multiverse
```



Lrzszのインストール  

ファイルをftpなど不要でターミナルに直接DD出来るツールです  

```
# apt install lrzsz
```




ufwの起動とポート開放

```
# ufw default deny
# ufw enable
```


さらに334(SSH), http, https をポート開放しておきます。 

```
# ufw allow 334
# ufw allow http
# ufw allow https
```


nginxのインストール


1. nginxサイトが配布するPGPキーを追加  

```
# curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
```


2. リポジトリを一覧に追加  


```
# VCNAME=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d= -f2` \
&& sudo -E sh -c "echo \"deb http://nginx.org/packages/ubuntu/ $VCNAME nginx\" \
>> /etc/apt/sources.list"
# VCNAME=`cat /etc/lsb-release | grep DISTRIB_CODENAME | cut -d= -f2` \
&& sudo -E sh -c "echo \"deb-src http://nginx.org/packages/ubuntu/ $VCNAME nginx\" \
>> /etc/apt/sources.list"
``` 
 


3. アップデート後、nginxをインストール  

```
# apt update  
# apt install nginx
```  

インストール後に、サーバーのローカルアドレスで見れればインストール完了です。


4. webページの場所を変更する  

```
# vi /etc/nginx/conf.d/default.conf
```  

rootの場所を/var/www/htmlに変更して適用します。   



5. nginx設定ファイルを元のものにする  

`/etc/nginx/conf.d`の`default.conf`をバックアップしておいた`hogehoge.conf`にします  

元のファイルは`default.conf.disabled`にしておきます  

```
# mv default.conf default.conf.disabled
```

`/nginx`内の`nginx.conf`も同様に行います。元のファイルは`nginx.conf.disabled`にします  


6. Basic認証の設定をする  

webページの中にBasic認証をかませているものがあるので、この設定をします  

```
# apt install apache2-utils
# htpasswd -c /etc/nginx/.htpasswd ユーザー名
```

パスワード入力をし、問題なければOKです  


7. webページを移植する  

バックアップしておいた`\var\www\html\`の中身をすべて移動します  


  


Let's Encrypt でSSL証明書の取得

SSL通信を行うためにLet's Encrypt でSSL証明書の取得を行います。  


1. Let's Encryptのインストール  

```
# apt install letsencrypt
```


2. webページディレクトリの作成  

```
# mkdir -p /var/www/html
# chown ユーザー名:グループ名 /var/www/html
```


3. 証明書の作成  

```
# letsencrypt certonly --webroot -w /var/www/html -d hoge.com,www.hoge.com
```


4. 鍵生成

```
# openssl dhparam 2048 -out /etc/nginx/dhparam.pem
```  


終了したら、

```
-----BEGIN DH PARAMETERS-----
長い文字列
-----END DH PARAMETERS-----
```

までをコピーして`/etc/nginx/dhparam.pem`を作成し、貼り付けます  


Rsyslogの設定  

詳細な内容は過去記事を参照して行います  


最後にサーバーを再起動して一通り確認しましょう

人気の投稿