Raspberry Pi를 보호하려면 어떻게해야합니까?


82

인터넷에 수만 개의 라즈베리 파이가 연결되어있는 것은 결국 많은 사람들이 Pi를 사용하여 네트워크 서버를 수행 할 때 작은 컴퓨터에 불미스러운 일을하려는 일부 사람들의 관심을 끌게됩니다. Linux는 기본적으로 보안 측면에서 견고한 OS이지만 암호를 변경하는 것 외에 장치에서 인터넷 연결 서비스를 호스팅하려는 경우 Raspberry Pi를 "강화"하기 위해 수행해야 할 작업은 무엇입니까?

Eben Upton은 "수만"의 퀴즈를 지원하기 위해 " Raspberry Pi는 기본 컴퓨터 모듈 200,000 대 이상을 판매했으며 현재 하루 4,000 대를 출하하고 있습니다"라고 말했습니다 . 20 만 명 중 수만명이 인터넷에 연결되어 있다고 가정해도 안전합니다. 인터넷에 연결된 라즈베리 파이의 수만 개가 공개 웹 서비스를 호스팅하고 있다고 가정하는 것이 안전하지는 않지만 해커 열정에 대한 가능성은 여전히 ​​존재합니다.


3
"수만"이 연결되어있을 수 있지만 (현재 알고있는) 3 개의 개별 Linux 배포판이 있으며, Linux 기반이 아닌 프로젝트도 몇 개 있다고 생각합니다. 이것은 해커의 관점에 영향을 미칩니다. 여전히 보안이 중요한 경우 배포판을 업데이트하고 필요한 경우 장치를 방화벽 뒤에 보관하십시오.
RLH

좋은 지적 RLH 질문에 Raspberry Pis의 수를 지원하는 Raspberry Pi의 공격 표면 Steve에 대한 더 나은 아이디어를 제공하는 추가 정보를 질문에 추가하겠습니다.
Dan B

@DanB Attack 표면은 Pi의 수의 기능이 아니라 공격에 사용할 수있는 시스템 및 서비스의 수입니다. en.wikipedia.org/wiki/Attack_surface
Steve Robillard

@SteveRobillard 댓글이 확실하지 않다면 죄송하지만 질문에서 수정 한 내용은 공개 서비스를 호스팅하는 Pi의 수를 정성적인 방식으로 정리하려고했기 때문에 공격 가능한 서비스를 제공 할 것입니다 .
Dan B

SSH를 사용할 때 라즈베리 파이를 보호하는 방법에 대한 간단한 자습서를 찾았습니다. -> 튜토리얼
Dominik St.

답변:


54

컴퓨터 보안은 간단한 과정이 아니며 전체 책이 주제로 작성됩니다. Pi의 크기는 가능한 공격자에게 제공되는 보안 위협이나 공격 영역을 줄이지 않습니다. 결과적으로 관련된 단계를 설명하고보다 자세한 지침과 자습서에 대한 링크를 제공합니다.

어떤 배포판을 사용하고 있는지 언급하지 않았으므로 권장 Raspbian Distro를 가정합니다.

  1. 기본 비밀번호를 변경하십시오. Raspbian 배포판은 이것을 초기 시작 스크립트의 옵션으로 포함합니다. 이 작업을 아직 수행하지 않은 경우 passwd 명령을 사용하여 변경할 수 있습니다. 강력한 암호선택 하십시오 .
  2. 사용하지 않는 서비스를 비활성화하십시오 . 권장되는 Raspbian 배포판에 Apache 웹 서버가 포함되어 있으며 시작할 때 활성화 할 수 있습니다 (다른 사람이이를 확인할 수 있음) . 실제로 웹 서버가 실행 중이어야합니까? 비활성화하지 않으면. Apache를 실행해야 보안유지하고 다른 서비스 (예 : FTP, NGINX, MySQL 등)도 마찬가지로 수행해야하는 경우 Google 검색은 여러 리소스를 제공해야합니다.
  3. 설치 및 구성 의 iptables을 .
  4. 시스템을 최신 상태로 유지하십시오. cron 또는 cron-apt를 사용하여 이를 자동화 할 수 있습니다 .
  5. 로그인 및 실패한 로그인 시도를 모니터링하도록 로깅구성하십시오 . 가능하면 외장 하드 드라이브를 사용하여 / var 파티션을 호스팅하면 더 많은 공간을 확보 할 수 있으며 로그 파일이 SD 카드를 채우지 않고 SD 카드의 수명을 연장 할 수 있습니다.

고려해야 할 몇 가지 추가 사항 :

또한이 관련 질문을 읽어보십시오. 침입 및 맬웨어를 인터넷 (특히 공용 IP 주소)에 연결하기 전에 어떻게 침입 및 맬웨어로부터 보호 할 수 있습니까? .

이것은 Pi를 보호하기위한 최소한의 단계 일뿐입니다. 더 많은 정보를 원하시면 Securing Debian Manual 을 읽으십시오 .


6
자신의 ssh 키를 생성하십시오. 이미지 중 일부에 이미 키가 있다고 생각합니다.
John La Rooy

2
Apache는 기본적으로 raspbian에 설치되어 있지 않습니다 (사용자는 php5-mysql IIRC와 같은 것을 설치했습니다). 벌거 벗은 iptable보다 조금 더 친숙한 패킷 필터의 경우 ufw 및 GUI 프론트 엔드 gufw를 권장해야합니까?
elmicha

1
라우터 뒤에 있어도 iptables를 설치하는 것이 합리적입니까?
keiki

2
@ otakun85 예, 심층 방어라고합니다. 라우터에 완전히 의존함으로써 누군가가 라우터를 넘어 iptables를 가지고 실행하면 더 악용하기가 더 어려워집니다.
Steve Robillard

2
사용하지 않는 서비스를 비활성화하면 시작 시간이 길어지고 (소량) 메모리와 CPU가 절약됩니다.
TomG

11

RPi를 살펴보면 몇 가지 작업을 수행하는 한 상자에서 상당히 안전한 장치처럼 보입니다.

기본 사용자 / 패스가 변경되어야합니다. 최소한 비밀번호를 변경하십시오. 더 나은 보안을 위해 사용자 이름도 변경하십시오. (새 사용자를 추가 한 다음 PI를 비활성화하십시오. 기본적으로 ROOT도 SSH 로그인에서 비활성화되어 있는지 확인하십시오.)

RPi를 스캔하면 하나의 열린 포트, 22가 SSH 연결이며, 심지어는 연결하기 전에 켜져 있어야합니다 (대부분의 사람들은 모니터, 키보드 및 마우스 대신 사용하지만, 특히 {웹} 서버)

SSH 포트 번호를 변경할 수는 있지만 포트를 쉽게 검색 할 수 있기 때문에 별 문제가되지 않습니다. 대신 SSH 키 인증을 사용하십시오.

이제 올바른 SSH 키, 사용자 이름 및 비밀번호가 없으면 누구나 시스템에 들어갈 수있는 방법이 없습니다.

다음으로 웹 서버를 설정하십시오. 아파치는 거의 어디에 있나. 기본적으로 포트 80을 설치하고 모니터링하며 웹 페이지를 제공하는 브라우저의 연결에 자동으로 응답합니다.

방화벽이나 라우터가있는 경우 RPi 포트를 변경하고 라우터가 한 포트에서 다른 포트로 트래픽을 보내도록 할 수 있습니다. 예를 들어 라우터로 들어오는 포트 80 트래픽은 RPi의 포트 75로 리디렉션되고 22의 SSH는 포트 72로 리디렉션됩니다. 이는 다른 보호 계층을 추가하지만 조금 더 복잡합니다.

분명히 모든 것을 업데이트하고 패치하십시오.

이렇게하면 나중에 추가 할 수있는 Java, 플래시, SQL 서버 등을 악용하는 공격으로부터 사용자를 보호 할 수는 없지만 기본 사항입니다.

방화벽을 추가하여 새 서비스를 설치하면 시스템에 들어오는 사람이 다른 포트로 나가는 것을 늦출 수 있습니다. 라우터가 처리해야하지만 직접 연결되어 있으면 설정하고 시간이 오래 걸리더라도 시스템 리소스를 많이 추가하지는 않습니다.

추가하려는 또 다른 사항은 fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page )로 여러 번의 로그인 시도를 차단하는 방화벽 규칙을 추가하여 사전 공격을 방지합니다. 위의 사항을 따른 경우 시스템에서 작동하지 않지만 어떤 이유로 든 비밀번호를 SSH 인증으로 유지 해야하는 경우 (예 : 여러 다른 시스템에서 원격 로그인) 사전 공격을 방지합니다 일에서. 시도 횟수를 지정한 후에는 해당 IP 주소에서 더 이상 시도하지 못하게됩니다. (라우터 / 로컬 IP 주소가 표시되지 않도록주의하고 너무 일찍 또는 너무 오래 금지하십시오!)

추가 편집 : 모든 설정이 완료되면 dd 또는 Win32DiskImager와 같은 도구를 사용하여 SD 카드의 전체 비트 단위 백업을 수행하십시오. 이렇게하면 문제가 발생하면 같은 카드로 복원하거나 새 카드에 기록하고 관계없이 계속 진행할 수 있습니다. (하지만 해킹당한 경우 어떤 구멍이 발견되었는지 먼저 확인하고 그 구멍을 먼저 닫고 싶을 것입니다.)


1
라우터에서 RPi 포트를 변경하면 다른 보호 계층이 어떻게 추가되는지 설명 할 수 있습니까?
Andrei


-1

OS를 강화할뿐만 아니라 클라우드 기반 보안 모니터링 서비스를 사용하여 장치와의 활동을 모니터링하고 방해가되는 것이 감지되면 경고를받을 수도 있습니다. 요즘에는 클라우드 기반 SIEM 툴이 몇 개 있으며, 일부는 (Siemless와 같은) 프리미엄 모델을 운영하므로 가정 사용자는 1 페니를 지불 할 필요가 없습니다. 이러한 서비스를 사용하려면 모든 Linux OS 배포판의 표준 부분 인 rsyslog / syslog와 같은 것을 숙지해야합니다.


1
클라우드 도구는 공격 영역을 늘리고 로컬 보안 모니터링 (로그 경고 / 확인)은 좋은 도구이지만이 답변은 불완전하며 더 많은 의견입니다.
user1133275 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.