Jan 3, 2020

ホームIoTのセキュリティ対策

◆目的

1.自宅で TV、スマホ、PC、その他まとめて Sophos UTMの傘で保護。
2.直結ISPやマンションのスーパーマニアからのプライバシ保護(クラウドSPからの保護は残課題)。

◆環境

こんな環境整備をやってみた。



◆前提

1. ラズパイ起動時に、Sophos UTMとの間で、SSL-VPNセッションを自動的に確立し、
 ラズパイがSSL-VPNクライアントとして動作済みとします。
関連
・OpenVPN linux client automatically at boot、メモ
 https://akasaka-taro.blogspot.com/2019/12/openvpn-linux-client-automatically-at.html

2. さらにラズパイををAccess Point化して
 各ホームデバイスからインターネットアクセス可能とします。
関連
・raspberry pi を access point 化 (2018/01/09)
 https://akasaka-taro.blogspot.com/2018/06/raspiap.html
3. ラズパイに有線LANアダプタを追加、eth1として稼働済みとします。
 TVは やはり有線接続することにしました。
関連
・有線LANアダプタ、ラズパイ(Debian系)用
 https://akasaka-taro.blogspot.com/2020/01/landebian.html

◆起動スクリプト

『前提』が整ったら、残るはmasquerading等の設定。
raspberry pi を access point 化』でも触れた起動スクリプトを、以下の通り変更。

iw phy0 interface add mon0 type monitor; ifconfig mon0 up

dnsmasq --interface=eth1  --except-interface=lo --bind-interfaces --dhcp-range=$DHCP-ETH01,12h --server=$DNS-ETH01

dnsmasq --interface=wlan0 --except-interface=lo --bind-interfaces --dhcp-range=$DHCP-WLAN0,12h --server=$DNS-WLAN0

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

iptables -A FORWARD -i tun0  -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o tun0  -j ACCEPT

iptables -A FORWARD -i tun0  -o eth1  -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1  -o tun0  -j ACCEPT

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

sysctl -w net.ipv6.conf.all.disable_ipv6=1 && sysctl -w net.ipv6.conf.default.disable_ipv6=1

/usr/sbin/route add    -net $UTM-NET gw $MANSION-ROUTER eth0
/usr/sbin/route delete default gw $MANSION-ROUTER eth0
/usr/sbin/route add    default gw $SSL-VPN-ADDR-IN-UTM tun0

cat /etc/resolv.conf.new > /etc/resolv.conf

※上記変数について
$DHCP-ETH01: ケーブル接続クライアント向けにeth1で割り当てるDHCPレンジ
$DNS-ETH01: 上記レンジのDNSサーバIP
$DHCP-WLAN0: Wi-Fiクライアント向けにwlan0で割り当てるDHCPレンジ
$DNS-WLAN0: 上記レンジのDNSサーバIP
$MANSION-ROUTER: マンションの(直結・上位の)ルータIP
$SSL-VPN-ADDR-IN-UTM: UTM自身に割り当てられたSSL-VPNのIP

◆その他、追加設定

/etc/resolv.conf が書き換わらないようにする(今回の環境では、dnsmasqのDNS設定がクライアントに反映されるので、必須でもないのだが、念のため)。

1. # vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns = none # この行を追加

2. # systemctl restart NetworkManager

参考
・[RHEL7]/etc/resolv.conf 強制上書き無効 (2017/10/20)
 https://qiita.com/a-hiroyuki/items/559ccde6d948d31af939



No comments: