Nên làm gì để bảo mật Raspberry Pi?


82

Có hàng chục ngàn Raspberry Pi được kết nối với internet cuối cùng sẽ thu hút sự quan tâm của một số người muốn làm những việc không đáng tin cho các máy tính nhỏ, đặc biệt là khi nhiều người đang sử dụng Pi của họ để làm máy chủ mạng. Linux là một hệ điều hành bảo mật vượt trội, nhưng ngoài việc thay đổi mật khẩu, cần làm gì để "làm cứng" Raspberry Pi nếu tôi có ý định lưu trữ các dịch vụ phải đối mặt với internet trên thiết bị?

Chỉ để hỗ trợ cho "hàng chục ngàn" quip của tôi, Eben Upton đã nói rằng "Raspberry Pi đã bán được hơn 200.000 mô-đun máy tính cơ bản và hiện đang vận chuyển 4.000 chiếc mỗi ngày" . Có thể an toàn khi giả định hàng chục ngàn trong số 200.000 người đó đã được kết nối với internet. Sẽ không an toàn khi cho rằng hàng chục ngàn Raspberry Pis được kết nối internet đang lưu trữ một dịch vụ web công khai, nhưng tiềm năng cho sự nhiệt tình của hacker vẫn tồn tại.


3
Hãy nhớ rằng mặc dù có thể có "hàng chục ngàn" được kết nối, nhưng hiện tại có 3 bản phân phối Linux riêng biệt (mà tôi biết) và tôi nghĩ thậm chí còn có một vài dự án không dựa trên linux. Điều này ảnh hưởng đến quan điểm của tin tặc. Tuy nhiên, nếu bảo mật là quan trọng, hãy cập nhật bản phân phối của bạn và, nếu cần, hãy giữ thiết bị của bạn phía sau tường lửa.
RLH

Điểm hay RLH Tôi sẽ thêm một số thông tin bổ sung vào câu hỏi hỗ trợ số lượng Raspberry Pis trong tự nhiên để đưa ra ý tưởng tốt hơn về bề mặt tấn công của Raspberry Pi mà Steve đã đề cập trong câu trả lời của anh ấy.
Dan B

@DanB Bề mặt tấn công không phải là chức năng của số lượng Pi mà là số lượng hệ thống và dịch vụ có sẵn để tấn công. vi.wikipedia.org/wiki/Attack_surface
Steve Robillard

Tài khoản .
Dan B

Tôi đã tìm thấy một hướng dẫn ngắn về cách bảo mật pi mâm xôi của bạn khi sử dụng SSH, có vẻ khá gọn gàng. -> hướng dẫn
Dominik St.

Câu trả lời:


54

Bảo mật máy tính không phải là một quá trình đơn giản, toàn bộ sách được viết về chủ đề này. Kích thước của Pi không làm giảm mối đe dọa an ninh hoặc bề mặt tấn công được trình bày cho kẻ tấn công có thể. Do đó, tôi sẽ mô tả các bước liên quan và cung cấp liên kết đến các hướng dẫn và hướng dẫn chi tiết hơn.

Vì bạn chưa đề cập đến bản phân phối nào bạn đang sử dụng, tôi sẽ giả sử Bản phân phối Raspbian được đề xuất.

  1. Thay đổi mật khẩu mặc định. Bản phân phối Raspbian bao gồm điều này như một tùy chọn trong tập lệnh khởi động ban đầu. Nếu bạn chưa làm điều này, bạn có thể sử dụng lệnh passwd để thay đổi nó. Hãy chắc chắn để chọn một mật khẩu mạnh .
  2. Vô hiệu hóa các dịch vụ không sử dụng . Tôi thấy rằng bản phân phối Raspbian được đề xuất bao gồm máy chủ web Apache và cho phép nó khởi động (ai đó có thể xác nhận điều này) . Bạn có thực sự cần một máy chủ web đang chạy? Nếu không vô hiệu hóa nó. Nếu bạn cần chạy Apache, hãy chắc chắn bảo mật nó và thực hiện tương tự cho dịch vụ khác (ví dụ: FTP, NGINX, MySQL, v.v.), một tìm kiếm google sẽ xuất hiện một số tài nguyên.
  3. Cài đặt và cấu hình iptables .
  4. Giữ cho hệ thống của bạn cập nhật. Bạn có thể tự động hóa việc này bằng cron hoặc sử dụng cron-apt .
  5. Định cấu hình đăng nhập để theo dõi thông tin đăng nhập và các lần đăng nhập thất bại. Nếu có thể, hãy sử dụng ổ cứng ngoài để lưu trữ phân vùng / var của bạn, điều này sẽ cung cấp cho bạn nhiều dung lượng hơn, tránh các tệp nhật ký lấp đầy Thẻ SD và kéo dài tuổi thọ của Thẻ SD.

Một số điều bổ sung bạn có thể muốn xem xét:

Bạn cũng nên đọc câu hỏi liên quan này Làm thế nào tôi có thể bảo vệ chống lại sự xâm nhập và phần mềm độc hại trước khi kết nối nó với internet (đặc biệt là trên một địa chỉ IP công cộng)? .

Đây chỉ là các bước tối thiểu để bảo vệ Pi của bạn. Để biết thêm thông tin, bạn có thể muốn đọc Hướng dẫn bảo mật Debian .


6
Hãy chắc chắn để tạo các khóa ssh của riêng bạn. Tôi nghĩ rằng một số hình ảnh đã có chìa khóa trong đó.
John La Rooy

2
Apache không được cài đặt theo raspbian theo mặc định (người dùng đã cài đặt một cái gì đó như php5-mysql IIRC). Đối với một bộ lọc gói thân thiện hơn một chút so với iptables trần trụi, có lẽ chúng ta nên đề xuất ufw và thậm chí cả giao diện GUI của nó gufw?
elmicha

1
Liệu nó có ý nghĩa để cài đặt iptables, ngay cả khi bạn đứng sau một bộ định tuyến?
keiki

2
@ otakun85 Vâng, nó được gọi là phòng thủ theo chiều sâu. Bằng cách dựa hoàn toàn vào bộ định tuyến của bạn, ai đó sẽ vượt qua được bộ định tuyến của bạn để có iptables và chạy khiến việc khai thác thêm khó khăn hơn.
Steve Robillard

2
Vô hiệu hóa các dịch vụ không sử dụng cũng giúp giảm thời gian khởi động và tiết kiệm một lượng (nhỏ) bộ nhớ và CPU.
TomG

11

Nhìn vào RPi, có vẻ như một thiết bị khá an toàn trong hộp, miễn là bạn làm một vài điều.

Nhu cầu người dùng / pass mặc định đã thay đổi. Ít nhất, thay đổi mật khẩu. Để bảo mật tốt hơn một lần nữa, hãy thay đổi tên người dùng. (Thêm người dùng mới, sau đó vô hiệu hóa PI. Kiểm tra xem ROOT cũng bị vô hiệu hóa khi đăng nhập SSH, mặc dù tôi nghĩ đó là mặc định.)

Quét RPi chỉ trả về một cổng mở, 22, đó là kết nối SSH và thậm chí nó phải được bật trước khi nó hiển thị (mặc dù hầu hết mọi người sẽ sử dụng nó thay vì màn hình, bàn phím và chuột, đặc biệt là trên máy chủ {web})

Bạn có thể thay đổi số cổng SSH, nhưng điều đó sẽ không làm được gì nhiều, vì nó có thể được quét đủ dễ dàng. Thay vào đó, hãy kích hoạt xác thực SSH-Key.

Bây giờ bạn không có cách nào để bất cứ ai vào máy của bạn mà không có khóa SSH, tên người dùng và mật khẩu chính xác.

Tiếp theo, thiết lập máy chủ web của bạn. Apache là khá nhiều nơi nó đang ở. Điều đó sẽ ngồi và theo dõi cổng 80 như mặc định và tự động trả lời các kết nối từ trình duyệt, phục vụ các trang web của bạn.

Nếu bạn có tường lửa hoặc bộ định tuyến, bạn có thể thay đổi các cổng RPi và bộ định tuyến sẽ điều hướng lưu lượng truy cập từ cổng này sang cổng khác. Ví dụ: lưu lượng truy cập cổng 80 vào bộ định tuyến được chuyển hướng đến cổng 75 trên RPi và SSH trên 22 được chuyển hướng đến cổng 72. Điều này sẽ thêm một lớp bảo vệ khác, nhưng phức tạp hơn một chút.

Giữ tất cả mọi thứ cập nhật và vá, rõ ràng.

Điều này sẽ không bảo vệ bạn khỏi các cuộc tấn công khai thác java, flash, máy chủ SQL, v.v. mà bạn có thể thêm vào sau này, nhưng đó thực sự là những điều cơ bản.

Bạn cũng có thể thêm một tường lửa, điều này sẽ làm chậm bất kỳ ai xâm nhập vào hệ thống của bạn khỏi một cổng khác nếu họ cài đặt một dịch vụ mới. Bộ định tuyến của bạn sẽ xử lý vấn đề đó, nhưng nếu nó được kết nối trực tiếp, sau đó thiết lập nó và trong bao lâu, bạn cũng có thể chạy nó - dù sao nó cũng sẽ không bổ sung nhiều vào tài nguyên hệ thống.

Một điều khác bạn có thể muốn thêm là fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ) có thêm quy tắc tường lửa để chặn nhiều lần đăng nhập, ngăn chặn các cuộc tấn công từ điển. Mặc dù những thứ này không thể hoạt động trên hệ thống của bạn nếu bạn đã làm theo những điều trên, nhưng vì lý do nào đó bạn chỉ cần để lại mật khẩu SSH auth (ví dụ như bạn đăng nhập từ nhiều máy khác nhau) thì nó sẽ ngăn chặn một cuộc tấn công từ điển từ làm việc. Sau số lần thử mà bạn chỉ định, nó sẽ chặn một lần nữa bất kỳ lần thử nào từ địa chỉ IP đó. (Chỉ cần lưu ý rằng nó không nhìn thấy bất kỳ bộ định tuyến / địa chỉ IP cục bộ nào và cấm quá sớm hoặc quá lâu!)

Đã chỉnh sửa để thêm: Khi bạn đã thiết lập mọi thứ độc đáo, hãy sử dụng một công cụ như dd hoặc Win32DiskImager để sao lưu toàn bộ thẻ SD của bạn. Bằng cách đó, nếu có bất cứ điều gì sai, bạn có thể khôi phục nó vào cùng một thẻ hoặc ghi nó vào một thẻ mới, và tiếp tục bất kể. (Nhưng nếu bị hack, có lẽ bạn muốn tìm ra lỗ hổng nào được tìm thấy và đóng lỗ đó trước tiên, có lẽ!)


1
Bạn có thể giải thích cách thay đổi các cổng RPi trên bộ định tuyến thêm một lớp bảo vệ khác không?
Andrei


-1

Ngoài việc làm cứng hệ điều hành, bạn cũng có thể xem xét sử dụng dịch vụ giám sát bảo mật dựa trên đám mây để giám sát hoạt động đến / từ / trên thiết bị của bạn và nhận thông báo nếu phát hiện bất kỳ điều gì không mong muốn. Hiện tại có một số công cụ SIEM dựa trên đám mây và một số công cụ (như siemless) vận hành mô hình freemium để người dùng gia đình không phải trả một xu nào. Để sử dụng một dịch vụ như vậy, bạn sẽ cần phải tự làm quen với những thứ như rsyslog / syslog, một phần tiêu chuẩn của tất cả các bản phân phối Linux OS.


1
Các công cụ đám mây làm tăng bề mặt tấn công, giám sát an ninh cục bộ (logwarn / check) là những công cụ tốt, nhưng câu trả lời này chưa đầy đủ và có nhiều nhận xét.
dùng1133275
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.