#author("2022-09-15T15:52:03+09:00","default:regex","regex") #author("2022-09-15T18:25:18+09:00","default:regex","regex") *wpserver(Web+TimeServer)をUbuntu22.04LTSへ [#l41eed76] *古い方(UBUNTU20.04LTS)のWord Pressのバックアップを作成 [#bdfbed66] 各Word Pressのバックアップを取ります。(DBのため)。~ WebrootはUSBHDDで引き継ぎます。~ **古い方(UBUNTU20.04LTS)のLet's encryptの止め方(解除の仕方)・・・ [#b424008b] # certbot revoke --cert-path /etc/letsencrypt/live/mifmif.mydns.jp/cert.pem Saving debug log to /var/log/letsencrypt/letsencrypt.log Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org ---------- service chronyd restart --------------------------------------------------------------------- Would you like to delete the cert(s) you just revoked? ------------------------------------------------------------------------------- (Y)es (recommended)/(N)o: y ~ *Install [#yc3ca88f] DBがあるので、~ /var=50GB /=70GB (EFI:128MB) でUBUNTU22.04LTSをインストールしました。~ SetUpPackとして、20.04LTSの設定ファイルをとっておき、ext4のUSBメモリに入れて、最初にホームにコピーし、ここから、適宜コピーして設定をしていきました。~ *IP固定 [#f55ea26f] IP固定は、ルータの方から、MACアドレスを入れて行います。(もうできていました)~ **ノートPCで蓋を閉じてもサスペンドを防止 [#s9efb08f] 〇/etc/systemd/logind.conf ファイルを編集し下記の行を変更。~ ~ $ sudo nano /etc/systemd/logind.conf ~ - #HandleLidSwitch=suspend + HandleLidSwitch=ignore ~ 〇設定を反映 ~ $ sudo systemctl restart systemd-logind ~ *リモートデスクトップ関係 [#kcab60bb] 一番面倒なところです。~ RDP接続になりました(VNCはデバック中のようでRealVNCからはつながりませんでした)~ mRemoteNGが使いやすい(ただし、IPアドレス・フルカラーで接続ないとうまくいかない)~ Password and Keys application -> Right-click on Login keyring -> change the password to blank.~ をしないと、RDPのパスワードが自動的に変更されてしまう。~ **暗転すると接続が切れるのでxscreensaverをつかう。 [#ofa146b9] sudo apt install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra スタートアップへの追加~ xscreensaver -nosplash 設定上は、ブランクスクリーンを<しない>にする。~ ~ *Takao Fontへ [#s0d6a37d] なんか地味に、Terminalが大きすぎです。 $ sudo apt install fonts-takao* ~ *言語設定 [#k79effa5] 設定から入り、自動的に出るインストールを済ませる。以降Mozcツールが使えます。~ ~ *fstab [#f475b969] マウントポイント、fstabを過去のfstabから設定~ ~ *Samba関係 [#o8cc0445] SetUpPackから、USB-HDDのfstab入れ替え、マウントポイント整備、HDD組付け再起動。~ **SAMBAインストール [#r6af5eec] ~ $ sudo apt install samba ~ SetUpPackからsmb.conf入れ替え~ デーモンの再起動で、設定反映~ $ sudo service smbd restart $ sudo service nmbd restart ~ ※エラーの場合、samba.confのinterfaceのデバイスを合わせること~ *apache2,PHP8.1設定 [#vc4a2eb4] **まずPukiwiki1.5.4向け~ [#nf33afb9] ~ $ sudo apt-add-repository ppa:ondrej/apache2 $ sudo apt-get install apache2 $ sudo add-apt-repository ppa:ondrej/php $ sudo apt install libapache2-mod-php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xmlrpc php8.1-zip $ sudo apt upgrade ~ **Pukiwiki1.5.4向けphp.iniの編集 [#ea6c45b9] ~ /etc/php/8.1/apache2/php.ini memory_limit = 128M upload_max_filesize = 128M post_max_size = 128M ~ **Word Press向け [#q55142cd] $ sudo apt-get install mariadb-server mariadb-client ~ -インストール後、次のコマンドを叩いてMariadb(mysql)の初期設定 ~ $ sudo mysql_secure_installation Enter current password for root (enter for none): そのままエンターを押す Set root password? [Y/n]: Y New password: パスワードの入力 "sql-root-password" Re-enter new password: パスワードの入力 "sql-root-password" Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y **Word Press向けphpのインストール [#c2b0021a] ~ $ sudo apt install php8.1 libapache2-mod-php8.1 php8.1-common php8.1-mbstring php8.1-xmlrpc php8.1-gd php8.1-xml php8.1-mysql php8.1-cli php8.1-zip php8.1-curl ~ **Word Press向けphp.iniの編集 [#a41a71aa] ~ $ sudo gedit /etc/php/8.1/apache2/php.ini file_uploads = On allow_url_fopen = On memory_limit = 256M upload_max_filesize = 256M post_max_size = 256M max_execution_time = 360 date.timezone = Asia/Tokyo mysqli.default_socket = /var/run/mysqld/mysqld.sock ~ **MariaDBにWordPress用のデータベースを作成する。 [#se626daa] ~ $ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE alpha; MariaDB [(none)]> CREATE USER 'alpha'@'localhost' IDENTIFIED BY 'password-for-alpha'; MariaDB [(none)]> GRANT ALL ON alpha.* TO 'alpha'@'localhost' IDENTIFIED BY 'password-for-alpha' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT; ~ $ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE masterkudo; MariaDB [(none)]> CREATE USER 'masterkudo'@'localhost' IDENTIFIED BY 'password-for-masterkudo'; MariaDB [(none)]> GRANT ALL ON masterkudo.* TO 'masterkudo'@'localhost' IDENTIFIED BY 'password-for-masterkudo' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT; ~ ~ *データーベースの回復 [#a5141e60] ~ USB-HDDのバックアップ置き場に行き、バックアップカレントディレクトリ上に解凍用フォルダを作って、そこをカレントディレクトリにして、解凍。~ $ cd /publicmnt/Public/wp-backup/alpha/ $ sudo mkdir temp $ cd temp $ sudo tar xvzf ../<バックアップファイル>.tar.gz $ sudo mysql -u root alpha < alpha.sql $ cd .. $ sudo rm -rf temp ~ $ cd /publicmnt/Public/wp-backup/masterkudo/ $ mkdir temp $ cd temp $ sudo tar xvzf ../<バックアップファイル>.tar.gz $ sudo mysql -u root masterkudo < masterkudo.sql $ cd .. $ sudo rm -rf temp ~ *Let's encrypt設定 [#pad7505a] ※設定前に、各DDNSをアップデートする→cron tabのコマンドをrootで実行 /usr/bin/wget -O ddoupdatelog 'http://free.ddo.jp/dnsupdate.php?dn=<Name>&pw=<Password>' /usr/bin/wget -O mydnsupdatelogipv4 'http://<Name>:<Password>@ipv4.mydns.jp/login.html' /usr/bin/wget -O mydnsupdatelogipv6 'http://<Name>:<Password>@ipv6.mydns.jp/login.html' ~ $ sudo apt install certbot python3-certbot-apache ~ **certbot適用前のmifmif.mydns.jp.confを/etc/apache2/sites-availableへ [#sa839888] ~ /etc/apache2/sites-available <VirtualHost *:80> ServerName mifmif.mydns.jp ServerAlias mifmif.ddo.jp ServerAdmin mifjpn@outlook.jp ServerAdmin <mailaddress> DocumentRoot /publicmnt/Public/webroot/ <Directory "/publicmnt/Public/webroot"> Require all granted </Directory> </VirtualHost> ~ ~ $ sudo a2dissite 000-default.conf $ sudo a2ensite mifmif.mydns.jp.conf $ sudo systemctl reload apache2 ~ ローカルで、httpでの各ページが表示できることを試す。~ ~ $ sudo apache2ctl configtest ********* Syntax OK を確認~ certbotにより、SSL再設定。~ $ sudo certbot --apache -d mifmif.mydns.jp -d mifmif.ddo.jp ~ .htaccessの有効化~ sudo a2enmod headers sudo a2enmod rewrite ~ /etc/apache2/apache2.confの以下を変更 ~ <Directory /publicmnt/Public/webroot/alpha> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> <Directory /publicmnt/Public/webroot/masterkudo> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ~ *chrony [#t9399f27] $ sudo apt install chrony ~ SetUpPackから/etc/chrony/chrony.confを入れ替えて設定~ $ sudo service chronyd restart $ chronyc sources ~ *ファイヤーウォールの設定 [#e1b7b193] $ sudo ufw enable $ sudo ufw default DENY for vnc $ sudo ufw allow 5900 for RDP $ sudo ufw allow 3389 for ntp $ sudo ufw allow ntp SambaとCupsとApache $ sudo ufw allow Samba $ sudo ufw allow http $ sudo ufw allow 443/tcp $ sudo ufw reload $ sudo ufw status 状態: アクティブ To Action From -- ------ ---- 5900 ALLOW Anywhere 3389 ALLOW Anywhere 123/udp ALLOW Anywhere Samba ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 5900 (v6) ALLOW Anywhere (v6) 3389 (v6) ALLOW Anywhere (v6) 123/udp (v6) ALLOW Anywhere (v6) Samba (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) ~ *Cron [#ea99383e] SetUpPackから/rootへコピー後、見ながらcrontab -eで設定。~ 概略~ ~ */12 * * * * /usr/bin/wget -O ddoupdatelog 'http://free.ddo.jp/dnsupdate.php?dn=<Name>&pw=<Password>' */12 * * * * /usr/bin/wget -O mydnsupdatelogipv4 'http://<Name>:<Password>@ipv4.mydns.jp/login.html' */12 * * * * /usr/bin/wget -O mydnsupdatelogipv6 'http://<Name>:<Password>@ipv6.mydns.jp/login.html' */12 * * * * cp /var/log/apache2/* /publicmnt/Public/apachelog/ */12 * * * * /root/remount_usb-hdd.sh > remount_usb-hdd.log 03 00 * * 3 /root/update_giolite2 > /root/update_giolite2.log 00 00 * * 6 /root/clam-full.sh 55 23 15 * * certbot renew ~ 各、DDNSへのCronのLogを見ておくこと。~ *ClamAV [#d2997e98] $ sudo apt install clamav clamav-daemon ※(直したのがある)clamav-freshclamのserviceをストップしないとfreshclamがエラーになる→clam-full.sh編集~ $ sudo systemctl stop clamav-freshclam $ sudo freshclam $ sudo systemctl start clamav-freshclam $ sudo mkdir /var/log/clamav/virus ~ clam-full.shをrootに+xして、cronの用意をしておく~ ~ *msmtp [#c85f2c7d] $ sudo apt install msmtp ~ SetUpPackから/rootに.msmtprcをペースト~ テスト~ $ echo 'Test for mail' | awk 'BEGIN{print "Subject:Test \n";}{print $0;}' | msmtp -a default <mail-address> **apacheのaccess.logがother_vhosts_access.logに記述されている状態なのでaccess.logに統合する~ [#de6dc3a5] -/etc/apache2/apache2.confに以下を付け足す。~ # other_vhosts_access.log to apache.log CustomLog ${APACHE_LOG_DIR}/access.log combined **apachのログローテートを1か月に [#g212af9a] /etc/logrotate.d/apache2を編集して、1月のログをローテートするようにする。~ /var/log/apache2/*.log { monthly missingok rotate 12 compress delaycompress notifempty create 640 root adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then run-parts /etc/logrotate.d/httpd-prerotate fi endscript postrotate if pgrep -f ^/usr/sbin/apache2 > /dev/null; then invoke-rc.d apache2 reload 2>&1 | logger -t apache2.logrotate fi endscript } リスタートして設定を反映~ sudo service apache2 restart *hplip [#bd439a16] サイトから最新を取得のこと ~ **スキャナではプラグインが読み込めない場合に、 [#k549d68e] $ sudo apt install apparmor-utils $ sudo aa-disable /usr/share/hplip/plugin.py hplip-3.22.6(最新のプラグイン)-plugin.runなどが必要になることがある。~ ~ ※ Linux(UBUNTU)で、セットアップ時に、本体が探せない場合があり、Lan接続で、HPE070EA6EA3CF.local (うちの機体の場合)と検索が必要~ ~ *バックアップメモの付箋 [#oc64eff7] $ sudo add-apt-repository ppa:umang/indicator-stickynotes $ sudo apt update $ sudo apt install indicator-stickynotes ~ *ログイン音をつける・・・(フタを閉めてしまうので進みが判らないため) [#r54007fb] 自動起動に~ /usr/bin/canberra-gtk-play --id="desktop-login" --description="GNOME Login" ~ を追加する。~ 最後にフルスキャン→メール送信テスト~ rootでclam-full.shを実行・・・2,3時間後にScan結果がメールでくればOK~ ----~ *Word Pressに「imagickがインストールされていない」と言われます [#q714ab25] 表題通りですが、PHP用にpeclというphpの拡張モジュール作成コマンドをかけて作らないといけません。(面倒なので無視してもよかったんですがやっちゃいました。) 用意~ $ sudo apt install imagemagick $ sudo apt install libmagickwand-dev $ sudo apt install pkg-config $ sudo apt install php-dev ~ ビルド~ $ sudo pecl install imagick 19 source files, building running: phpize Configuring for: PHP Api Version: 20180731 Zend Module Api No: 20180731 Zend Extension Api No: 320180731 Please provide the prefix of ImageMagick installation [autodetect] :{Press Enter} ・・・ You should add "extension=imagick.so" to php.ini ~ 設定~ sudo gedit /etc/php/8.1/apache2/php.ini 950: extension=imagick.so ~ *オプションのモジュール intl をインストール [#oa8bed4d] $ sudo apt install php8.1-intl $ sudo systemctl reload apache2 ---- *geoipupdate=Slimstatの国名の更新設定 [#w3f9efcf] $ sudo apt install geoipupdate $ geoipupdate -V バージョン4以上ならOK~ 取っておいた以下のライセンス入りファイルを置く。~ /etc/GeoIP.conf ダウンロードのテスト~ $ sudo geoipupdate -v rootのupdate_giolite2でアップデートしているので。取って起いたものをコピー。実行権限を与え、テストしてみること。~ ---- NextCroudは使ってないので、設定しない。