본문 바로가기
아무 이야기

아이패드로 코딩하기 (feat. 라즈베리파이)

by 임아톰 2021. 8. 15.

https://www.youtube.com/watch?v=yPyy8-CtNh4&t=33s 

유튜브 보다가 해당 영상을 발견하고 집에 묵혀 놨던 라즈베리파이가 생각나서 간단히 세팅해보았습니다.

 

준비물

라즈베리파이

태블릿

 

라즈베리파이는 집에 두고 외부에서 태블릿으로 접속해서 프로그래밍을 할 수 있도록 합니다.

저는 라즈베리파이3 B+ 모델과 아이패드를 사용했습니다.

 

라즈베리 파이 설치 및 SSH 설정

라즈베리파이 설치 가이드는 잘 설명된 블로그가 있어 링크를 첨부합니다.

라즈베리파이3 B+ 설치가이드

라즈베리파이4 B 설치가이드

 

SSH(혹은 VNC)로 라즈베리파이에 접속할 것이기 때문에 해당 설정도 해줘야 합니다.

라즈베리파이3 B+ 설치가이드(3) ssh와 vnc 연결하기

라즈베리파이3 B+ 설치가이드(3) ssh와 vnc 연결하기

 

포트포워딩 설정

외부망에서 내부망으로 접속할 때 라즈베리파이로 안내를 해주도록 포트포워딩을 설정해야 합니다.

 

우리가 밖에서 아이패드로 라즈베리파이로 접속하려면 집에서 사용하는 공유기의 공인 IP를 알아야 합니다. 

 

공인 아이피는 네이버네 내 아이피 주소 확인이라고 검색하면 바로 나옵니다.

공유기에 연결된 기기는 보통 여러대일테니 외부망에서 접속했을 때 라즈베리파이로 안내하는 포트포워딩 작업이 필요합니다.

먼저, 라즈베리파이의 주소를 확인해야 합니다.

라즈베리파이 터미널에 ifconfig를 입력해봅니다.

빨간색 네모가 라즈베리파이의 주소에 해당합니다.

 

이제 공유기에 접속해보죠.

내 공유기 IP 주소 확인은 cmd - ipconfig - 기본 게이트웨이에서 확인할 수 있습니다. 

찾은 주소를 브라우저에 입력하면 공유기에 접속할 수 있습니다. 공유기 패스워드는 제조사마다 다르므로 모르겠다면 고객센터에 전화하면 방법을 알려줍니다.

 

포트포워딩 설정 방법은 공유기 마다 차이가 있을 수 있지만 큰 내용은 비슷합니다.

 네트워크 설정 - NAT 설정 - 포트포워딩에 들어가 추가를 눌렀습니다. 포트포워딩을 추가하는 창이 뜹니다.

 

제일 먼저 서비스 포트를 입력해 줍니다. 여기서 서비스 포트는 외부망에서 내부망에 있는 라즈베리파이로 접속할 때 사용하는 포트 입니다. 외부에서 접속할 때 공인 IP 주소와 서비스 포트를 입력하면 라즈베리파이로 접속할 수 있게 됩니다.

포트 범위는 0~65535 사이 숫자 중 원하시는 번호로 입력하면 됩니다. 22번 포트 외에 다른 포트 번호를 입력해주는 게 좋습니다.

 

내부 IP 주소는 라즈베리파이의 주소를 입력하면 되고 내부 포트는 22를 입력합니다.

 

추가를 누르고 설정적용을 누르면 포트포워딩이 적용됩니다.

 

아이패드로 접속하기

아이패드에서 SSH로 접속하기 위해 Termuis를 설치하였습니다. 그외 다른 SSH 앱을 설치하여도 무관합니다.

 

다운로드가 완료되면 Termius를 실행합니다. 

Hosts 탭으로 들어가서 New Host를 누릅니다.

설정 정보를 입력하면 됩니다. 

Hostname에는 외부 IP 주소를 입력합니다.

Port는 포트포워딩에서 서비스포트로 입력했던 포트 번호를 입력합니다.

Username과 Password는 라즈베리파이에서 설정한 정보를 입력하면 됩니다.

 

Save를 누르고 저장된 Hosts를 눌러 라즈베리파이에 접속합니다.

접속 완료!

 

보안 챙기기

외부에서 라즈베리파이로 접속할 준비는 끝났습니다.

그러나 외부에서 접속할 수 있다는건 나외에 다른 사람도 접근할 수 있다는 뜻이기도 합니다.

 

그렇기에 fail2ban 같은 소프트웨어를 활용하여 브루트 포스 어택에 대비하는 게 좋습니다. 

 

fail2ban을 설치하면 시스템 로그를 모니터링하고 일정 횟수 이상 로그인에 실패하면 해당 IP를 접근 못하게 막을 수 있습니다.

 

fail2ban 설치는 fail2ban 설치하기 페이지에 설명이 잘 나와있어 참고하였습니다.

 

fail2ban 설치합니다.

pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt install fail2ban

 

fail2ban은 /etc/fail2ban/jail.conf 파일을 jail.local 파일로 복사해서 사용해야합니다.(Overwrite 문제 발생)

pi@raspberrypi:~ $ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
pi@raspberrypi:~ $ sudo vi /etc/fail2ban/jail.local

 

jail.local 파일을 열어서 [sshd] 항목을 설정합니다.

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = -1
  • port : ssh 기본 포트가 지정. 22번 외에 포트 번호를 변경해 사용하고 있으면 변경한 포트 번호를 기재하면 됨
  • maxretry : 허용할 fail 횟수. 이를 초과하면 bantime 만큼 차단.
  • bantime : 차단을 수행할 초 단위의 시간. -1은 영구적인 차단을 의미.

 

서비스를 재시작합니다. iptables로 fail2ban이 설정된 것을 확인할 수 있습니다.

pi@raspberrypi:/etc/fail2ban $ sudo service fail2ban restart
pi@raspberrypi:/etc/fail2ban $ sudo iptables -L

/var/log/fail2ban.log 에서 로그를 확인할 수 있습니다.

pi@raspberrypi:~ $ sudo tail -10 /var/log/fail2ban.log

 

차단된 IP는 다음 명령어로 해제할 수 있습니다.

pi@raspberrypi:~ $ sudo fail2ban-client set sshd unbanip 223.62.8.139
반응형