Ubuntu インストールと初期設定
インストール直後サイズ:5.1GB
セキュリティ
- 作業用ユーザー作成
- SSH root ログイン不可
- SSH 公開鍵認証のみ
- ufw fail2ban ファイアウォール
- ローカル接続のみ許可
- SSH ポート変更
- 適切な所有権 755, 644
インストール
Ubuntu の初期設定
サブネット 192.168.100.0/24アドレス 192.168.100.xxxゲートウェイ 192.168.100.1ネームサーバー 8.8.8.8,8.8.4.4初期設定
ルーターのポートをフォワーディング
root パスワード (付与されたものと同じでいい)
設定しておかないと一般ユーザーから su ができない
sudo passwd rootユーザー追加、sudo 付与
adduser USERsudo gpasswd -a $USER sudoこれは不要 ユーザーに sudo 権限 (ubuntu では不要)
# rootで実行su
usermod -aG wheel [USER]EDITOR=vim visudoこれも不要 visudo で wheel グループを有効化
# アンコメント%wheel ALL=(ALL) ALLアップデートとタイムゾーン
sudo apt update && sudo apt upgrade -y
sudo c set-timezone Asia/Tokyoウェルカムメッセージ
# コメントアウトするsudo vim /etc/update-motd.d/10-help-textsudo vim /etc/update-motd.d/50-motd-news
# またはすべて無効化 > /etc/motd のみ表示sudo chmod -x /etc/update-motd.d/*
# ログイン時一切表示しないtouch ~/.hushloginログインメッセージ
sudo vim /etc/ssh/sshd_config
# motdを非表示PrintMotd no
# 最後のログインを非表示PrintLastLog noログインバナー
sudo vim /etc/motdアスキーアート https://patorjk.com/software/taag/#p=display&f=Fun%20Face&t=Type%20Something%20
IVrit、Varsity
┬ ┬┌─┐┬─┐┌┬┐╔═╗╦═╗╔═╗╔═╗╔═╗││││ │├┬┘ ││╠═╝╠╦╝║╣ ╚═╗╚═╗└┴┘└─┘┴└──┴┘╩ ╩╚═╚═╝╚═╝╚═╝ホスト名変更
sudo echo ホスト名 > /etc/hostname
# またはsudo vim /etc/hostnamehosts も変更
sudo vim /etc/hosts
127.0.0.1 localhost SolarPiIPv4 のみ
https://linuxfan.info/force-apt-ipv4-or-ipv6
apt に失敗する場合
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4IP アドレスの変更
インストール時にここに記載される
sudo vim /etc/netplan/00-installer-config.yamlnetwork: ethernets: ens160: addresses: - 192.168.100.XX/24 gateway4: 192.168.100.1 nameservers: addresses: - 8.8.8.8 search: [] version: 2適用
sudo netplan applySSH
sudo vim /etc/ssh/sshd_configPermitRootLogin no公開鍵で SSH 接続
ssh-keygen -t rsa -b 4096
# ユーザー名とホスト名を記述しないssh-keygen -t rsa -b 4096 -C ""
パスワードなし
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
# 秘密鍵確認cd ~/.sshcat id_rsa既存の公開鍵を使う場合は、~/.ssh/ に authorized_keys を置く
mkdir -p ~/.ssh && cd $_
cat authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7o4HLMvoz5rE2jx8BILBApOQNF/f+iHvMCr1d3uIfGdoFKfiJ4Ps3M8Q/sVhNb+tT+d2aF46pdpn+qtWJLb5PzaghGudL6JbStPWL84ytd5dJDz8j34AlnnNYZLEqW6MI+cPFKeZa0J31ALFKFvuecLvWmqc4u773TgY+P3mNDPdreKV9G92RrdXZabb8SbyM4RvdpUqzf2S0NHn28aHqkQSKKliT01+8mQMPOmVrqxcT5keOykhZ/+TLVanQID10St/271CJJLERkXsYIeN1sBhi8WW4hUD9dgBtHSOBwkTVpg4u/I9vmtFg1FguJWIeYaW3Kq2vmXJBeKes5sS/....chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keysパスワードによる認証を許可しない (VM なら紛失時復旧可能)
sudo vim /etc/ssh/sshd_config
# アンコメントPasswordAuthentication noPermitRootLogin noPubkeyAuthentication yesChallengeResponseAuthentication nosudo sed -i "s/^#\?PasswordAuthentication.*/PasswordAuthentication no/" /etc/ssh/sshd_configsudo sed -i "s/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/" /etc/ssh/sshd_configsudo sed -i "s/^#\?PermitRootLogin.*/PermitRootLogin no/" /etc/ssh/sshd_confighttps://tech-blog.rakus.co.jp/entry/20210512/ssh
リモート接続時の省略
クライアントに .ssh/config ファイルを作成しておく
パスワードは保存できないので、公開鍵を使う
Host [エイリアス1] HostName リモートのホスト名 User リモートユーザー IdentityFile /home/[user名]/.ssh/[秘密鍵]必要なら加える
Port 443接続
ssh エイリアス1root ログイン不可にする
PermitRootLogin no再起動
sudo service ssh restartnvim
# 不要# sudo time apt install nodejs npm -y%%sudo apt install neovim -ymkdir -p ~/.config/nvimvim ~/.config/nvim/init.vim設定
runtime! color.vimruntime! keymap.vimruntime! option.vim
set nowritebackupset nobackupset virtualedit=blockset backspace=indent,eol,startset ambiwidth=doubleset wildmenuset ignorecaseset smartcaseset wrapscanset incsearchset hlsearchset noerrorbellsset shellslashset showmatch matchtime=1set cinoptions+=:0set cmdheight=2set laststatus=2set showcmdset display=lastlineset list" set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%set history=10000set expandtabset encoding=utf-8scriptencoding utf-8set shiftwidth=4set softtabstop=4set tabstop=4set guioptions-=Tset guioptions+=aset guioptions-=mset guioptions+=Rset showmatchset smartindentset noswapfileset nofoldenableset titleset numbernnoremap <Esc><Esc> :nohlsearch<CR><ESC>syntax onset nrformats=set whichwrap=b,s,h,l,<,>,[,],~" set mouse=ahi Comment ctermfg=246set clipboard+=unnamedplus
augroup source-vimrc autocmd! autocmd BufWritePost *vimrc source $MYVIMRC | set foldmethod=marker autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRCaugroup END
augroup auto_comment_off autocmd! autocmd BufEnter * setlocal formatoptions-=r autocmd BufEnter * setlocal formatoptions-=oaugroup END
augroup MyXML autocmd! autocmd Filetype xml inoremap <buffer> </ </<C-x><C-o> autocmd Filetype html inoremap <buffer> </ </<C-x><C-o>augroup END
if has("autocmd") augroup redhat " In text files, always limit the width of text to 78 characters autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif augroup ENDendifキーマップ https://zenn.dev/2lu3/articles/f048385af884f7
vim ~/.config/nvim/keymap.vimlet mapleader = "\<Space>"
inoremap <silent> jj <Esc>:<C-u>w<CR>inoremap jk <Esc>inoremap <silent> っj <Esc>:<C-u>w<CR>
nmap <silent> <Esc><Esc> :nohlsearch<CR>
nnoremap <silent> <Leader>v :vs<CR>nnoremap <silent> <Leader>s :sp<CR>nnoremap <silent> <Leader>h <C-w>hnnoremap <silent> <Leader>j <C-w>jnnoremap <silent> <Leader>k <C-w>knnoremap <silent> <Leader>l <C-w>lnnoremap <silent> <Leader>h <C-w>hnnoremap <silent> <Leader>j <C-w>jnnoremap <silent> <Leader>k <C-w>knnoremap <silent> <Leader>l <C-w>l
nnoremap j gjnnoremap k gkvnoremap j gjvnoremap k gkinoremap <C-j> <Down>inoremap <C-k> <Up>inoremap <C-h> <Left>inoremap <C-l> <Right>
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<S-TAB>"カラー管理 (配色ごと)
vim ~/.config/nvim/color.vimカラー A
set cursorlinehi clear CursorLinehi Normal ctermbg=235 ctermfg=255hi lineNR ctermbg=237 ctermfg=255hi cursorlineNR ctermbg=27 ctermfg=255hi CursorLine ctermbg=237hi Search ctermbg=197 ctermfg=255プラグイン管理 vim-plug root でも必要
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'プラグインディレクトリ作成
mkdir -p ~/.config/nvim/plugged使うプラグインを記述
vim ~/.config/nvim/option.vimvim-airline:ステータスバーカスタマイズ
call plug#begin('~/.config/nvim/plugged')
Plug 'vim-airline/vim-airline'Plug 'vim-airline/vim-airline-themes'Plug 'tpope/vim-commentary'Plug 'preservim/nerdtree'
call plug#end()
nnoremap <silent><C-e> :NERDTreeToggle<CR>一旦 nvim 終了
root でも sh=>Pluginstall 作業をする OrangePi ではなぜか root で実行できず
:PlugInstallNERDTree 使い方
:NERDTreeToggle
またはCtrl + eカラー設定
以下に .vim のカラーファイルを置く
~/.config/nvim/colorsvim ~/.config/nvim/init.vim
colorscheme XXXVim
nvim があるなら不要
vim ~/.vimrc
# root、sudo の場合suvim ~/.vimrc設定 再読み込み
source ~/.vimrc
# root の場合susource ~/.vimrcsudo の場合 root 側 の設定も変更する
まとめて設定
https://qiita.com/iwaseasahi/items/0b2da68269397906c14c
source ~/.vimrc でエラーが出ても大丈夫
set nowritebackupset nobackupset virtualedit=blockset backspace=indent,eol,startset ambiwidth=doubleset wildmenuset ignorecaseset smartcaseset wrapscanset incsearchset hlsearchset noerrorbellsset shellslashset showmatch matchtime=1set cinoptions+=:0set cmdheight=2set laststatus=2set showcmdset display=lastlineset listset listchars=tab:^\ ,trail:~set history=10000set expandtabset shiftwidth=4set softtabstop=4set tabstop=4set guioptions-=Tset guioptions+=aset guioptions-=mset guioptions+=Rset showmatchset smartindentset noswapfileset nofoldenableset titleset numberset clipboard=unnamed,autoselectnnoremap <Esc><Esc> :nohlsearch<CR><ESC>syntax onset nrformats=set whichwrap=b,s,h,l,<,>,[,],~set mouse=a
augroup source-vimrc autocmd! autocmd BufWritePost *vimrc source $MYVIMRC | set foldmethod=marker autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRCaugroup END
augroup auto_comment_off autocmd! autocmd BufEnter * setlocal formatoptions-=r autocmd BufEnter * setlocal formatoptions-=oaugroup END
augroup MyXML autocmd! autocmd Filetype xml inoremap <buffer> </ </<C-x><C-o> autocmd Filetype html inoremap <buffer> </ </<C-x><C-o>augroup END
if has("autocmd") augroup redhat " In text files, always limit the width of text to 78 characters autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif augroup ENDendif色設定
256 色確認 https://jonasjacek.github.io/colors/
hisyntax 凡例 https://vim-jp.org/vimdoc-ja/syntax.html
Normal:一般的な文字の背景。背景をNONEにすることで全体の80%程度は透過LineNr :Vimの左にある行数を表す数字VertSplit:vimを縦に分割した時の分割線Special:&などの記号Identifier:vimrcとかでよくあるのような予約語。Comment:コメント# 通常テキストhighlight Normal ctermbg=233 ctermfg=grey
# 行番号set cursorlinehi clear CursorLinehighlight lineNR ctermbg=255 ctermfg=235highlight cursorlineNR ctermbg=255 ctermfg=4クリップボード連携
クリップボードの使える vim へ
sudo apt remove vim -y &&sudo apt install vim-gtk -yクリップボード連携設定
set clipboard=unnamedplus通常モードのみ有効、マウスで選択してコピー
nginx
sudo apt install nginx -yユーザー:www-data に変更する
sudo chown $USER:www-data -R /var/www/htmlグループを確認後、ログアウトする
idパーミッションを一括変更
find /var/www/html -type d -exec chmod 755 {} +find /var/www/html -type f -exec chmod 644 {} +80 ポートのみ
sudo vim /etc/nginx/sites-available/defaultdefault
server { listen 80 default_server; listen [::]:80 default_server;
root /var/www/html; index index.php index.html /_h5ai/public/index.php;
server_name _; server_tokens off;
client_max_body_size 100M;
location / { try_files $uri $uri/ =404; }
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # fastcgi_pass 127.0.0.1:9000; include fastcgi_params; }}SSL 443 ポート
mkcert で ホスト名の公開鍵と秘密鍵を作成 (ローカルの場合)
mkcert wp wp.com 192.168.100.XXX鍵ファイルを nginx 内に作成
sudo mkdir /etc/nginx/ssl
# それぞれ鍵を作成 > パーミッション指定は特にいらないsudo vim /etc/nginx/ssl/php.pemsudo vim /etc/nginx/ssl/php-key.pemSSL
listen 8090 ssl http2; ssl on; ssl_certificate /etc/letsencrypt/live/XXX.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/XXX.com/privkey.pem;default の構成を変更 7.4=>8.1
server { listen 443 ssl http2; root /var/www/html; index index.php index.html /_h5ai/public/index.php;
server_name _; server_tokens off; client_max_body_size 100M;
ssl on; ssl_certificate /etc/nginx/ssl/php.pem; ssl_certificate_key /etc/nginx/ssl/php-key.pem;
location / { try_files $uri $uri/ =404; }
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; include fastcgi_params; }}
server { listen 80; server_name _; return 301 https://$host$request_uri;}シンボリックリンク (default は任意のファイル名)
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
# 解除sudo unlink /etc/nginx/sites-enabled/defaultApache のふりをする
error_page 403 404 500 503 = /apache_404.html; location = /apache_404.html { return 404 "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p>The requested URL $request_uri was not found on this server.</p>\n<hr>\n<address>Apache/2.2.31 Server at $host Port $server_port</address>\n</body></html>"; internal; }エラーページ
自前 error.php の場合
error_page 404 /error.php?id=404; error_page 403 /error.php?id=403; error_page 401 /error.php?id=401;
error_page 403 /error.php?id=500; error_page 401 /error.php?id=502; error_page 401 /error.php?id=503;
location = /error.php?id=404 { root /var/www/html; } location = /error.php?id=403 { root /var/www/html; } location = /error.php?id=401 { root /var/www/html; } location = /error.php?id=500 { root /var/www/html; } location = /error.php?id=502 { root /var/www/html; } location = /error.php?id=503 { root /var/www/html; }ローカルの hosts
sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'sudo vim /etc/hosts
192.168.100.xxx php.comPHP 7.4
sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip unzip -yPHP 8.1
以下は debian で確認
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
curl -fsSL https://packages.sury.org/php/apt.gpg| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-keyring.gpg
sudo apt updatesudo apt install php8.1-fpm php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip unzip -yMySQL
sudo apt install mariadb-server mariadb-client -y
sudo systemctl stop mysql.servicesudo systemctl start mysql.servicesudo systemctl enable mysql.service
sudo mysql_secure_installation
- - -Enter current password for root (enter for none): EnterをおすSet root password? [Y/n]: YNew password: Enter passwordRe-enter new password: Repeat passwordRemove anonymous users? [Y/n]: YDisallow root login remotely? [Y/n]: YRemove test database and access to it? [Y/n]: YReload privilege tables now? [Y/n]: Y----
sudo systemctl restart mysql.serviceMySQL テーブル作成
sudo mysql -u root -p
root パスワード入力
CREATE DATABASE nextcloud;
# ユーザー作成CREATE USER 'user'@'localhost' IDENTIFIED BY 'PASSWORD';
# データベースの権限GRANT ALL ON nextcloud.* TO 'user'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
FLUSH PRIVILEGES;EXIT;ユーザーの権限 (CRUD)
GRANT ALL ON **.* TO 'user'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;ユーザー作成
CREATE USER 'user'@'localhost' IDENTIFIED BY 'PASSWORD';FLUSH PRIVILEGES;EXIT;root 権限
grant all privileges on *.* to root@localhost identified by 'PASSWORD' with grant option;
FLUSH PRIVILEGES;EXIT;SQlite3
sudo apt install php7.4-sqlite3一般ユーザー作成
# rootで実行adduser ユーザー名パスワード、所属を入力後、y で作成
sudo を付与
# rootで実行gpasswd -a ユーザー名 sudosudo グループに入っているか確認
cat /etc/group | grep ユーザー名メモ:以下のコマンドでも OK
sudo usermod -aG sudo ユーザー名ファイアウォール
https://qiita.com/hana_shin/items/a630871dce209cff04f3
- SSH 22
- Web 80, 443
- FTP 21
- Rsysnc 873
- Samba 139, 445
- WireGuard 任意
sudo apt install ufw -ysudo ufw enable設定再読み込み
sudo ufw reloadポート許可
sudo ufw allow XXX
# 範囲指定ufw allow 1111:2222/tcpudp の場合
sudo ufw allow 21/udpsudo ufw allow 6100:6105/tcpルール削除
sudo ufw delete ルール番号ステータス
sudo ufw statusログ
sudo view /var/log/ufw.logpermission denied on key 'net.ipv4.tcp_sack エラー
T4V の場合 エラーが出ることがあるので再起動が必要
IP アドレス、ネットワーク指定
# SSH22 をローカルのみsudo ufw allow from 192.168.100.0/24 to any port 22sudo apt install ufw
sudo ufw allow 80/tcpsudo ufw allow 443/tcp# sudo ufw allow 873/tcp
sudo ufw allow from 192.168.100.0/24 to any port 22/tcpsudo ufw allow from 10.0.0.0/24 to any port 22/tcpFail2ban
https://www.osarusystem.com/misc/fail2ban_with_ufw.html
具体的には、ログファイルに記録される内容を監視して、何度も認証に失敗しているログや、 連続アクセスしているログを見つけると、ファイアーウォールを自動的に調整して、 接続元からの不正アクセスを禁止にします。
sudo apt install -y fail2banフィルタの動作確認
sudo fail2ban-client status sshd再起動
sudo fail2ban-client restartban した IP アドレスを UNBAN
sudo fail2ban-client set sshd unbanip XXX.XXX.XXXsudo vim /etc/fail2ban/jail.local20 秒間で 3 回ログイン失敗で 1 時間アクセス拒否
[sshd]enabled = truebantime = 3600findtime = 20maxretry = 3ufw と連携 https://xnonce.com/fail2ban_ufw/
sudo vim /etc/fail2ban/filter.d/ufw.conf[INCLUDES]before = common.conf
[Definition]failregex = UFW BLOCK.* SRC=<HOST> DSTignoreregex =sudo vim /etc/fail2ban/jail.local[ufw]enabled = truefilter = ufwaction = ufwlogpath = /var/log/ufw.log
bantime = -1findtime = 3dmaxretry = 1ignoreip = 127.0.0.0/8 ::1WordPress
最小構成 これで動作確認した (T4V) ポート 80
server { listen 80; server_name 127.0.0.1;
location / { root /var/www/html; index index.php index.html; try_files $uri $uri/ /index.php?$args; }
location ~ \.php$ { root /var/www/html; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
location ~ /\.ht { deny all; }}nginx に権限を付与、更新作業に必須 以下でできる、WP ダッシュボードからはできない?
# 必要sudo gpasswd -a user www-datasudo chown -R $USER:www-data /var/www/htmlまたは
sudo vim /etc/nginx/nginx.confパーミッションを一括で変更
sudo find /var/www/html -type f -exec chmod 664 {} \;sudo find /var/www/html -type d -exec chmod 775 {} \;SAMBA
sudo apt install samba -ysudo vim /etc/samba/smb.conf[StoragePi] comment = Storage path = /mnt guest ok = no read only = no browsable = yessudo systemctl restart smbdsamba 用のパスワードを設定
sudo smbpasswd -a userufw でポートを開かないと使えない 139, 445
vsftpd
FTP バックアップ
ポートを 21 以外にすると外部から接続できなくなる場合ある
sudo apt -y install vsftpd
sudo vim /etc/vsftpd.conf設定
# スタンドアロンで起動LESTEN=YES
# run two copies of vsftpd for IPv4 and IPv6 エラーがdたらlisten_ipv6=NO
# 31行目:コメント解除 (書き込み許可)write_enable=YES
# パーミッション ディレクトリ=755、ファイル=644local_umask=022
# 99,100行目:コメント解除 (アスキーモード転送許可)ascii_upload_enable=YESascii_download_enable=YES
# 122行目:コメント解除 (chroot 有効)chroot_local_user=YES
# 123行目:コメント解除 (chroot リスト有効)chroot_list_enable=YES
# 125行目:コメント解除 (chrootリスト指定)chroot_list_file=/etc/vsftpd.chroot_list
# 131行目:コメント解除 (ディレクトリごと一括での転送有効)ls_recurse_enable=YES
# 最終行へ追記:chroot のルートディレクトリ指定。必要ならlocal_root=/var/www/html以下は全てメモ
# パッシブモードでの接続を設定する場合 (不要)pasv_enable=YESpasv_promiscuous=NOpasv_min_port=6100pasv_max_port=6105
# 待受時間 変更不要 (初期値300)idle_session_timeout=300data_connection_timeout=300不要
# seccomp filter をオフ (ログインできない場合追加:基本不要)seccomp_sandbox=NO
# ポートを変更する場合追記 (外部接続できない可能性)listen_port=10991FTP over SSL を有効にする場合 Cyberduck FTP-SSL 21 ポート ローカル証明書を信頼する
# 最後の方にあるので、一番下だけYESにrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyssl_enable=YES必要
sudo vim /etc/vsftpd.chroot_list
# ユーザーを追加storageusersudo systemctl restart vsftpdユーザーを追加していない場合
sudo passwd userファイアウォールを指定している場合
sudo ufw allow 10991/tcp文法チェック
sudo /usr/sbin/vsftpd /etc/vsftpd.confステータス
sudo service vsftpd status接続テスト
telnet localhost 21
# 他のローカルサーバーからtelnet 192.168.100.55 21telnet wasabee.net 21
# Ctrl + ] 、q で抜けるエラー対応
530 ログインエラー 変更
pam_service_name=ftp- ufw ポート確認
開いているポートをチェック
netstat -pan|grep :21;BackWPup
SSL をオンにするとアップロード失敗する。vsftpd でssl_enable=YESにしておく。
mDNS
https://qiita.com/m-tmatma/items/7668afea91aff4fbfa85
mDNS(=multicast DNS) を使うことによりローカル DNS サーバーを立てなくても、LAN 内の名前解決が容易に行えます。
sudo apt install -y avahi-daemonsudo systemctl start avahi-daemonsudo systemctl enable avahi-daemonファイアウォール 5353 ポート UDP
WebDAV
https://github.com/mar10/wsgidav
実用的でない。素直に nextcloud にしたほうがいい
8080 ポート、ユーザー認証
sudo apt install python3-pip -y
pip install wsgidav cheroot python-pam lxml
wsgidav --host=0.0.0.0 --port=8080 --root=/home/user --auth=anonymouswsgidav --host=0.0.0.0 --port=8080 --root=/home/user --auth=pam-login裏で起動
nohup wsgidav --host=0.0.0.0 --port=8080 --root=/home/user --auth=pam-login > /dev/null 2>&1 &匿名で接続 nginx でリバースプロキシ