지금 내가 가지고 있는 RPI zero에 리눅스를 깔고 bootstrap을 이용해서 웹페이지를 만들 예정이다. 하필이면 bootstrap인 이유는 인프런에서 무료로 강좌를 진행해주기 때문이다.
우선, balanaEtcher를 이용해서 Raspbian이든 아님 다른 Dristo를 깔든, 하나를 잡아서 깔도록하자.
보통은 Raspbian을 까는 것을 추천하는데,
https://www.raspberrypi.org/software/operating-systems/
나는 kail linux를 깔아보기로 했다. 전문가들의 말에 따르면 어짜피 시스템에 대해서 깊이 알게 되면 전부 같은 거라고 한다. https://www.kali.org/get-kali/#kali-arm
ARM쪽 Cpu도 같이 이렇게 쓸 수 있게 해줘서, 참 고마운 이미지이다. CentOS도 armv6가 있기는 있었던 것 같은데, 자세히는 모르겠다. 찾아보면서 느낀거지만, RPi zero가 가진 armv6쪽 cpu에 대해서는 많은 개발이 이루어지지 않은 것 같다. 별로 정보가 많지는 않다.
아무튼, 초기 셋업은 크게 3가지를 해야한다.
1.네트워크 세팅
2.SSH 세팅
3.KDE or Gnome 끄기.
이런 작업을 해야하는 이유는 당연히 물리적인 키보드와 마우스를 항상 이용하는 것은 번거롭기 때문이다. 또한, 그런 물리적인 키보드나 마우스가 없다면 당연히 KDE나 Gnome은 부팅을 느리게 하고 리소스만 잡아먹는 식충이가 되기 때문에 가능하면 빨리 꺼주어야한다.
처음 키보드를 연결하고 모니터를 보았는데, 갑자기 kali linux에서 사용자 id와 password를 넣으라고 한다! 초기 id와 password는 둘다 "kali"이다. kail아니다. kali다. 의외로 처음 칠 때 착각하기 쉬워서 짜증나는 이름...
1.네트워크 세팅
아무튼 그렇게 5분쯤 기다리면 초기 바탕화면이 나온다. 네트워크를 Gui를 이용해서 세팅하는 방법도 있지만, 키보드밖에 연결할 수 없는 경우(나의 경우)는 애를 먹을 수 있다. 따라서 Ctrl + Alt + T를 눌러서 Terminal을 열어서 작업해보자.
ifconfig
sudo nmtui
ifconfig를 이용해서 현재 본인이 가지고 있는 네트워크 인터페이스들을 확인한다. 나는 usb허브에 달려있는 eth0, 라즈베리파이 자체 네트워트 카드 wlan0, 내가 추가로 달아놓은 네트워트 카드 wlan1로 총 3개의 인터페이스를 가지고 있다.
여기서 nmtui를 켜주자. /etc/network/interfaces에 들어가서 네트워트 주소를 지정해 줄 수 있지만, 개인적으로는 이 명령어을 이용해서 인터넷에 연결하는 것을 선호한다. 나는 이런쪽으로 전문가가 아니니까. Tui를 제공해줘서 상대적으로 편하게 작업할 수 있다.
처음에는 Edit a connection에 들어가주면 된다. 처음에는 아무것도 없을 텐데, Add버튼을 선택한다. 상하좌우 키를 이용해서 움직이고, Enter를 이용해서 확인할 수 있다.
왼쪽 위의 Add를 누르면 원하는 형태의 네트워크 세팅이 나온다. 나는 Wi-Fi를 선택했다.
1. Device에는 아까 확인한 네트워크 인터페이스 이름을 넣는다.
=> 예를 들어 나의 경우는 wlan0아님 wlan1일 것이다.
2. SSID에는 네트워크(Wi-Fi)의 이름을 넣는다.
=> 예를 들어 iptime이라면 iptime이라고 친다. 만약 여러분의 네트워크 이름에 한글이 있다면 골치 아파질 것이다.
3. Wi-Fi 비밀 번호를 Security -> Enter를 이용해서 원하는 암호화 방법을 선택한 다음 입력한다.
4. IPv4를 Automatic -> Manual로 바꾼 다음, 원하는 고정 IP를 지정해준다. SSH를 통해서 접속할 건데, DHCP로 IP로 받아오다가 결국 다른 것으로 IP가 바뀌면 곤란하기 때문에 웬만하면 해주자. 이것을 어떻게 해야할지 잘 모르겠다면, Automatic으로 내버려두어도 된다.
5. IPv6를 Automatic -> Disabled로 바꾼다. (선택사항이지만 그냥 해주는게 낫다. 여러분 중에서 IPv6를 쓰는 사람이 많지는 않을 것이다.)
6. ProfileName에는 그냥 원하는 이름을 넣는다. 이런 방법으로 연결하라는 지침서의 이름이라고 생각하면 된다.
그렇게하고 OK를 누르면, 경우에 따라서는 이미 알아서 nmtui가 연결을 시도해서 잘 되어있는 경우가 있다.
이는 처음 메뉴로 돌아가서 Activate a Connection을 눌러서 여러분이 입력한 ProfileName 왼쪽에 * 표시가 되어있는 것으로 확인할 수 있다. 만약 되어있지 않다면, Enter를 눌러서 Connetion을 시도해보자. 그래도 Connection이 되지 않는다면 결국 다시 세팅해야한다. 아무튼 Connection이 됐으면, Esc를 누르거나 Quit버튼을 눌러서 다시 bash로 돌아온 다음, 다시 ifconfig를 눌러보자. 잘 연결이 되었음을 알 수 있다.
2.SSH세팅
kali linux에는 이미 ssh가 있다. 따라서 몇몇 세팅을 바꾸어주고 바로 다시 sshd를 재시작 할 것이다.
ssh에 관한 설정은
/etc/ssh/sshd_config
에서 할 수 있다. (/etc/ssh/ssh_config는 아니다. 그건 클라이언트 프로그램의 세팅을 바꾸는 것이다.) 거기서
#Port 22
#을 지워서 주석을 없애고 원하는 포트 번호를 입력해 둔다. 이렇게 한 다음
service sshd restart
를 입력해서 재시작해주시면 된다. 이것 말고도 Root에 관한 설정이 있는데, 이는 왠만하면 no로 해서 원천적으로 막아두자. 다행인건 기본값이 "no"라서 딱히 건드리지 않아도 된다.
3. KDE - Gnome부팅 막기
kali linux에서 lightdm이 켜지는 것을 막으려면, 이 커맨드 하나면 충분하다.
systemctl set-default multi-user.target
이것 하나로 정말 많은 리소스를 아낄 수 있으니 꼭 해주자.
이젠 대충 이 기계를 끄고 원하는 곳에 배치만 하면 된다. 이번에는 제말 Nodejs가 깔리기를 빌어야겠다.
2021 / 07 / 09 추가
lite image 빌드하는 방법
https://www.kali.org/docs/development/custom-raspberry-pi-image/
https://www.kali.org/docs/development/arm-cross-compilation-environment/
https://gitlab.com/kalilinux/build-scripts/kali-arm/-/blob/master/rpi0w-nexmon-minimal.sh
'General CS > Linux' 카테고리의 다른 글
Linux - NodeJS for ARMv6(armel) Cross Compile settings (0) | 2021.07.14 |
---|---|
Linux - Raspberry PI라면 Raspbian을 쓰자. (0) | 2021.07.10 |
[Project - Bootstrap] Raspberry PI Zero에 NodeJS설치 (0) | 2021.07.08 |
Linux - 그룹이름과 사용자이름 바꾸기, hostname 바꾸기! (0) | 2021.07.07 |