2023年10月30日

New(2024) ご自宅サーバー構築 その1

Ubuntu 22.04のリリースと共に、Ubuntu 18.04で運用しているご自宅サーバーを
更新しようと計画したのですが、遅れに遅れてようやく
本格着手となりました。

現行は、ESXiベースですが、KVM(qemu)で構築してみる予定です。
ESXiの操作は簡単なんですが、H/W(RAID Card)の要件が厳しいので。
また、Cloud環境を構築するほどPCを運用する予定もないし(当然必要もない)

H/Wは、Fujitsu PRIMERGY TX1310 M3 です。現行機と同じH/Wです。
RAM 64G , CPU G3930.

https://qiita.com/st10/items/dbe6fa9c20a61af690ba
https://www.onoe.dev/blog/kvm-bridge/
https://2kr.blog.fc2.com/blog-entry-1261.html
https://askubuntu.com/questions/1116383/couldnt-find-hvm-kernel-for-ubuntu-tree

1. 必要なパッケージのインストール
# apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst libosinfo-bin
# apt install net-tools
2. 母艦システムのEther I/Fをブリッジ構成にする
# cd /etc/netplan/
# vi 00-installer-config.yaml
# netplan apply
* リブートして
a.問題なく立ち上がり、ネットワークからアクセスできることを確認
b.ブリッジ I/F ( br-eno2 )が設定されてることを確認
c. 物理 I/F ( eno2 )にIP addressが設定 されていない 事を確認
3. ブリッジ・ネットワークの設定
# virsh net-define /tmp/host-bridge-eno2.xml
# virsh net-list --all
# virsh net-start host-bridge-eno2
# virsh net-list --all
# virsh net-autostart host-bridge-eno2
# virsh net-list --all
4. クライアントのインストール
4.1 OSのISOイメージの設置 (仮想シリアルコンソールでのインストール)
# mkdir /var/lib/libvirt/ISO
# cp /tmp/ubuntu-22.04.3-live-server-amd64.iso /var/lib/libvirt/ISO/ubuntu-22.04.3-live-server-amd64.iso
# chown libvirt-qemu:kvm /var/lib/libvirt/ISO/ubuntu-22.04.3-live-server-amd64.iso
4.2 OSのインストール
# virt-install \
--name testvm \
--ram=2048 \
--disk size=10 \
--network network=host-bridge-eno2 \
--vcpus 1 \
--os-variant ubuntu20.04 \
--graphics none \
--location '/var/lib/libvirt/ISO/ubuntu-22.04.3-live-server-amd64.iso',kernel=casper/vmlinuz,initrd=casper/initrd \
--extra-args "netcfg/disable_autoconfig=true console=ttyS0,115200n8 --- console=ttyS0,115200n8"



* 00-installer-config.yaml

network:
version: 2
ethernets:
eno2:
dhcp4: false
dhcp6: false
bridges:
br-eno2:
interfaces:
- eno2
dhcp4: false
addresses:
- 192.168.X.YY/24
nameservers:
addresses:
- 192.168.X.ZZ
- 8.8.8.8
search:
- DDDD.com
routes:
- to: default
via: 192.168.X.WW


* host-bridge-eno2.xml

<network>
<name>host-bridge-eno2</name>
<forward mode='bridge'/>
<bridge name='br-eno2'/>
</network>
posted by kuma SF-Z at 10:56| Comment(0) | ソフトウェア 修理/改修

2023年03月19日

IPV6サービス 開通 その4

自宅のサーバーを公開して、OpenVPNでVPNの接続ができるようにしています。
DDNSを利用していました。ただ、無料のDDNSは、毎月の更新手続き等ちょっと面倒です。
いわゆる、Port解放です。

IPV6サービスのIPv4 over IPv6に使われているIPv4のアドレスは、固定です。
このIP Addressを使えないかなと、色々調べました。
どうやら、ONU やIPv6用のRouterの設定でどうにか、なりそうです。
ONUは、私の環境では、IPv4 over IPv6に関連がないので、
Routerでどうにかしなければいけません。

まずは、TP-LinkのC50のFirmWare がIPoEに対応したとのことで、確認。
IPv4は、つ有情のONC(NTT)経由になってしまい。IPv4 over IPv6となりません。
NECの Aterm WG2600HS2を調達して、確認。
これも、TP-Link C50と同じ現象。

https://blog.ingen084.net/posts/20220926-hikari-cross-network2
で、iptablesを利用して、Port解放の方法について言及してます。
実際に使われている様では、ないですが、希望が出てきました。
tcpdumpや"nc"の利用方法も勉強になりました。

どうにか、解放成功です。

こんな感じになりしました。
諸先輩の経験の寄せ集めです。
これを、systemd に登録して、完成です。


#!/bin/bash
#set -x
# Refer : https://ogugu.hateblo.jp/entry/2017/05/18/131751
# https://qiita.com/hsrmy_nm7/items/06ef43b09f3cf45c852b
# https://qiita.com/kakinaguru_zo/items/2764dd8e83e54a6605f2
#
# https://qiita.com/nishio-dens/items/4bb28574b7d43fd2b3bf
#
# https://blog.ingen084.net/posts/20220926-hikari-cross-network2
#
#
#
# For Port Forwarding
#
# https://blog.ingen084.net/posts/20220926-hikari-cross-network2

BR='2001:aaaa:bbbb::cccc'
CE='2400:XXXX:YYYY:ZZZZ:AAAA:BBBB:CCCC:DDDD'
IP4='153.ddd.eee.fff'
PSID=30
WAN_DEVICE='ens192'
LAN_DEVICE='ens224'
LOCAL_SOURCE='fd00::/64'
TUNDEV='ip6tnl1' # 新たに作り出すインターフェース名をは好きなように決める
BK_NUM=63
IP6_MARK='1000'

# For Port Forwarding
FORWARDING_PROTOCOL="udp"
FORWARDING_PROT_NUMBERS="PPP1" # "," list
FORWARDING_DESTINATION="192.168.GGG.DDD"
FORWARDING_DESTINATION_NUMBERS="PPP2"
FORWARDING_LOCAL_NET="192.168.GGG.0/24"

set_tunnel(){
ip -6 addr add $CE dev $WAN_DEVICE
ip -6 tunnel add $TUNDEV mode ip4ip6 remote $BR local $CE dev $WAN_DEVICE encaplimit none
ip link set dev $TUNDEV mtu 1460
ip link set dev $TUNDEV up

ip -4 route delete default
ip -4 route add default dev $TUNDEV
}

set_iptables_ip4_output(){
iptables -t nat -F

for rule in $( seq 1 ${BK_NUM} ) ; do
mark=$(( $rule + 16 ))
pn=$(( $rule - 1))
portl=$(( $rule * 1024 + $PSID * 16 ))
portr=$(( $portl + 15 ))
iptables -t nat -A PREROUTING -m statistic --mode nth --every $BK_NUM --packet $pn -j MARK --set-mark $mark
iptables -t nat -A OUTPUT -m statistic --mode nth --every $BK_NUM --packet $pn -j MARK --set-mark $mark
iptables -t nat -A POSTROUTING -p icmp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
iptables -t nat -A POSTROUTING -p tcp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
iptables -t nat -A POSTROUTING -p udp -o $TUNDEV -m mark --mark $mark -j SNAT --to $IP4:$portl-$portr
done

iptables -t mangle -o $TUNDEV --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu

}


set_iptables_ip6_output(){
ip6tables -F

# すべての通信を素通りだと怖いので MARKをつけてLAN内のものからのみ許可する
ip6tables -t nat -A PREROUTING -i $LAN_DEVICE -j MARK --set-mark $IP6_MARK
ip6tables -t filter -A FORWARD -p tcp -m mark --mark $IP6_MARK -j ACCEPT
ip6tables -t filter -A FORWARD -p udp -m mark --mark $IP6_MARK -j ACCEPT
ip6tables -t filter -A FORWARD -m mark --mark $IP6_MARK -j ACCEPT

# SSHはローカルネットワークからのみ許可
ip6tables -A INPUT -p tcp -s $LOCAL_SOURCE --dport 22 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j DROP

# fd00::/64 宛の通信は全部WANに流す
ip6tables -t nat -A POSTROUTING -s $LOCAL_SOURCE -o $WAN_DEVICE -j MASQUERADE
}

# ポート解放
# Local とInternet から
# IP Address $IP Port $FORWARDING_PROT_NUMBERS 当てのパケットを
#$FORWARDING_DESTINATION に転送

set_iptables_input(){
iptables -t nat -I PREROUTING -d $IP4 -p $FORWARDING_PROTOCOL -m multiport --dports $FORWARDING_PROT_NUMBERS -j DNAT --to-destination $FORWARDING_DESTINATION:$FORWARDING_DESTINATION_NUMBERS
iptables -t nat -A POSTROUTING -o $LAN_DEVICE -s $FORWARDING_LOCAL_NET -d $FORWARDING_DESTINATION -p $FORWARDING_PROTOCOL -m multiport --dports $FORWARDING_DESTINATION_NUMBERS -j SNAT --to-source $IP4
}

set_tunnel
set_iptables_ip4_output
set_iptables_ip6_output

set_iptables_input
posted by kuma SF-Z at 00:06| Comment(0) | ソフトウェア 修理/改修

2023年03月14日

Happy Hacking Keyboard !!

Happy Hacking Keyboard Professional HYBRID Type-S を購入しました。
英語配列/雪です。

HHKB-HB_TS.jpg

コンファレンスコール中のきーぼーどの音が、ちょっと気になったためです。
まあ、期待ほどの静音ではありませんでしたが、それでも攻撃的な音ではありません。
キーの印字が左上から中央へ変更になって、ちょっと小さくなっています。
昨年(2021)に限定販売された、雪のデザインの方が私には良かったかな。
(老眼で、大きな文字の方が良いのですよ。)
タッチタイプは、できるつもりでいまずか、
ハスワードの入力時には、しっかり確認しながら入力したいので、無刻印は、選択肢から外れます。

今まで使っていたのは、
Happy Hacking Keyboard Light 2 for Mac です。

HHKB_Lite2_for_Mac.jpg

打音以外は、気に入っていました。
在庫処分時に買い増しておけば良かった。
やはり、カーソールキーは便利です。Fn(ファンクション)キーと"[",";","'"."/"キーでカーソールキー相当になりますが、
どうせなら、ダイヤモンドカーソル相当にしてくれた方が良かったかな。
また、左のファンクションキーも意外と、役に立つのですよ。
2014/07に購入したようです。

その前は、量産型 Happy Hacking Keyboard (PD-KB02)でした。
1998/11製造の記述があるので、1999から使っていたようです。

HHKB_PD-KB02.jpg

流石に、キーの接触不良が見られるようになったので、Happy Hacking Keyboard Light 2へ交代しました。

さて、今回のProfessional HYBRID Type-Sは、何年使うことになりますやら。


posted by kuma SF-Z at 00:00| 日記