各Word Pressのバックアップを取ります。(DBのため)。
WebrootはUSBHDDで引き継ぎます。
# 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
DBがあるので、
/var=50GB /=70GB (EFI:128MB)
でUBUNTU22.04LTSをインストールしました。
SetUpPackとして、20.04LTSの設定ファイルをとっておき、ext4のUSBメモリに入れて、最初にホームにコピーし、ここから、適宜コピーして設定をしていきました。
IP固定は、ルータの方から、MACアドレスを入れて行います。(もうできていました)
〇/etc/systemd/logind.conf ファイルを編集し下記の行を変更。
$ sudo nano /etc/systemd/logind.conf
- #HandleLidSwitch=suspend + HandleLidSwitch=ignore
〇設定を反映
$ sudo systemctl restart systemd-logind
一番面倒なところです。
RDP接続になりました(VNCはデバック中のようでRealVNCからはつながりませんでした)
mRemoteNGが使いやすい(ただし、IPアドレス・フルカラーで接続ないとうまくいかない)
Password and Keys application -> Right-click on Login keyring -> change the password to blank.
をしないと、RDPのパスワードが自動的に変更されてしまう。
sudo apt install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra
スタートアップへの追加
xscreensaver -nosplash
設定上は、ブランクスクリーンを<しない>にする。
なんか地味に、Terminalが大きすぎです。
$ sudo apt install fonts-takao*
設定から入り、自動的に出るインストールを済ませる。以降Mozcツールが使えます。
マウントポイント、fstabを過去のfstabから設定
SetUpPackから、USB-HDDのfstab入れ替え、マウントポイント整備、HDD組付け再起動。
$ sudo apt install samba
SetUpPackからsmb.conf入れ替え
デーモンの再起動で、設定反映
$ sudo service smbd restart $ sudo service nmbd restart
※エラーの場合、samba.confのinterfaceのデバイスを合わせること
$ 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
/etc/php/8.1/apache2/php.ini memory_limit = 128M upload_max_filesize = 128M post_max_size = 128M
$ sudo apt-get install mariadb-server mariadb-client
$ 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
$ 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
$ 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
$ 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;
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
※設定前に、各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
/etc/apache2/sites-available <VirtualHost *:80> ServerName mifmif.mydns.jp ServerAlias mifmif.ddo.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>
$ sudo apt install chrony
SetUpPackから/etc/chrony/chrony.confを入れ替えて設定
$ sudo service chronyd restart $ chronyc sources
$ 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)
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を見ておくこと。
$ 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の用意をしておく
$ sudo apt install msmtp
SetUpPackから/rootに.msmtprcをペースト
テスト
$ echo 'Test for mail' | awk 'BEGIN{print "Subject:Test \n";}{print $0;}' | msmtp -a default <mail-address>
# other_vhosts_access.log to apache.log CustomLog ${APACHE_LOG_DIR}/access.log combined
/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
サイトから最新を取得のこと
$ sudo apt install apparmor-utils $ sudo aa-disable /usr/share/hplip/plugin.py
hplip-3.22.6(最新のプラグイン)-plugin.runなどが必要になることがある。
※ Linux(UBUNTU)で、セットアップ時に、本体が探せない場合があり、Lan接続で、HPE070EA6EA3CF.local (うちの機体の場合)と検索が必要
$ sudo add-apt-repository ppa:umang/indicator-stickynotes $ sudo apt update $ sudo apt install indicator-stickynotes
自動起動に
/usr/bin/canberra-gtk-play --id="desktop-login" --description="GNOME Login"
を追加する。
最後にフルスキャン→メール送信テスト
rootでclam-full.shを実行・・・2,3時間後にScan結果がメールでくればOK
表題通りですが、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
$ sudo apt install php8.1-intl $ sudo systemctl reload apache2
$ sudo apt install geoipupdate $ geoipupdate -V
バージョン4以上ならOK
取っておいた以下のライセンス入りファイルを置く。
/etc/GeoIP.conf
ダウンロードのテスト
$ sudo geoipupdate -v
rootのupdate_giolite2でアップデートしているので。取って起いたものをコピー。実行権限を与え、テストしてみること。
NextCroudは使ってないので、設定しない。