Memo

Ubuntu

https://jp.ubuntu.com/download

カーネルの選択

言語設定

リモートデスクトップ

外部ストレージのフォーマット

外部ストレージのマウント

Supervisor

iptables

iptables-persistentのインストール sudo apt install -y iptables-persistent
現在のルールを保存 sudo /etc/init.d/netfilter-persistent save
保存したルールを再読み込み sudo /etc/init.d/netfilter-persistent reload
現在のルール確認 sudo iptables -L
特定IPの許可 sudo iptables -A INPUT -p tcp -s IPアドレス --dport ポート番号 -j ACCEPT
ルールの削除 sudo iptables -D INPUT 行番号
すべて受信拒否 sudo iptables -A INPUT -p tcp --dport ポート番号 -j DROP

公開鍵暗号

秘密鍵・公開鍵を作成する。(RSA、2048bit)
ssh-keygen -t rsa -b 2048

秘密鍵は~/.ssh/id_rsaに、公開鍵は~/.ssh/id_rsa.pubに保存される。 ssh-keygenのみを実行した場合はed25519形式の鍵が作成される。

SSH

GitHub

OpenSSL

Apache 2

ユーザディレクトリの有効化:
sudo a2enmod ユーザディレクトリ

SSL

リバースプロキシ

CGI

シンボリックリンクを作成する。

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

/etc/apache2/mods-available/userdir.confを編集する。 AddHandlerにはCGIとして動作させたいファイルの拡張子を入力する。

<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
AllowOverride None
Options +ExecCGI
Require all granted
AddHandler cgi-script .cgi .py
</Directory>
</IfModule>

最後に設定を反映する。

sudo systemctl restart apache2

Nginx

SSL

適当なconfファイルを作成し、下記のように追記する。

server {
    listen 443 ssl;
    server_name FQDN;
    ssl_certificate SSL証明書のパス;
    ssl_certificate_key 秘密鍵のパス;
}

シンボリックリンクを作成する。

sudo ln -s confファイルのパス /etc/nginx/sites-enabled/

設定を反映する。

sudo systemctl restart nginx

fail2ban

/etc/fail2ban/jail.localに記述する。

[xxx]
enabled = true
port = http,https
filter = xxx
logpath = /var/log/nginx/access.log
action = iptables-multiport[name=404, port="http,https", protocol=tcp]
maxretry = 1
findtime = 30
bantime = -1
ignoreip = IPホワイトリスト(スペース区切り)

/etc/fail2ban/filter.d/xxx.confに正規表現を記述する。 ignoreregrexでCSSやJSを指定しておくことで誤BANを防ぐ。

[Definition]
failregex =  ^.*"(GET|POST).*" (403|404) .*$
ignoreregex = \.(jpe?g|js|css)

正規表現のマッチング結果については下記コマンドで確認できる。

fail2ban-regex /var/log/access.log xxx.conf --print-all-matched

BAN情報は下記コマンドで確認できる。

sudo fail2ban-client status xxx

Qt6

公式ホームページ

Inno Setup

公式ホームページ

設定確認用テンプレート

#define MyAppName "アプリケーション名"
#define MyAppVersion "バージョン番号"
#define MyAppPublisher "作成者名"
#define MyAppURL "ホームページのURL"
#define MyAppExeName "バイナリ名(EXE)"

[Setup]
AppId={{...}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={%USERPROFILE}\{#MyAppName}
DisableProgramGroupPage=yes
LicenseFile=ライセンスファイルのパス
PrivilegesRequired=lowest
Compression=lzma
SolidCompression=yes
WizardStyle=modern
OutputBaseFilename=インストーラ名

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "バイナリがあるディレクトリパス\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "バイナリがあるディレクトリパス\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

WSL2

初期設定

その他

Ollama

公式ホームページ

ホストの変更

設定ファイルを編集する。

sudo systemctl edit ollama

以下の内容を入力する。

[Service]
Environment="OLLAMA_HOST=IPアドレス"

設定を反映する。

sudo systemctl daemon-reload
sudo systemctl restart ollama

JupyterHub

公式ホームページ

JupyterHubの共通パッケージのインストール

sudo -u jupyterhub /usr/local/jupyterhub/env/bin/pip install jupyterlab