티스토리 뷰
사물인터넷(IoT)이 널리 보급됨에 따라 아두이노와 라즈베리 파이가 인기를 얻어 시장이 많이 성장해 있다.
이 글은 라즈비안 서버 초기 설정을 설명한다. $35 정도의 저렴한 서버를 꾸미는 기초 단계인 것이다.
1. 라즈베리 파이 설치.
라즈베리 파이는 다운로드 받은 img 파일을 SD 카드에 써넣는 것으로 설치가 완료된다.
1) 이미지 다운로드.
https://www.raspberrypi.org/downloads
에서 다운.
이 글에서 설명할 것은 Raspbian.
2) 이미지를 (micro)SD 카드에 복제.
각 OS에서 이미지를 복제하는 방법은
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
를 참고.
맥 이용자라면 (micro)SD 카드를 리더기 등으로 연결한 다음 diskutil 명령어로 디스크 번호를 알아낸다.
/dev/disk[N] 으로 각 PC마다 다를 수 있으니 반드시 확인하고 진행해야 한다.
가급적 중요한 드라이브는 연결 해제하고 진행하자.
$ diskutil list /dev/disk4 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *7.9 GB disk4 1: Windows_NTFS 8GB 7.9 GB disk4s1 |
(micro)SD 카드가 /dev/disk4인 것을 확인할 수 있다.
disk4 마운트 해제.
$ diskutil unmountDisk /dev/disk4 |
dd 명령어로 이미지를 (micro)SD 카드에 쓰기.
if는 입력, of는 출력, bs는 한번에 복사할 데이터 크기인데 마음대로 해도 된다.
여기서는 1MB씩 bs=1m로 입력했으며, 모든 용량이 복사될 때까지 1MB씩 진행된다.
$ sudo dd if = /path/to/image/2015-05-05-raspbian-wheezy .img of= /dev/disk4 bs=1m |
먹통인 것처럼 아무 반응이 없어야 제대로 진행되고 있는 것이다.
한참의 복사가 완료되면 에러가 없다는 리포트와 함께 다시 프롬프트를 볼 수 있을 것이다.
이걸로 설치 완료.
2. 부팅 및 raspi-config.
1) 부팅.
(micro)SD 카드를 라즈베리 파이에 꼽고 전원을 인가하면 부팅이 되며, 로그인 하면 raspi-config를 실행하라는 메세지를 표시한다.
최초 로그인 계정 : pi, 비밀번호 : raspberry
NOTICE: the software on this Raspberry Pi has not been fully configured. Please run ‘sudo raspi-config’
2) raspi-config
$ sudo raspi-config |
– 1 Expand Filesystem : 메모리 카드 전체 용량을 사용하도록 파티션 크기 재조정.
– 2 Change User Password : pi 계정의 비밀번호 재설정.
– 3 Enable Boot to Desktop/Scratch : X-Window 환경으로 부팅하도록 설정.
– 4 Internationalisation Options : 언어, 기준시간, 키보드 레이아웃 설정.
– 5 Enable Camera : 라즈베리 파이 카메라 단자 켜기/끄기 설정.
– 6 Add to Rastrack : Rastrack 서버서 이 라즈베리 파이 추가.
– 7 Overclock : 오버클럭 설정.
– 8 Advanced Options : 추가 설정.
– 9 About raspi-config : 이 설정에 대해.
최초설치 후 파티션이 2.9GB 정도로 설정되어 있으며, 아무리 큰 용량의 (micro)SD 카드를 사용할지라도 이외의 용량은 사용할 수 없다.
$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 2.9G 2.4G 334M 89% / /dev/root 2.9G 2.4G 334M 89% / devtmpfs 214M 0 214M 0% /dev tmpfs 44M 224K 44M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 88M 0 88M 0% /run/shm /dev/mmcblk0p1 56M 19M 37M 34% /boot |
이걸 재조정 해주어야 하는데, 32GB 이하의 (micro)SD 카드라면 전체 용량을 사용하도록 설정하자.
그게 위의 1 Expand Filesystem이다. 전체 용량을 사용하도록 설정하는 것.
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 7.3G 2.6G 4.4G 38% / devtmpfs 214M 0 214M 0% /dev tmpfs 44M 224K 44M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 87M 0 87M 0% /run/shm /dev/mmcblk0p1 56M 20M 37M 36% /boot $ sudo reboot |
64GB 이상이라면 직접 파티션을 여러개로 나눠 운용하길 추천한다.
3. 업데이트.
1) 펌웨어 업데이트.
현재 버전을 알아보자.
$ uname -a Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l GNU/Linux |
펌웨어 업데이트.
$ sudo rpi-update ... $ sudo reboot |
업데이트 된 버전 확인.
$ uname -a Linux raspberrypi 4.1.6+ #810 PREEMPT Tue Aug 18 15:19:58 BST 2015 armv6l GNU/Linux |
2) 패키지 저장소 리스트 업데이트, 패키지 업그레이드.
$ sudo apt-get update ... $ sudo apt-get upgrade ... $ sudo reboot |
여기까지가 Raspbian 최신 버전을 설치하는 과정이다.
4. 비밀번호 설정.
최초 root 비밀번호가 설정되어 있지 않으므로 설정해 준다.
$ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd : password updated successfully |
pi 계정의 최초 비밀번호는 raspberry로 모두 같으므로 보안을 위해 바꿔주자.
$ passwd Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd : password updated successfully |
5. SSH 설정.
SSH 기본 포트를 22번으로 사용하면서 외부접속을 허용하면 root 비밀번호를 알아내려는 시도가 많다.
최소한 22번을 다른 번호로 바꾸고 root로 접속하지 못하도록 하자.
$ sudo vi /etc/ssh/sshd_config 항목 중 Port 1024 PermitRootLogin no 저장하고 SSH 재시작 $ sudo service ssh restart |
6. iptables 설정.
최초 iptables 정책을 확인해 보면 모두 열려져 있으므로 보안을 위해 접속을 제한할 필요가 있다.
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination |
iptables 정책을 파일로 얻기.
$ sudo iptables-save > iptables_rules $ cat iptables_rules # Generated by iptables-save v1.4.14 on Sun Sep 6 22:44:51 2015 *filter :INPUT ACCEPT [353:26718] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [181:18458] COMMIT # Completed on Sun Sep 6 22:44:51 2015 |
정책 파일 수정.
$ vi iptables_rules *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # Allow ICMP packets necessary for MTU path discovery #-A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT # Allow echo request #-A INPUT -p icmp --icmp-type 8 -j ACCEPT -A INPUT -j DROP COMMIT |
iptables 정책 적용.
sudo iptables-restore < iptables_rules [/code]
'Raspberry Pi' 카테고리의 다른 글
기본설정 (0) | 2016.10.24 |
---|---|
3. 라즈베리파이 프로파일(PROFILE) 설정 및 네트워크 설정 (1) | 2016.10.24 |
1. 라즈베리파이 준비물 및 운영체제 설치 (0) | 2016.10.24 |
- Total
- Today
- Yesterday
- msvcp140.dll
- pro17
- Licence
- VMware
- Pro
- vcruntime140.dll
- Workstation
- Fusion
- VCRUNTIME140_1.dll
- fusion-13
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |