BobbyQuineのブログ(備忘録)

Linux関係の備忘録、その他タバコ、Vape関連なんかも。

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] # pacman -S vim

[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)

 

ってやればいい.暇つぶし以上.