Ubuntu21:データベース設定

MariaDB の インストール

MariaDB をインストールします。

root@www:~# apt -y install mariadb-server

初期設定します。

root@www:~# mysql_secure_installation

下記の表示後、「Enter」を押下します。

Enter current password for root (enter for none):

root パスワードを設定します。

Set root password? [Y/n] y
New password:
Re-enter new password:

「y」で応答します。

Remove anonymous users? [Y/n] y

「y」で応答します。

Disallow root login remotely? [Y/n] y

「y」で応答します。

Remove test database and access to it? [Y/n] y

「y」で応答します。

Reload privilege tables now? [Y/n] y

MariaDBにrootユーザーで接続します。

root@www:~# mysql -u root -p
Enter password:

ユーザー情報一覧を表示します。

MariaDB [(none)]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | ***************************************** |
| root | 127.0.0.1 | ***************************************** |
| root | ::1       | ***************************************** |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

データベース一覧を表示します。

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

終了します。

MariaDB [(none)]> exit

phpMyAdmin のインストール

apache2をインストールしておきます。

PHP をインストールしておきます。

phpMyAdminをインストールします。

root@www:~# apt -y install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

↑ ↓キーで「apache2」に移動しスペースキーで選択し、Tabキーで「了解」を選択しEnterキーを押下します。

← →キーで「はい」を選択し、Enterキーを押下します。

パスワードを設定し、Tabキーで「了解」を選択しEnterキーを押下します。

パスワードを再入力し、Tabキーで「了解」を選択しEnterキーを押下します。

phpMyAdminを設定します。

root@www:~# vi /etc/phpmyadmin/apache.conf

8行目:アクセス許可IPを追記します。

    Require ip 127.0.0.1 192.168.1.1/24

MariaDB にログインします。

root@www:~# mysql
Enter password:

root でログインするための設定に変更します。

MariaDB [mysql]> update mysql.user set plugin='' where user='root';

設定を有効化します。

MariaDB [mysql]> flush privileges;

ログアウトします。

MariaDB [mysql]> exit

再起動します。

root@www:~# systemctl restart apache2

Webブラウザを起動し、「http://ubuntuserver.jp/phpmyadmin/」にアクセスし、登録したユーザーで認証してログインします。(管理画面から MariaDB を操作することができます。)

phpmyadmin

Ubuntu21:Webサーバー設定

Apache2のインストール

Apache2 をインストールします。

root@www:~# apt -y install apache2

ウェルカムページを削除します。

root@www:~# rm -f /var/www/html/index.html

security.confを設定します。

root@www:~# vi /etc/apache2/conf-enabled/security.conf

25行目:変更します。

ServerTokens Prod

dir.confを設定します。

root@www:~# vi /etc/apache2/mods-enabled/dir.conf

2行目:ディレクトリ名のみでアクセスできるファイル名を追記します。

DirectoryIndex index.html index.cgi index.pl index.php index.rb index.py index.xhtml index.htm

apache2.confを設定します。

root@www:~# vi /etc/apache2/apache2.conf

70行目:サーバー名追記します。

ServerName ubuntuserver.jp

000-default.confを設定します。

root@www:~# vi /etc/apache2/sites-enabled/000-default.conf

11行目:管理者アドレス変更します。

ServerAdmin webmaster@ubuntuserver.jp

ドキュメントルート所有者を編集ユーザー(webmaster)に変更します。

root@www:~# chown webmaster. /var/www/html/

ドキュメントルート所有者を確認します。

root@www:~# ll /var/www/
合計 0
drwxr-xr-x 2 root root 6 4月 24 22:46 cgi-bin
drwxr-xr-x 2 webmaster webmaster 6 4月 24 22:46 html

URLのwwwを設定します。

root@www:~# vi /etc/apache2/sites-available/virtualhost-00-ubuntuserver.jp.conf

wwwなしに統一します。

<VirtualHost *:80>
    ServerName ubuntuserver.jp
    DocumentRoot /var/www/html
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.ubuntuserver\.jp
    RewriteRule ^(.*)$ http://ubntuserver.jp/$1 [R=301,L]
</VirtualHost>

再起動します。

root@www:~# systemctl restart apache2

HTMLテストページを作成します。

root@www:~# vi /var/www/html/index.html
<html>
<body>
<div style="width: 100%; font-size: 20px; font-weight: bold; text-align: center;">
Test Page
</div>
</body>
</html>

Webブラウザを起動し、「http://ubuntuserver.jp」にアクセスし、動作確認をします。

Webブラウザを起動

TCP80番ポート開放

ルーターの設定で、TCP80番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。

ポート開放テスト

開放確認サイトで開放確認をします。

ホスト名:linuxserver.jp

ポート番号:80

Perlのインストール

Perl をインストールします。

root@www:~# apt -y install perl

CGI モジュールを有効にします。

root@www:~# a2enmod cgi

apache2を再起動します。

root@www:~# systemctl restart apache2

「html」ディレクトリで CGI の実行を許可する設定します。

root@www:~# vi /etc/apache2/conf-available/html.conf

拡張子 cgi、pl、rb、py を CGI として設定します。

<Directory "/var/www/html">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .rb .py
</Directory>

拡張子の設定を有効にします。

root@www:~# a2enconf html

「/usr/local/bin/perl」で、Perlコマンドへアクセスできるようにします。

root@www:~# ln -s /usr/bin/perl /usr/local/bin/perl

Perlのパスを確認します。

root@www:~# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz

再起動します。

root@www:~# systemctl restart apache2

CGIテストページを作成します。

root@www:~# vi /var/www/html/index.cgi
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "CGI Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

root@www:~# chmod 705 /var/www/html/index.cgi

Webブラウザを起動し、「http://ubuntuserver.jp/index.cgi」にアクセスし、動作確認をします。

Webブラウザを起動

PHPのインストール

PHP をインストールします。

root@www:~# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring php-mysql

PHP を設定します。

root@www:~# a2enconf php8.0-cgi

apache2を再起動します。

root@www:~# systemctl restart apache2

php.iniを設定します。

root@www:~# vi /etc/php/8.0/apache2/php.ini

973行目:行頭の「;」を削除してコメント解除し、自身のタイムゾーンを追記します。

date.timezone = "Asia/Tokyo"

再起動します。

root@www:~# systemctl restart apache2

PHPテストページを作成します。

root@www:~# vi /var/www/html/index.php
<html>
<body>
<div style="width: 100%; font-size: 20px; font-weight: bold; text-align: center;">
<?php
print "PHP Test Page";
?>
</div>
</body>
</html>

Webブラウザを起動し、「http://ubuntuserver.jp/index.php」にアクセスし、動作確認をします。

Webブラウザを起動

Rubyのインストール

Ruby をインストールします。

root@www:~# apt -y install ruby

CGI モジュールを有効にします。

root@www:~# a2enmod cgi

再起動します。

root@www:~# systemctl restart apache2

Rubyテストページを作成します。

root@www:~# vi /var/www/html/index.rb
#!/usr/bin/ruby

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "Ruby Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

root@www:~# chmod 705 /var/www/html/index.rb

Webブラウザを起動し、「http://ubuntuserver.jp/index.rb」にアクセスし、動作確認をします。

Webブラウザを起動

Pythonのインストール

Python をインストールします。

root@www:~# apt -y install python

CGI モジュールを有効にします。

root@www:~# a2enmod cgi

再起動します。

root@www:~# systemctl restart apache2

Python テストページを作成します。

root@www:~# vi /var/www/html/index.py
#!/usr/bin/env python

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "Python Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

root@www:~# chmod 705 /var/www/html/index.py

Webブラウザを起動し、「http://ubuntuserver.jp/index.py」にアクセスし、動作確認をします。

Webブラウザを起動

Perlモジュールのインストール

ビルドツールをインストールします。

root@www:~# apt -y install build-essential

CPANを起動します。

root@www:~# perl -MCPAN -e shell

「y」を入力してEnterキー押下します。

Would you like to configure as much as possible automatically? [yes] y

チェックを入れて「OK」をクリックするとインストールログが表示されます。

モジュール名 説明
全て
Jcode 日本語文字コードの変換
Getopt::Long コマンドライン引数のオプションを処理する
Archive::Tar tarファイルの展開と作成(v5.10以降)
Cwd カレントディレクトリのパスを取得する
File::Basename ファイルのベース名とディレクトリ名の取得
File::Copy ファイルの移動とコピー
File::Path 複数階層のディレクトリの作成と削除
File::Spec ファイル名に対する移植性のある処理
File::Temp 一時ファイルの作成
File::Find ファイルの検索
FindBin スクリプトが存在するディレクトリのパスの取得
Encode 日本語などのマルチバイト文字列を適切に処理する
utf8 ソースコード内の文字列を内部文字列に変換
Carp モジュールの呼び出し元の観点で例外を発生させる
lib モジュールの検索パスの追加
Time::Piece 日付・時刻を扱うための標準モジュール(v5.10からコアモジュール)
Time::Local localtime,gmtimeの逆返還
base クラスの継承
Data::Dumper 変数の内容を出力する
Benchmark ベンチマーク(性能比較)を行う
JSON JSONデータの解析
MIME::Base64 Base64形式へのエンコード
MIME::QuotedPrint quoted-printable形式へのエンコード
Digest::MD5 MD5値を求める
Digest::SHA 各種SHA値を求める (v5.10以降)
Storable データのシリアライズ化
Scalar::Util スカラ値に関するユーティリティ
List::Util 配列に対するさまざまな操作
Hash::Uti ハッシュのキーの制限
Sys::Hostname ホスト名の取得
Net::FTP FTPクライアント
Net::Ping リモートホストの生存確認
Exporter 関数のエクスポート
CPAN CPANからモジュールをインストールする
Pod::Usage PODドキュメントの出力
Errno システムのエラー番号をあらわす定数
POSIX POSIXで定義された関数
Math::BigInt 大きな数の計算
Math::BigFloat 大きな数の計算
Mojolicious Webフレームワーク
Mojolicious::Plugin::AutoRoute ルートを自動的に生成
MIME::Lite メールを簡単に送信
Class::Accessor::Fast アクセサの作成
Object::Simple デフォルト値つきのアクセサの作成
DDP データをく出力する
DBIx::Custom データベース簡単操作
MySQL::Diff MySQLの差分を表示
DateTime 日付の汎用的な処理
PDL 統計解析
Imager 画像編集
Text::CSV::Encoded 日本語を含んだCSVファイルを取り扱う
Text::Diff テキストの差分確認
XML::Simple シンプルなXMLパーサ
Validator::Custom HTMLフォームの検証
Data::Page ページング処理の支援
Data::Page::Navigation ページのナビゲーションの作成
Module::Starter モジュールの雛形を作成する
Devel::NYTProf 使いやすいプロファイラ
perltidy ソースコードの整形
Net::Ping::External pingコマンドの実行
IO::ScalarArray 標準入力の自動試験
IO::Capture 標準出力、標準エラー出力の自動試験
FFI::Raw ダイナミックライブラリ内の関数を呼び出す
Math::Trig さまざまな三角関数
FFI::Platypus 機能豊富なFFIモジュール
Time::Moment 日付・時刻の高速な処理
CGI CGIモジュール
CGI::Carp HTTPD(またはその他)にエラーログを書込む
DBI 各種データベースをアクセスする
strict 文法チェックを厳しくする
LWP::UserAgent Web 上のデータに アクセスする
LWP::Protocol::https LWP::UserAgentでSSLに アクセスする
Net::SSLeay LWP::UserAgentでSSLに アクセスする
Net::SSL LWP::UserAgentでSSLに アクセスする
Crypt::SSLeay LWP::UserAgentでSSLに アクセスする
Encode::Guess 文字コードを判別
Image::ExifTool Exifの情報を取得する
Archive::Tar tar 展開、作成、ファイルの追加
Image::Magick ImageMagick のコマンドラインツール
Archive::Zip zip 展開、作成、ファイルの追加

モジュールをインストールします。

Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v2.11)
Enter 'h' for help.

cpan[1]>

ImageMagikのインストール

ImageMagickをインストールします。

root@www:~# apt -y install imagemagick

perl ImageMagickをインストールします。

root@www:~# apt -y install libimage-magick-perl

関連のライブラリをインストールします。

root@www:~# apt -y install libmagickwand-dev libmagickcore libmagickcore-dev libmagickwand-dev
root@www:~# apt -y install pkg-config
root@www:~# apt -y install php-dev

サーバー証明書の取得

Certbotをインストールします。

root@www:~# apt -y install certbot

証明書を取得します。

ドキュメントルート:/var/www/html/

メールアドレス:webmasterubuntuserver.jp

Webサーバー名:ubuntuserver.jp

root@www:~# certbot certonly --webroot -w /var/www/html/ -m webmaster@ubuntuserver.jp  -d centserver.jp --agree-tos

証明書自動更新を設定します。

root@www:~# vi /etc/cron.d/letsencrypt

下記を追記します。

00 16 * * 2 root /usr/bin/certbot renew --post-hook "service httpd restart"

SSLの設定

SSLを設定します。

root@www:~# vi /etc/apache2/sites-available/default-ssl.conf

3行目:管理者アドレス変更します。

ServerAdmin webmaster@ubuntuserver.jp

32行目:取得した証明書を指定します。

SSLCertificateFile /etc/letsencrypt/live/ubuntuserver.jp/cert.pem

33行目:取得した鍵ファイルを指定します。

SSLCertificateKeyFile /etc/letsencrypt/live/ubuntuserver.jp/privkey.pem

SSLを有効にします。

root@www:~# a2ensite default-ssl
root@www:~# a2enmod ssl

再起動します。

root@www:~# systemctl restart apache2

Free Monitoring Test Toolsで「https://ubuntuserver.jp」の作動確認をします。

Ubuntu21:ドメイン設定

DiCEのインストール

i386アーキテクチャーを有効にします。

root@www:~# dpkg --add-architecture i386
root@www:~# apt update

32ビットライブラリをインストールします。

root@www:~# apt -y install libc6:i386 libstdc++6:i386

DiCE をダウンロードし、解凍します。

root@www:~# cd /usr/local/bin
root@www:/usr/local/bin# wget https://rcg.jp/download/DiCE.tar.gz
root@www:/usr/local/bin# tar xzvf DiCE.tar.gz
root@www:/usr/local/bin# rm -f DiCE.tar.gz
root@www:/usr/local/bin# cd

DiCE の設定

文字コードを「EUC-JP」に変更

「設定」→「端末」を選択します。

「設定」→「端末」を選択

「漢字-受信」、「漢字-送信」をEUCに変更し、「OK」をクリックします。

「漢字-受信」、「漢字-送信」をEUCに変更し、「OK」をクリック

セットアップします。

root@www:~# setarch `uname -m` /usr/local/bin/DiCE/diced
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad

:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない  (P)戻る
>2
-------------------------------------------------
スクリプトのURLを入力してください
<現在:>
(N)変更しない (P)戻る
>http://dyn.value-domain.com/cgi-bin/dyn.fcg?
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>N
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>Y
検出IPアドレス>***.***.***.*** 
上記の検出IPアドレスが表示しない場合の確認はこちら、IPアドレス確認
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N) 
(P)戻る 
>N
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:60>
(N)変更しない  (P)戻る
>5
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分)  設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない  (P)戻る
>10
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>Y
設定を保存しました
=================================================

DiCEイベントの追加

ドメイン(VALUE DOMAIN)に合わせて設定します。

:add
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>?
           ZENNO.COM            livedoor            MyDNS.JP
              pcc.jp              JPN.ch             MyIP.US
              @nifty         StaticCling            MyServer
             ddns.ca                 p2p      did.expoze.com
              Dynamx          WebReactor               unicc
               Earth              DNS2Go              instat
              Now.nu           dynDNS.it          onamae.com
                DION                 ODN         RegisterFly
                 DHS          Netservers                todd
                 USA                 cjb              Dyn.ee
             BIGLOBE                dnip             3domain
             miniDNS           my-domain            ZoneEdit
                ZiVE                  yi                ysdn
              theBBS            SelfHOsT              ddo.jp
               No-IP             nicolas                eNom
           CyberGate            EveryDNS           Microtech
            ieServer          HAMMERNODE             GetmyIP
               Dynup                Dynu                dyns
              DynDSL            DynDNSdk              dyndns
               DtDNS                dnsQ                 dhs
             DDNS.nu            cheapnet            changeIP
            ARTofDNS         VALUEDOMAIN                 ODS
              JSPEED               IPDYN            DnsTokyo
=================================================
新しくイベントを追加します


ホスト名を入力してください
(P)戻る
>VALUEDOMAIN
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>ドメイン名
=================================================
ホスト名を入力してください
(P)戻る
>*
=================================================
ログインユーザ名を入力してください
(P)戻る
>
=================================================
ログインパスワードを入力してください
(P)戻る
>ログインパスワード
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>VALUEDOMAIN-ドメイン名

このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>4
-------------------------------------------------
実行する周期を指定してください
<現在:9>
(0)3分毎   (1)5分毎   (2)10分毎  (3)30分毎
(4)1時間毎 (5)2時間毎 (6)6時間毎 (7)12時間毎
(8)24時間毎(9)7日毎   (10)14日毎 (11)21日毎
(12)28日毎 (13)35日毎 (14)56日毎 (15)84日毎
(N)変更しない  (P)戻る
>0
=================================================
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>Y
=================================================
イベントを保存しますか? (Y/N)
>Y
イベント"VALUE-DOMAIN-server.jp"を保存しました
=================================================
:

転送を有効化して終了します。

:ex 0
+ 4/8 17:00 にVALUEDOMAIN-server.jpが実行されました
  IPアドレスを更新しました
:quit

「漢字-受信」、「漢字-送信」をUTF-8に変更し、「OK」をクリックします。

「漢字-受信」、「漢字-送信」をUTF-8に変更し、「OK」をクリック

その他の方法

IPアドレス更新スクリプトを作成します。

[root@www ~]# vi /usr/local/bin/update_ip_script.sh
#!/bin/bash

# Store your domain, password, hostname, and current IP address in variables
DOMAIN=${1}
PASS=${2}
HOST=${3}

# Store URLs and values in variables
IPINFO_URL="http://ipinfo.io/ip"
VD_UPDATE_BASE_URL="http://dyn.value-domain.com/cgi-bin/dyn.fcg"
NS_SERVER="ns1.value-domain.com"  # Store the DNS server address

DOMAIN_LOG="d"
PASS_LOG="p"
HOST_LOG="h"
CURRENTIP_LOG="i"

if [ "${HOST}" = "" ]; then
    FQDN=${DOMAIN}
else
    FQDN="${HOST}.${DOMAIN}"
fi

# Error Messages
ERROR_MSG_VDIP="Error detecting IP address configured in VALUE-DOMAIN settings"
ERROR_MSG_CURRENTIP="Error detecting current IP address"
UPDATE_SUCCESS_MSG="IP address update successful"
UPDATE_ERROR_MSG="IP address update error"
EMAIL_SUBJECT="IP address update error"

# Obtain IP address configured in VALUE-DOMAIN settings
IPGETLOG=`host ${FQDN} ${NS_SERVER} 2>&1`
VDIP=`echo "${IPGETLOG}" | grep "has address" | awk '{ print $NF }' | egrep ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$`
if [ $? -ne 0 ]; then
    echo "${FQDN} ${ERROR_MSG_VDIP}" | logger -t $(basename $0)
    echo ${IPGETLOG} | logger -t $(basename $0)
    exit
fi

# Obtain current IP address
IPGETLOG=`curl "${IPINFO_URL}" 2>&1`
echo "${IPGETLOG}" | egrep ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ > /dev/null 2>&1
if [ $? -eq 0 ]; then
    CURRENTIP=`echo "${IPGETLOG}" | tail -n 1 | awk '{ print $NF }'`
else
    echo "${DOMAIN} ${ERROR_MSG_CURRENTIP}" | logger -t $(basename $0)
    echo "${IPGETLOG}" | logger -t $(basename $0)
    exit
fi

# Create URL query parameters
QUERY_PARAMS="${DOMAIN_LOG}=${DOMAIN}&${PASS_LOG}=${PASS}&${HOST_LOG}=${HOST}&${CURRENTIP_LOG}=${CURRENTIP}"

# Combine with the base URL for VALUE-DOMAIN update
VD_UPDATE_URL="${VD_UPDATE_BASE_URL}?${QUERY_PARAMS}"

# Update VALUE-DOMAIN configured IP address
# (Only if VALUE-DOMAIN configured IP address is different from current IP address)
if [ "${VDIP}" != "${CURRENTIP}" ]; then
    IPUPDATE=`wget -q -O - "${VD_UPDATE_URL}"`
    echo ${IPUPDATE} | grep -q OK
    if [ $? -eq 0 ]; then
        echo "${FQDN} ${UPDATE_SUCCESS_MSG} ${VDIP} to ${CURRENTIP}" | logger -t $(basename $0)
    else
        echo "${FQDN} ${UPDATE_ERROR_MSG}" | logger -t $(basename $0)
        echo ${IPUPDATE} | logger -t $(basename $0)
        (
        echo ${UPDATE_ERROR_MSG}
        echo ${IPUPDATE}
        ) | mail -s "${SCRIPT##*/}${EMAIL_SUBJECT}" root
        exit 1
    fi
fi
exit

IPアドレス更新スクリプトへ実行権限付加します。

[root@www ~]# chmod +x /usr/local/bin/update_ip_script.sh

IPアドレス更新スクリプトを実行します。

[root@www ~]# /usr/local/bin/update_ip_script.sh ドメイン パスワード "*"

IPアドレス更新スクリプトを定期自動実行ファイルを作成します。(3分毎に実行します。)

[root@www ~]# vi /etc/cron.d/ddns-update
*/3 * * * * root /usr/local/bin/update_ip_script.sh ドメイン パスワード "*"

Ubuntu21:DNSサーバー設定

インターフェース名を確認

インターフェース名を確認します。

root@www:~# nmcli device
デバイス タイプ 状態 接続
enp2s0 ethernet 管理無し --

BINDのインストール

BIND をインストールします。

root@www:~# sudo apt install bind9

dnsutilsパッケージをインストールします。

root@www:~# sudo apt install dnsutils

BIND を設定します。

root@www:~# vi /etc/bind/named.conf

最終行に追記します。

include "/etc/bind/named.conf.internal-zones";

内部向けの定義ファイルを作成します。

root@www:~# vi /etc/bind/named.conf.internal-zones
zone "ubuntuserver.jp" IN {
        type master;
        file "/etc/bind/ubuntuserver.jp.lan";
        allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/1.168.192.db";
        allow-update { none; };
};

IPv4 のみの使用に設定します。

root@www:~# vi /etc/default/named

6行目:行頭に追記します。

OPTIONS="-u bind -4"

ゾーン情報の設定

内部向け正引き情報ファイルを作成します。

root@www:~# vi /etc/bind/ubuntuserver.jp.lan

$TTL 86400
@   IN  SOA     ubuntuserver.jp. root.ubuntuserver.jp. (
        2014071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        IN  NS      ubuntuserver.jp.
        IN  MX 10   ubuntuserver.jp.
@       IN  A       192.168.1.3
*       IN  A       192.168.1.3

内部向け逆引き情報ファイルを作成します。

root@www:~# vi /etc/bind/1.168.192.db

$TTL 86400
@   IN  SOA     ubuntuserver.jp. root.ubuntuserver.jp. (
        2014071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        IN  NS      ubuntuserver.jp.
        IN  A       255.255.255.0
3       IN  PTR     centserver.jp.

名前解決の問い合わせ等を設定します。

root@www:~# vi /etc/bind/named.conf.options

16行目:追記します。

allow-query { localhost; 192.168.1.1/24; };
allow-transfer { localhost; };
recursion yes;

26行目:変更します。

     listen-on-v6 { none; }

TCP/UDP53番ポート開放

ルーターの設定で、TCP/UDP53番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。

ポート開放テスト

こちらのサイトで「ホスト名(ubuntuserver.jp)」、「ポート番号(53)」の開放確認をします。

BINDの起動と作動確認

名前解決の参照先を変更します。

root@www:~# vi /etc/netplan/01-netcfg.yaml

8~10行目:「nameservers」を変更します。

        nameservers:
            addresses: [192.168.1.3,192.168.1.1]

変更を有効化します。

root@www:~# sudo netplan --debug generate
root@www:~# sudo netplan apply

自動起動を設定して再起動します。

[root@www ~]# systemctl enable --now named

エラーを確認します。

[root@www ~]# systemctl status named

エラーがある場合は構文の検証を行い、エラーを修正します。

192.168.1.1/24」にエラーがある場合は「localhost;」に変更してください。

[root@www ~]# sudo named-checkconf

作動を確認します。

root@www:~# dig ubuntuserver.jp

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> ubuntuserver.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15234
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntuserver.jp.                                IN      A

;; ANSWER SECTION:
ubuntuserver.jp.                 86400   IN      A       192.168.1.3

;; AUTHORITY SECTION:
ubuntuserver.jp.                 86400   IN      NS      ubuntuserver.jp.

;; Query time: 18 msec
;; SERVER: 192.168.1.3#53(192.168.1.3)
;; WHEN: 水  7月 03 15:23:54 JST 2019
;; MSG SIZE  rcvd: 65


[root@www:~]# dig -x 192.168.1.3

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> -x 192.168.1.3
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;3.1.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
3.1.168.192.in-addr.arpa. 86400 IN      PTR     ubuntuserver.jp.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400   IN      NS      ubuntuserver.jp.

;; ADDITIONAL SECTION:
ubuntuserver.jp.                 86400   IN      A       192.168.1.3

;; Query time: 87 msec
;; SERVER: 192.168.1.3#53(192.168.1.3)
;; WHEN: 水  7月 03 16:13:36 JST 2019
;; MSG SIZE  rcvd: 103

ホームネットワーク内PCのDNSを設定変更

Windows10 スタートメニューを右クリックして「ネットワーク接続」をクリックします。

ネットワーク接続

「ネットワークと共有センター」をクリックします。

ネットワークと共有センター

「ローカルエリア接続」をクリックします。

ローカルエリア接続

「プロパティ」をクリックします。

プロパティ

「インターネットプロトコルバージョン4(TCP/IPv4)」を選択して「プロパティ」をクリックします。

インターネットプロトコルバージョン4

「次のDNSサーバーのアドレスを使う」を選択して「優先DNSサーバー」を「192.168.1.3」、「代替DNSサーバー」を「192.168.1.1」に設定し「OK」をクリックします。

Ubuntu21:セキュリティ対策

アンチウィルスソフトの導入(Clam AntiVirus)

Clam AntiVirus をインストールします。

root@www:~# apt -y install clamav

有効化します。

root@www:~# sed -i -e "s/^NotifyClamd/#NotifyClamd/g" /etc/clamav/freshclam.conf

停止します。

root@www:~# systemctl stop clamav-freshclam

パターンファイルを更新します。

root@www:~# freshclam
ClamAV update process started at Sun Jun 30 23:51:01 2019
main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
daily.cld is up to date (version: 25496, sigs: 1606212, f-level: 63, builder: raynman)
bytecode.cvd is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)

起動します。

root@www:~# systemctl start clamav-freshclam

スキャンを実行して動作確認します。

root@www:~# clamscan --infected --remove --recursive /home

----------- SCAN SUMMARY -----------
Known viruses: 6163086
Engine version: 0.101.2
Scanned directories: 38
Scanned files: 23
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 179.738 sec (2 m 59 s)

テスト用無害ウィルスをダウンロードします。

root@www:~# wget http://eicar.org/download/eicar.com

スキャンを実行して動作確認します。

root@www:~# clamscan --infected --remove --recursive ./

----------- SCAN SUMMARY -----------
Known viruses: 6163097
Engine version: 0.101.2
Scanned directories: 3
Scanned files: 10
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 179.738 sec (2 m 59 s)

ファイル改竄検知システムの導入(Tripwire)

Tripwire をインストールします。

root@www:~# apt -y install tripwire

← →キーで「了解」を選択してEnterキーを押下します。

↑ ↓ キーで「設定なし」を選択し、← →キーで「了解」を選択してEnterキーを押下します。

→キーで「了解」を選択し、Enterキーを押下します。

← → キーで「はい」を選択し、Enterキーを押下します。

→キーで「了解」を選択し、Enterキーを押下します。

← → キーで「はい」を選択し、Enterキーを押下します。

← → キーで「はい」を選択し、Enterキーを押下します。

「サイトキーパスフレーズ」を入力し、↓キーで「はい」を選択し、Enterキーを押下します。

「サイトキーパスフレーズ」を再度入力し、↓キーで「はい」を選択し、Enterキーを押下します。

「ローカルキーパスフレーズ」を入力し、↓キーで「はい」を選択し、Enterキーを押下します。

「ローカルキーパスフレーズ」を再度入力し、↓キーで「はい」を選択し、Enterキーを押下します。

Enterキーを押下します。

「/etc/tripwire」へディレクトリを移動します。

root@www:~# cd /etc/tripwire

初期設定をします。

root@www:/etc/tripwire# vi twcfg.txt

12行目:報告レベルを最大に変更します。

REPORTLEVEL = 4

設定ファイルを生成します。

root@www:/etc/tripwire# twadmin -m F -c tw.cfg -S site.key twcfg.txt

サイトキーファイルのパスフレーズを入力します。

Please enter your site passphrase: サイトキーファイルのパスフレーズ
Wrote configuration file: /etc/tripwire/tw.cfg

ポリシーを最適化します。

root@www:/etc/tripwire# vi twpolmake.pl

行頭に「#」が自動挿入される場合は2回に分けて作成します。

#!/usr/bin/perl
# Tripwire Policy File customize tool
# ----------------------------------------------------------------
# Copyright (C) 2003 Hiroaki Izumi
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# ----------------------------------------------------------------
# Usage:
# perl twpolmake.pl {Pol file}
# ----------------------------------------------------------------
#
#ここまでを1回目で作成して行頭に「#」の無い行を挿入して、以下を作成します。
$POLFILE=$ARGV[0];

open(POL,"$POLFILE") or die "open error: $POLFILE" ;
my($myhost,$thost) ;
my($sharp,$tpath,$cond) ;
my($INRULE) = 0 ;

while (<POL>) {
    chomp;
    if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) {
        $myhost = `hostname` ; chomp($myhost) ;
        if ($thost ne $myhost) {
            $_="HOSTNAME=\"$myhost\";" ;
        }
    }
    elsif ( /^{/ ) {
        $INRULE=1 ;
    }
    elsif ( /^}/ ) {
        $INRULE=0 ;
    }
    elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) {
        $ret = ($sharp =~ s/\#//g) ;
        if ($tpath eq '/sbin/e2fsadm' ) {
            $cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ;
        }
        if (! -s $tpath) {
            $_ = "$sharp#$tpath$cond" if ($ret == 0) ;
        }
        else {
            $_ = "$sharp$tpath$cond" ;
        }
    }
    print "$_\n" ;
}
close(POL) ;

root@www:/etc/tripwire# perl twpolmake.pl twpol.txt > twpol.txt.new
root@www:/etc/tripwire# twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt.new

サイトキーファイルのパスフレーズを入力します。

Please enter your site passphrase: サイトキーファイルのパスフレーズ
Wrote configuration file: /etc/tripwire/tw.pol

データベースを作成します。

root@www:/etc/tripwire# tripwire -m i -s -c tw.cfg

ローカルキーファイルのパスフレーズを入力します。

Please enter your local passphrase: ローカルキーファイルのパスフレーズ

ディレクトリを戻ります。

root@www:/etc/tripwire# cd

チェックを実行します。(定期チェックは日次でチェック実行されます。)

root@www:~# tripwire -m c -s -c /etc/tripwire/tw.cfg
Open Source Tripwire(R) 2.4.2.2 Integrity Check Report

Report generated by:          root
...
...
...
All rights reserved.

チェック結果を確認します。

root@www:~# ll /var/lib/tripwire/report
total 4
-rw-r--r-- 1 root root 1821526 6月 29 07:58 server.jp-20190629-075230.twr
-rw-r--r-- 1 root root 1830182 6月 30 06:09 server.jp-20190630-060029.twr
-rw-r--r-- 1 root root 1829590 7月 1 09:29 server.jp-20190701-092314.twr
-rw-r--r-- 1 root root 1828518 7月 1 17:27 server.jp-20190701-171400.twr

レポートを指定してデータベースを更新します。

root@www:~# tripwire -m u -a -s -c /etc/tripwire/tw.cfg -r /var/lib/tripwire/report/server.jp-20190701-171400.twr

ローカルキーファイルのパスフレーズを入力します。

Please enter your local passphrase: ローカルキーファイルのパスフレーズ

rootkit検知システム導入(RkHunter)

RKHunter をインストールします。

root@www:~# apt -y install rkhunter

RKHunter を設定します。

root@www:~# vi /etc/default/rkhunter

9行目:日次で実行する設定にします。

CRON_DAILY_RUN="true"

13行目:週次でデータベースを更新する設定にします。

CRON_DB_UPDATE="true"

17行目:データベース更新の際レポートメールを送信する設定にします。

DB_UPDATE_EMAIL="true"

データベースをアップデートします。

root@www:~# rkhunter --update

システムのファイル情報をアップデートすます。

root@www:~# rkhunter --propupd

チェック実行します。

root@www:~# rkhunter --check --sk
[ Rootkit Hunter version 1.4.2 ]

Checking system commands...
...
...
No warnings were found while checking the system.

SSHサーバー公開鍵認証方式接続の設定

windows PCの任意の場所に「SSH鍵」フォルダを作成し、その中に「公開鍵」フォルダ、「秘密鍵」フォルダを作成します。

windows PCのTeraTermを起動し、「設定」→「SSH鍵生成」を選択します。

SSH鍵生成

「鍵の種類」で鍵の暗号方式(例:ECDSA-521)を選択し、「生成」をクリックします。

鍵の種類

「鍵のパスフレーズ」を設定します。

鍵のパスフレーズ

「公開鍵の保存」をクリックして、作成した「公開鍵」フォルダに保存します。(公開鍵ファイル名を「id_rsa.pub」に変更します。)

公開鍵の保存

「秘密鍵の保存」をクリックして、作成した「秘密鍵」フォルダに保存します。

秘密鍵の保存

サーバーの公開鍵の作成

TeraTermを起動し、ユーザーでログインします。

webmaster@www:~$ mkdir .ssh
webmaster@www:~$ chmod 700 .ssh/
webmaster@www:~$ touch .ssh/authorized_keys
webmaster@www:~$ chmod 600 .ssh/authorized_keys

TeraTermで公開鍵を転送します。

「ファイル」→「SSH SCP…」を選択します。

SSH SCP...

「…」をクリックして、「公開鍵」を選択します。

公開鍵

「Send」をクリックしてユーザーホームに転送します。

Send

公開鍵を「.ssh/」へ転記します。

webmaster@www:~$ cat id_rsa.pub >> .ssh/authorized_keys

接続テスト

「新しい接続」を選択します。

新しい接続

「ホスト」にIPアドレスを入力して、「OK」をクリックします。

IPアドレス

「ユーザー名」、「パスフレーズ(鍵のパスフレーズ)」を入力します。

「ユーザー名」、「パスフレーズ(鍵のパスフレーズ)」を入力

「RSA/DSA/ECDSA/ED25519鍵を使う」を選択します。

RSA/DSA/ECDSA/ED25519鍵を使う

「秘密鍵」をクリックして、保存した「SSH鍵/秘密鍵/id_rsa」を選択します。

SSH鍵/秘密鍵/id_rsa

「OK」をクリックして接続を確認します。

「OK」をクリックして接続を確認

rootへログインします。

webmaster@www:~$ su -
パスワード:

「/etc/ssh/sshd_config」を編集して、秘密鍵での認証接続

バックアップを作成します。

root@www:~# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bck

編集します。

root@www:~# vi /etc/ssh/sshd_config

58行目:行頭の「#」を削除してコメント解除し、「yes」→「no」に変更します。

PasswordAuthentication no

SSHを再起動します。

root@www:~# systemctl restart sshd

Ubuntu21:NTPサーバー設定

NTPサーバー設定

NTPdをインストールして、時刻同期します。

root@www:~# apt -y install ntp

NTPdを設定します。

root@www:~# vi /etc/ntp.conf

21行目: 各行頭に#を追記してコメント化し、時刻同期する NTP サーバーを追加します。

#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

53行目:時刻同期を許可する範囲を追記します。

restrict 192.168.1.3 mask 255.255.255.0 nomodify notrap

再起動します。

root@www:~# systemctl restart ntp

動作確認します。

root@www:~# ntpq -p
? remote          refid          st t when poll reach delay    offset  jitter
==============================================================================
 ntp.ubuntu.com  .POOL.         16 p -    64   0     0.000    0.000   0.000
 ntp1.jst.mfeed. 133.243.236.17 2  u 1    64   1     21.646   4.806   0.219
 ntp2.jst.mfeed. 133.243.236.18 2  u 1    64   1     21.818   4.799   0.138
 ntp3.jst.mfeed. 133.243.236.19 2  u 2    64   1     21.477   3.643   0.139

Ubuntu21:ファイルサーバー設定

sambaのインストール

sambaをインストールします。

root@www:~# apt -y install samba

sambaの初期設定

sambaの設定ファイルをバックアップ。

root@www:~# mv /etc/samba/smb.conf /etc/samba/smb.conf.bk

sambaを設定します。

root@www:~# vi /etc/samba/smb.conf

ファイルを作成します。

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
ntlm auth = yes
#==========================================================
[Share]
#共有フォルダ
path = /samba/share/
#マイネットワークに表示の有無
browsable = yes
#書き込み許可
writable = yes
#ゲストユーザのログイン許可
guest ok = yes
#読込みの許可
read only = no
#ファイル属性
force create mode = 0777
#ディレクトリ属性
force directory mode = 0777

共有フォルダを作成します。

root@www:~# mkdir /samba
root@www:~# mkdir /samba/share
root@www:~# chown nobody:nogroup /samba/share
root@www:~# chmod 0777 /samba/share

起動します。

root@www:~# reboot

クライアントWindowsPCを再起動し、「ネットワーク」→「ubuntu」→「Share」を開いて書き込みができることを確認します。(「ネットワーク」→「ubuntu」が表示されない場合はディスクトップの任意の場所で右クリックで新規フォルダを作成して、その新規フォルダを右クリックしてショートカットを作成し、そのショートカットを右クリックしてプロパティを開いてリンク先を「\\ubuntu」に変更し接続します。)

WindowsPC

Ubuntu21:デスクトップ環境設定

グラフィックスボードのドライバをインストール

グラフィックスボードを使用している場合はドライバをインストールします。

インストール方法

デスクトップ環境の設定

GNOME デスクトップ環境をインストールします。

root@www:~# apt -y install ubuntu-desktop

再起動します。

root@www:~# reboot

MATE デスクトップ環境をインストールします。

root@www:~# apt -y install ubuntu-mate-desktop

Tabキーで「OK」を選択し、Enterキーを押下します。

↑↓キーで「gdm3」を選択後、Tabキーで「OK」を選択し、Enterキーを押下します。

再起動します。

root@www:~# reboot

サーバーログインでユーザーを選択します。

アイコンをクリックしてデスクトップ環境を選択します。

注意:VNCサーバーかXrdpサーバーのどちらか一つをインストールしてください。両方インストールすると表示できない場合があります。おすすめはXrdpサーバーです。

VNCサーバーの設定

VNCサーバーをインストールします。

root@www:~# apt -y install tigervnc-standalone-server

VNC 接続を設定したいユーザーでログインし、VNC サーバーでパスワード(英数字8桁以内)を設定します。

webmaster@www:~$ vncpasswd
Password:
Verify:

VNC サーバーを起動します。

webmaster@www:~$ tigervncserver -xstartup /usr/bin/mate-session -geometry 800x600 -localhost no
New Xtigervnc server 'ubuntuserver:1 (root)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth -passwd /root/.vnc/passwd :1 to connect to the VNC server.

VNC サーバーを停止する場合。

webmaster@www:~$ tigervncserver -kill :1

クライアントPCにUltraVNCUltraVNC_1_2_40_X64_Setup.exeをダウンロードします。(ページの下部にダウンロードリンクがあります。)

UltraVNCをダウンロード

23bit、64bitを選択して「DOWNLOAD」をクリックします。

23bit、64bitを選択して「DOWNLOAD」

「I accept the above listed conditions」を選択して「Download」をクリックします。

「I accept the above listed conditions」を選択して「Download」

ダウンロードした「UltraVNC_***_Setup.exe」のアイコンをWクリックしてインストールします。

UltraVNC_***_Setup.exe

「Windowsスタートメニュー」をクリックし、「UltraVNC Viewer」を起動します。

Windowsスタートメニュー

先に起動したVNCサーバーのIPアドレス:ディスプレイ番号を入力をして「Connect」をクリックします。

VNCサーバーのIPアドレス:ディスプレイ番号を入力

VNCパスワードを入力し「Log on」をクリックします。

VNCパスワードを入力

ディスクトップが表示されます。

Xrdpサーバーの設定

Windows のリモートデスクトップ機能で接続できるようにXrdpサーバーをインストールします。

root@www:~# apt -y install tigervnc-standalone-server xrdp

Xrdpサーバーを自動起動設定をします。

root@www:~# systemctl enable xrdp

再起動します。

root@www:~# reboot

Windows スタートメニューから「アクセサリ」→「リモートデスクトップ接続」 を選択して接続画面を起動します。

スタートメニュー

サーバーIPアドレスを入力し「接続」をクリックします。

サーバーIPアドレスを入力し「接続」をクリック

「usermame」(ユーザー名)、「password」(パスワード)を入力し「OK」をクリックします。

ディスクトップが表示されます。

日本語環境の設定

日本語環境のパッケージをインストールします。

root@www:~# apt -y install language-pack-ja-base language-pack-ja ibus-kkc

システムの文字セットを設定します。

root@www:~# localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
root@www:~# source /etc/default/locale

設定を確認します。

root@www:~# echo $LANG
ja_JP.UTF-8

サーバーの「GNOME デスクトップ」へログインします。

メニューから「Settings」を選択します。

「Region & Languege」を選択し、「Manage installed Languages」をクリックします。

「インストール」をクリックし、言語サポートをインストールします。

webmasterパスワードを入力して認証します。

「システム全体に適用」をクリックします。(再起動後に適用されます。)

webmasterパスワードを入力して認証します。

「Languege」をクリックします。

「Japanese」を選択し、「Secret」をクリックします。(再起動後に適用されます。)

Ubuntu21:初期設定

ネットワーク設定.

ネットワークを設定します。

root@www:~# vi /etc/netplan/01-netcfg.yaml

6行目以降を削除して下記を追加します。

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  ethernets:
    enp2s0:
      dhcp4: no
      addresses: [192.168.1.3/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.3,192.168.1.1]
      dhcp6: no
  version: 2

設定を有効にします。

root@www:~# netplan apply

ルーター設定

ルーターでDHCP固定IPアドレス設定ができる場合は「MACアドレス」、「サーバーIPアドレス」を設定します。

DHCP固定IPアドレス設定

MACアドレス(例:0c:2e:48:2b:dg:f4)

サーバーIPアドレス:192.168.1.3

一般ユーザーの作成

一般ユーザーを作成します。(初期設定では一般ユーザーは必要ありません。)

root@www:~# adduser 新しいユーザー名
...
新しい UNIX パスワードを入力してください: 新しいユーザーのパスワードを設定
新しい UNIX パスワードを再入力してください: 新しいユーザーのパスワードを確認入力
passwd: password updated successfully
Changing the user information for ubuntu
Enter the new value, or press ENTER for the default
Full Name []: #Enterキーを押下します。
Room Number []: #Enterキーを押下します。
Work Phone []: #Enterキーを押下します。
Home Phone []: #Enterキーを押下します。
Other []: #Enterキーを押下します。
以上で正しいですか? [Y/n] y

一般ユーザーの削除

ユーザーのみ削除する場合

root@www:~# sudo userdel ユーザー名

ホームディレクトリも削除する場合

root@www:~# sudo userdel -r ユーザー名

サービスの管理

サービスの一覧を表示します。

root@www:~# systemctl -t service

UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
accounts-daemon.service      loaded active running Accounts Service
acpid.service                loaded active running ACPI event daemon
alsa-restore.service         loaded active exited  Save/Restore Sound Card State
apparmor.service             loaded active exited  LSB: AppArmor initialization
apport.service               loaded active exited  LSB: automatic crash report g
atd.service                  loaded active running Deferred execution scheduler
avahi-daemon.service         loaded active running Avahi mDNS/DNS-SD Stack
colord.service               loaded active running Manage, Install and Generate
console-setup.service        loaded active exited  Set console font and keymap
cron.service                 loaded active running Regular background program pr
cups.service                 loaded active running CUPS Scheduler
dbus.service                 loaded active running D-Bus System Message Bus
getty@tty1.service           loaded active running Getty on tty1
grub-common.service          loaded active exited  LSB: Record successful boot f
ifup@enp5s2.service          loaded active exited  ifup for enp5s2
irqbalance.service           loaded active running LSB: daemon to balance interr
iscsid.service               loaded active running iSCSI initiator daemon (iscsi
irqbalance.service           loaded active running LSB: daemon to balance interr
iscsid.service               loaded active running iSCSI initiator daemon (iscsi
keyboard-setup.service       loaded active exited  Set console keymap
kmod-static-nodes.service    loaded active exited  Create list of required stati
lightdm.service              loaded active running Light Display Manager
lvm2-lvmetad.service         loaded active running LVM2 metadata daemon
lvm2-monitor.service         loaded active exited  Monitoring of LVM2 mirrors, s
lxcfs.service                loaded active running FUSE filesystem for LXC
lxd-containers.service       loaded active exited  LXD - container startup/shutd
mdadm.service                loaded active running LSB: MD monitoring daemon
networking.service           loaded active exited  Raise network interfaces
NetworkManager-wait-online.service loaded active exited  Network Manager Wait On
NetworkManager.service       loaded active running Network Manager
ondemand.service             loaded active exited  LSB: Set the CPU Frequency Sc
open-iscsi.service           loaded active exited  Login to default iSCSI target
polkitd.service              loaded active running Authenticate and Authorize Us
rc-local.service             loaded active exited  /etc/rc.local Compatibility
resolvconf.service           loaded active exited  Nameserver information manage
rsyslog.service              loaded active running System Logging Service
rtkit-daemon.service         loaded active running RealtimeKit Scheduling Policy
setvtrgb.service             loaded active exited  Set console scheme
snapd.seeded.service         loaded active exited  Wait until snapd is fully see
speech-dispatcher.service    loaded active exited  LSB: Speech Dispatcher
ssh.service                  loaded active running OpenBSD Secure Shell server
systemd-fsck@dev-disk-by\x2duuid-cc5f2637\x2d7b84\x2d4b87\x2d9ab3\x2dc79ec67d568
systemd-journal-flush.service loaded active exited  Flush Journal to Persistent
systemd-journald.service     loaded active running Journal Service
systemd-logind.service       loaded active running Login Service
systemd-modules-load.service loaded active exited  Load Kernel Modules
systemd-random-seed.service  loaded active exited  Load/Save Random Seed
systemd-remount-fs.service   loaded active exited  Remount Root and Kernel File
systemd-sysctl.service       loaded active exited  Apply Kernel Variables
systemd-timesyncd.service    loaded active running Network Time Synchronization
systemd-tmpfiles-setup-dev.service loaded active exited  Create Static Device No
systemd-tmpfiles-setup.service loaded active exited  Create Volatile Files and D
systemd-udev-trigger.service loaded active exited  udev Coldplug all Devices
systemd-udevd.service        loaded active running udev Kernel Device Manager
systemd-update-utmp.service  loaded active exited  Update UTMP about System Boot
systemd-user-sessions.service loaded active exited  Permit User Sessions
ufw.service                  loaded active exited  Uncomplicated firewall
unattended-upgrades.service  loaded active running Unattended Upgrades Shutdown
upower.service               loaded active running Daemon for power management
user@1000.service            loaded active running User Manager for UID 1000
user@111.service             loaded active running User Manager for UID 111
whoopsie.service             loaded active running crash report submission daemo

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

60 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

表示を解除します。

q

サービスの起動設定の一覧を表示します。

root@www:~# systemctl list-unit-files -t service
UNIT FILE                                  STATE
accounts-daemon.service                    enabled
acpid.service                              disabled
alsa-restore.service                       static
alsa-state.service                         static
alsa-utils.service                         masked
anacron-resume.service                     enabled
anacron.service                            enabled
apport-forward@.service                    static
apt-daily-upgrade.service                  static
apt-daily.service                          static
atd.service                                enabled
autovt@.service                            enabled
avahi-daemon.service                       enabled
bluetooth.service                          enabled
bootlogd.service                           masked
bootlogs.service                           masked
bootmisc.service                           masked
brltty-udev.service                        static
brltty.service                             enabled
checkfs.service                            masked
checkroot-bootclean.service                masked
checkroot.service                          masked

表示を解除します。

q

システムを最新化

システムを最新化します。

root@www:~# apt -y update
root@www:~# apt -y upgrade

Vim(テキストエディタ)の設定

Vim(テキストエディタ)をインストールします。

root@www:~# apt -y install vim

vim を設定します。

root@www:~# vi ~/.vimrc

行番号を表示する(サーバー設定を行番号で説明いたします。)

set number

Sudo(root権限)のを設定

Sudo をインストールします。

root@www:~# apt -y install sudo

root権限を特定のユーザーに設定します。

root@www:~# visudo

最終行に追記します。

webmaster    ALL=(ALL)       ALL

Ubuntu21:初期設定準備

rootユーザーの作成

webmasterユーザーでログインします。

Ubuntu 21.04 www tty1
www login: webmaster
password: webmasterのパスワード

rootユーザーにログインします。

webmaster@www:~$ sudo -s

webmasterユーザーのパスワードを入力します。

[sudo] password for webmaster: パスワード

rootユーザーのパスワードを設定します。

root@www:~# sudo passwd root
New password: rootパスワード
Retype new password: rootパスワード

現在のネットワーク設定を確認

ネットワーク設定でIPアドレス、インタフェース名を記録します。

root@www:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp14s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:2e:47:21:dg:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.35/24 brd 192.168.1.255 scope global dynamic enp2s0 #IPアドレス、インターファイス名記録
valid_lft 11984sec preferred_lft 11984sec
inet6 20sd:ahq23:46dg:7rh9:2dg5:28uf:fls4:dehd/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 13592sec preferred_lft 11792sec
inet6 fft0::21fg3:2j8f:fo60:djed/64 scope link
valid_lft forever preferred_lft forever

クライアントPC接続

記録したIPアドレスでクライアントPCよりTera Termで接続します。