LinuxPCをルーターにして配下に接続したRaspberry Piにルーティングしてみる
まず使う機材
Rasbperry Pi2 with ArchLinuxARM
DesktopPC with Arch Linux
Laptop with Arch Linux
自宅の無線ルータ
|----------------LapTop
|----------------Desktop--------------RasPi
こんな感じにしてLapTopからRasPiにsshアクセスしたい.
前も同じような事書いたことある気がする.
自宅の無線ルータの管理者権は無く,動的IP
DesktopからRasPiへは有線でこれも動的IP割り当てに使用と思う.IP固定しろって
ここから,作業のシェルは
[RasPi] $
[Desktop] $
[LapTop] $
で記述していく察して.管理者権限とかもあるよ.
ぶっちゃけすぐ変える(破棄する)環境なので自動化とかはやらない
デスクトップでDHCP鯖
ここで無線ルータとつながっている側のインターフェース名がwlp,RasPiをつなげる有線側がenpね
[Desktop] # pacman -S dhcpd
[Desktop] # vim /etc/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
INTERFACES="enp";
option domain-name "";
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.20;
option routers 10.0.0.1;
option domain-name-servers 1.1.1.1;
}
あとは
[Desktop] # mkdir Shell
[Desktop] # vim ./Shell/dhcpdstart.sh
#!/bin/bash
ip link set dev enp up
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o wlp -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth -o wlp -j ACCEPT
ip addr add 10.0.0.1/24 dev eth
systemctl start dhcpd4.service
[Desktop] # ./Shell/dhcpdstart.sh
Raspberry Piの設定
http://bobbyquine.hatenablog.com/entry/2018/04/10/192935
とりまこれのSDカード作るところまでやったらRasPiに刺して有線もつないで電源入れる.
そしたら多分デスクトップからだったらsshで入れるはず.
[Desktop] $ sudo arp-scan -I enp -l
これでRasPiに割り振られたIPアドレス見つける.(ここでは仮に10.0.0.13)
ついでにこの時のRasPiのMacアドレスもメモっとく(今回は仮にra:sp:be:rr:yp:i2,16進数になってねぇのは知ってる)
[Desktop] $ ssh root@10.0.0.13
[RasPi] # pacman -Syyu
[RasPi] # vim /etc/ssh/sshd_config
Port 55522 #とりまポート変えとく
[RasPi] # reboot
まぁホントはユーザー作ってRootでのログイン禁止にするべき,書くのめんどい.
デスクトップ側でルーティングの設定
[Desktop] # vim ./Shell/routing.sh
#!/bin/bash
WLP=$(ip addr|grep wlp|sed -n 2p|sed s@/24.*\$@@g|awk '{print $2}')
RAS=$(arp-scan -I enp -l|grep ra:sp:be:rr:yp:i2|awk '{print $1}')
iptables -t nat -A PREROUTING -m tcp -p tcp --dst $WLP --dport 55522 -j DNAT --to-destination $RAS:55522
iptables -t nat -I POSTROUTING -m tcp -p tcp -s $RAS --sport 55522 -j SNAT --to-source $WLP:55522
[Desktop] # ./Shell/routing.sh
Laptopから継いでみる
デスクトップPCのwlpのIPアドレスが192.168.1.6だったら
[Laptop] $ ssh -p 55522 root@192.168.1.6
これで繋がるはず.
でも自宅Wi-Fiも動的IPアドレスなので変わる可能性あり.
ここでデスクトップの自宅無線ルータに接続している側(wlp)のMacアドレスがde:sk:to:pm:ac:hiとして,LapTopの無線インターフェースがwloだとしたら
[LapTop] $ $(sudo arp-scan -I wlo -l|grep de:sk:to:pm:ac:hi |awk '{print $1}'|sed s/^/ssh\ \-p\ 55522\ root@/g)
ってやればいい.暇つぶし以上.