티스토리 뷰
(macOS)[Raspberry Pi] Raspbian wi-fi 고정 ip 및 외부접속 설정
jinozpersona 2019. 11. 1. 23:21INTRO
Raspberry PI default user/passwd = pi/raspberry라 외부접속 보안을 위해서 새로운 게정이 필요하다.
먼저 root 계정 비밀번호를 변경(부여) 하자.
# root passwd 변경
$ sudo passwd root
# 신규 계정 생성
$ sudo adduser [newID]
# 신규 계정 sudo group에 넣기
$ sudo addgroup [newID] sudo
# default user pi 삭제 : 뭐가 아주 많은 것들이 지워진다.
$ sudo deluser --remove-all pi
% ssh로 재접속 시 pi@로도 접속이 가능하다. root 환경으로 접속된 느낌이었다.
다음 명령을 수행하면 default user pi가 제거되어 ssh 접속이 안되는 걸 확인할 수 있다.
$ sudo deluser -remove-home pi
SSH port 변경 : 기본값 22로 port변경 후 macOS에서 접속 시 ssh 명령 시 -p [Port]를 입력해야 접속할 수 있다.
- ssh Port 변경 및 위에서 생성된 [newID] 허용과 default user pi 거부 설정
$ sudo nano /etc/ssh/sshd_config
--nanoEditor
....
#Port 22
Port XXXX
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
....
AllowUsers NewID
DenyUsers pi
- ssh Port/tcp 수정 반영
$ sudo nano /etc/services
--nanoEditor
....
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh XXXX/tcp # SSH Remote Login Pr$
telnet 23/tcp
smtp 25/tcp mail
....
....
mysql 3306/tcp
mysql 3306/udp
....
openssh-server 최신 보안 패치 적용
crontable 최초 설정 : list 확인은 crontab -l
$ crontab -e
--nanoEditor
....
0 0 * * * apt install openssh-server
- ssh service 재시작
$ sudo systemctl restart ssh
[참고] hots.deny, hosts.allow는 외부 접속 시 보안을 위해 설정하는 것이 좋다. 여기서는 생략한다.
$ sudo nano /etc/hosts.deny
--nanoEditor
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
#
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
$ sudo nano /etc/hosts.allow
--nanoEditor
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
1. wi-fi 고정 inet(ip) 설정
$ netstat -nr
출력되는 routing 정보에서 netmask=255.255.255.0, Gateway 192.X.X.1을 DHCP 설정에 사용된다.
"X"로 표시된 곳은 사용하는 공유기나 환경에 따라 다르게 나타난다.
mac 터미널 두개를 열어 둘다 ssh로 라즈베리파이에 접속해 놓는다. nano editor를 실행하면 커널 내용을 볼 수 없기 때문이다.
DHCP 환경설정 파일을 여러 마지막 행부터 다음 코딩을 추가하고 재부팅한다.
$ sudo nano /etc/dhcpcd.conf
--nanoEditor
.....
interface wlan0
static ip_address=192.X.X.X(선택)
static routers=192.X.X.1
static domain_name_servers=192.X.X.1
# Editor를 저장하고 나오면 재부팅
$ sudo reboot
/etc/dhcpcd.conf 주석에 eth0(ethernet, 유선) 예제가 잘 적혀있으니 참고하면 된다.
Debian7 계열은 /etc/network/interfaces, Debian8 계열은 /etc/dhcpcd.conf를 수정한다.
고정 ip를 결정하고나면 PSK가 변경되었으니 확인 후 재설정하고 재부팅한다.
$ wpa_passphrase yourSSID SSIDpassword
network={
ssid="yourSSID"
#psk="yourpassword"
psk=new_yourkey
}
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
--nanoEditor
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
ssid="yourSSID"
#psk="SSIDpasswd"
psk=new_yourkey
}
$ sudo reboot
부팅되었다 싶을 때 변경한 newID@new-ip -p [Port] 명령을 통해 ssh 접속을 확인한다.
[참고] macOS terminal에서 ping [your hostname].local을 입력하면 raspberrypi의 ip를 확인할 수 있다. 어차피 고정ip를 얻었으니 설정값을 입력하면 된다.
(macOS)$ ssh newID@new-inet-address -p XXXX
2. 외부접속 설정
시스템의 네트워크 연결상태 확인
- Active Internet connections (servers and established)
: LISTEN 사용가능 상태, ESTABLISHED는 ssh XXXX port에 연결된 상태를 표시해준다.
Local Address는 raspberrypi-inet, Foreign Address는 macOS ip 연결된 상태를 보여준다.
127.0.0.1:3306은 mysql port로 다음 포스트에서 mariaDB를 설치 후 접속 시 사용되는 port이다.
0.0.0.0:80은 nginx 설치 후 web-server 접속 시 사용되는 port이다.
$ sudo netstat -atnlp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:XXXX 0.0.0.0:* LISTEN 501/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 543/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 557/nginx: master p
tcp 0 196 192.X.X.X:XXXX 192.X.X.X:50148 ESTABLISHED 10177/sshd: Your-ID
tcp6 0 0 :::XXXX :::* LISTEN 501/sshd
tcp6 0 0 :::80 :::* LISTEN 557/nginx: master p
- 공유기 Port Forwarding 설정
Browser 주소창에 192.X.X.1을 입력하면 Web Management로 접속이 되고 초기 비밀번호는 공유기 메이커 별로 다르니 찾아서 접속한다. 아파트 공용 공유기라 처음보는 모델인데 NST NAP-11NR(천장 매립형 무선 AP, http://www.nstco.co.kr/index.php)은 좌측 Port Fowarding에서 우측 메뉴 Address에 고정아이피를 넣고 Protocol을 TCP로 설정하였다. Port는 webserver용으로 80으로 하고 ssh용은 위에서 설정한 Port XXXX를 넣고 우측메뉴 하단 reboot를 하면 65초를 기다리면 저장된다. 공인아이피 주소를 확인하는 방법은 browser 주소창에 "내 아이피 확인"으로 찾아가면 간단하게 확인할 수 있다. 외부접속을 확인하는 가장 쉬운 방법은 스마트폰 와이파이를 끄고 termius나 iterminal로 접속해보면 ssh 접속을 확인할 수 있고 스마트폰 browser 주소창에 공인아이피 주소를 입력하면 nginx welcome massage(https://jinozblog.tistory.com/21 nginx 활성화는 포스트 참고)를 만날 수 있다. 와이파이를 사용하고 있는 노트북 browser 주소창에서 공인아이피를 입력하면 접속되지 않는다.
'Raspberry Pi > Raspberry Pi OS' 카테고리의 다른 글
(macOS)[Raspberry Pi] 기본 환경 설정 : terminal, samba (0) | 2022.12.27 |
---|---|
(macOS)[Raspberry Pi] Raspberry Pi OS(64bit) 설치 및 원격접속 (0) | 2022.12.27 |
(macOS)[Raspberry Pi] Raspbian samba 연결하기 (0) | 2020.04.23 |
(macOS)[Raspberry Pi] Raspbian wi-fi 및 SSH 설정 (0) | 2019.11.01 |
(macOS)[Raspberry Pi] Raspbian OS 설치 및 기본 설정 (0) | 2019.10.31 |
- Total
- Today
- Yesterday
- Django
- COVID-19
- DS18B20
- ERP
- SSH
- MacOS
- template
- 코로나
- git
- Raspberry Pi
- Regression
- Python
- 라즈베리파이
- pyserial
- r
- arduino
- 자가격리
- CSV
- 확진
- sublime text
- Model
- raspberrypi
- 코로나19
- DAQ
- server
- analysis
- Pandas
- vscode
- github
- Templates
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |