外部からのアクセス設定
人生何があるかわからない。
素敵なことも、望まないことも、同時にやってきた。情緒どうすんのさ。
設定
- 外部用のIPv4ルーターにて内部IP静的付与
- メトリック設定
- ポートフォアード設定
- mydns.jpの更新設定
- nextcloud側の設定
外部用のIPv4ルーターにて内部IP静的付与
特に備忘録なし
メトリック設定
https://pcvogel.sarakura.net/2021/01/15/32107
$ adeno@blackcore:~$ route -n
カーネルIP経路テーブル
受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース
0.0.0.0 192.168.1.1 0.0.0.0 UG 102 0 0 enp1s0
0.0.0.0 192.168.2.1 0.0.0.0 UG 103 0 0 enp4s0
192.168.1.0 0.0.0.0 255.255.255.0 U 102 0 0 enp1s0
192.168.2.0 0.0.0.0 255.255.255.0 U 103 0 0 enp4s0
enp4s0が外部用
enp1s0が内部用
デフォルトゲートウェイの変更
192.168.2.0/24をデフォルトになるように変更したい。
このあたりを思い出して
https://continue-to-challenge.blogspot.com/2019/06/ipoe.html
adeno@blackcore:~$ nmcli
enp4s0: 接続済み から 有線接続 1
"Realtek RTL8111/8168/8411"
ethernet (r8169), A8:A1:59:**:**:**, hw, mtu 1500
ip4 デフォルト
inet4 192.168.2.21/24
route4 192.168.2.0/24 metric 101
route4 default via 192.168.2.1 metric 101
enp1s0: 接続済み から 有線接続 2.5G
"Realtek RTL8125 2.5GbE"
ethernet (r8169), 88:C9:B3:**:**:**, hw, mtu 1500
ip6 デフォルト
inet4 192.168.1.21/24
route4 192.168.1.0/24 metric 102
route4 169.254.0.0/16 metric 1000
route4 default via 192.168.1.1 metric 102
wlp5s0: 切断済み
"Intel Wireless-AC 3168NGW"
wifi (iwlwifi), F0:57:A6:0E:53:99, hw, mtu 1500
adeno@blackcore:~$ sudo nmcli connection modify "有線接続 1" ipv4.never-default no
adeno@blackcore:~$ sudo nmcli connection modify "有線接続 1" ipv4.ignore-auto-routes no
adeno@blackcore:~$ sudo nmcli connection modify "有線接続 2.5G" ipv4.never-default yes
adeno@blackcore:~$ sudo nmcli connection modify "有線接続 2.5G" ipv4.ignore-auto-routes yes
adeno@blackcore:~$ sudo nmcli con up 有線接続\ 1
adeno@blackcore:~$ sudo nmcli con up 有線接続\ 2.5G
ポートフォアード設定
外部22ポートを内部のサーバーIPの22へ転送
などなど
やっぱりいろいろ忘れるね。。。
ポート制限
サービス名 | ポート |
---|---|
certbot | 80/tcp,443/tcp |
nextcloud | 20443/tcp |
ssh | 22/tcp |
samba |
mydns.jpの更新設定
定期的に実行するのと、グローバルIPが変わったタイミングで実行したい。
定期実行
前回覚えたsystemd.timerで定期的に実行する
$ cat mydns_update.sh
#!/bin/bash
#****.mydns.jp
wget -O - --http-user=****** --http-password=***** https://ipv4.mydns.jp/login.html
$ sudo cat /etc/systemd/system/mydns.renew.service
[Unit]
Description=MyDNS.jp Renew
RefuseManualStart=no
RefuseManualStop=yes
[Service]
Type=oneshot
ExecStart=/home/adeno/BlackCoreEnv/mydns_update.sh
$ sudo cat /etc/systemd/system/mydns.renew.timer
[Unit]
Description=MyDNS.jp Renew
[Timer]
OnBootSec=5min
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target
グローバルIPの変更時に実行
グローバルIPを調べるサービスglobalip.meを使わせてもらう
$ cat chk_gip.sh
#!/bin/bash
#------------------------------------------------------
workpath=/home/adeno/BlackCoreEnv
logname=chkgip.log
mydns_update=$workpath/mydns_update.sh
#------------------------------------------------------
oldip_path=$workpath/gip_old.txt
log_path=$workpath/$logname
echo "Glocal IP 更新チェック" | tee $log_path
date | tee -a $log_path
touch $oldip_path
oldip=`cat $oldip_path`
newip=`curl -s globalip.me | sed '1!d'`
if [ "$newip" != "$oldip" ] ; then
#echo "$newip" | tee -a $oldip_path
echo "Global IP の変更検出:"$oldip" → "$newip | tee -a $log_path
echo "mydns.jpに通知" | tee -a $log_path
$mydns_update | tee -a $log_path
echo $newip > $oldip_path
else
echo "Global IP に変更なし:"$newip | tee -a $log_path
fi
echo "終了" | tee -a $log_path
$ sudo cat /etc/systemd/system/globalip.renew_check.service
[Unit]
Description=Global IP Renew Check
RefuseManualStart=no
RefuseManualStop=yes
[Service]
Type=oneshot
ExecStart=/home/adeno/BlackCoreEnv/chk_gip.sh
$ sudo cat /etc/systemd/system/globalip.renew_check.timer
Global IP Renew Check
$ cat /etc/systemd/system/docker-nextcloud.cert.renew.timer
[Unit]
Description=Docker NextCloud Cert Renew
[Timer]
OnBootSec=3min
OnUnitActiveSec=5m
[Install]
WantedBy=timers.target
Written with StackEdit.