원격 센트리캠 접속을 위한 TeslaUSB 구성

2021. 6. 30. 11:54TESLA

사전 준비

  • Raspberry Pi 3/4 : 내부서버
  • Raspberry Pi Zero W : teslausb
  • Micro SD : 라즈베리파이용
  • LTE라우터
  • 개인용 VPN Server
  • VPN 접속용 client.ovpn

1. SD 카드 포맷 및 prebuild 이미지 설치

2. setup telsausb config

  • file : teslausb_setup_variables.conf

  • 아래의 설정은 본인의 환경 구성에 맞추어 작성

    Wifi 설정

    export SSID
    export WIFIPASSWORD

    SAMBA 공유 설정

    export SAMBA_ENABLED
    export SAMBA_GUEST

    TIMEZONE 설정

    export TIME_ZONE

    Tesla API 설정

    export TESLA_EMAIL
    export TESLA_PASSWORD
    export TESLA_NAME
    export TESLA_VIN

    /root 사이즈 설정

    export INCREASE_ROOT_SIZE
  • file : wpa_supplicant.conf

  • 이 외에도 필요한 설정은 prebuilt 이미지에 동봉된 teslausb_setup_variables.conf.sample 참고

3. TeslaUSB 부팅 및 환경 구성

1) 기본 환경구성

  • change password

    $ sudo -i  
    $ passwd pi
  • 필요한 SW 설치(ex. ftp, openvpn, etc...)

    $ apt install vsftp
    $ apt install openvpn
  • 기본 config 구성

    /etc/vsftpd.conf

    write_enable=YES
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd.chroot_list

    /etc/vsftpd.chroot_list

    pi

    /etc/openvpn/client.ovpn

    ```
    auth-user-pass /etc/openvpn/login
    askpass /etc/openvpn/pass
    ```

    /etc/openvpn/login

    username
    password

    /etc/openvpn/pass

    private key password

    openvpn 접속 테스트

    openvpn --config /etc/openvpn/client.ovpn
  • 패스워드 입력 없이 접속이 잘 되는 경우 원격 접속을 위한 기본설정 완료

    두번째 부팅 이후 혹은 setup-teslausb 이 실행된 이후에는
    /, /boot filesystem의 write 권한이 제거되기 때문에
    /root/bin/remountfs_rw 스크립트를 실행하여 write 권한 획득 후 system 수정 진행

    teslausb setup 스크립트 수행

    $ /root/bin/setup-teslausb

2) OS 시작프로그램 등록

openvpn 연결을 위한 conf 확장자로 변경

mv client.ovpn client.conf

/etc/default/openvpn

```
AUTOSTART=username
```
$ systemctl enable openvpn

3) rc.local 등록 및 crontab 사용

  • 위의 1)번 방식으로 VPN 자동 연결이 되지 않으면 아래의 방법을 사용

    /etc/rc.local

    crontab 추가

    mkdir /mutable/crontabs
    chmod 1730 /mutable/crontabs
    echo '/mutable/crontabs /var/spool/cron/crontabs none defaults,bind 0 0' >> /etc/fstab
    mount -a

해당 과정 없이 crontab에 추가하는 경우 setup-teslausb 스크립트가 수행된 뒤
crontab 내용이 초기화되므로 주의

$ crontab -e
*/10 * * * * start_vpn.sh

10분마다 해당 스크립트 수행

start_vpn.sh

if [ `ifconfig |grep tun0 |wc -l` -eq 0 ] ; then
    openvpn --config /etc/openvpn/client.ovpn &
fi

4. 참고사항

  • SSL handshake failed : 시스템 시간 확인

    시간 동기화

    $ /etc/init.d/ntp stop
    $ ntpd -q -g
    $ /etc/init.d/ntp start
    
  • /root/bin/setup-teslausb 수행 시 rc.local, crontab 등이 초기화 되므로
    스크립트 수행 후에는 위의 변경 사항들을 다시한번 확인할 것

'TESLA' 카테고리의 다른 글

Teslamate 데이터 backup/restore  (0) 2022.06.16