Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

В bài viết trước chúng tôi đã giới thiệu cách chạy phiên bản ổn định của Suricata trên Ubuntu 18.04 LTS. Việc thiết lập IDS trên một nút và kích hoạt các bộ quy tắc miễn phí khá đơn giản. Hôm nay chúng ta sẽ tìm hiểu cách bảo vệ mạng công ty bằng cách sử dụng các kiểu tấn công phổ biến nhất bằng Suricata được cài đặt trên máy chủ ảo. Để làm điều này, chúng tôi cần một VDS trên Linux với hai lõi điện toán. Dung lượng RAM phụ thuộc vào tải: 2 GB là đủ cho một người nào đó và có thể cần 4 hoặc thậm chí 6 cho các tác vụ nghiêm trọng hơn. tài nguyên khi cần thiết.

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòngảnh: Reuters

Kết nối mạng

Việc xóa IDS cho máy ảo ngay từ đầu có thể cần thiết cho các thử nghiệm. Nếu bạn chưa bao giờ xử lý các giải pháp như vậy, bạn không nên vội vàng đặt mua phần cứng vật lý và thay đổi kiến ​​​​trúc mạng. Tốt nhất là vận hành hệ thống một cách an toàn và tiết kiệm chi phí để xác định nhu cầu điện toán của bạn. Điều quan trọng cần hiểu là tất cả lưu lượng truy cập của công ty sẽ phải được chuyển qua một nút bên ngoài duy nhất: để kết nối mạng cục bộ (hoặc một số mạng) với VDS có cài đặt IDS Suricata, bạn có thể sử dụng Mềm - Máy chủ VPN đa nền tảng, dễ cấu hình, cung cấp khả năng mã hóa mạnh mẽ. Kết nối Internet văn phòng có thể không có IP thực, vì vậy tốt hơn hết bạn nên thiết lập nó trên VPS. Không có gói làm sẵn nào trong kho lưu trữ Ubuntu, bạn sẽ phải tải xuống phần mềm từ địa điểm dự ánhoặc từ một kho lưu trữ bên ngoài trên dịch vụ Launchpad (nếu bạn tin tưởng anh ta):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Bạn có thể xem danh sách các gói có sẵn bằng lệnh sau:

apt-cache search softether

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Chúng tôi sẽ cần softether-vpnserver (máy chủ trong cấu hình thử nghiệm đang chạy trên VDS), cũng như softether-vpncmd - tiện ích dòng lệnh để định cấu hình nó.

sudo apt-get install softether-vpnserver softether-vpncmd

Một tiện ích dòng lệnh đặc biệt được sử dụng để cấu hình máy chủ:

sudo vpncmd

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Chúng tôi sẽ không nói chi tiết về cài đặt: quy trình này khá đơn giản, nó được mô tả rõ ràng trong nhiều ấn phẩm và không liên quan trực tiếp đến chủ đề của bài báo. Tóm lại, sau khi khởi động vpncmd, bạn cần chọn mục 1 để vào giao diện quản lý máy chủ. Để thực hiện việc này, bạn cần nhập tên localhost và nhấn enter thay vì nhập tên của trung tâm. Mật khẩu quản trị viên được đặt trong bảng điều khiển bằng lệnh serverpasswordset, trung tâm ảo DEFAULT bị xóa (lệnh hubdelete) và một cái mới được tạo với tên Suricata_VPN, đồng thời mật khẩu của nó cũng được đặt (lệnh hubcreate). Tiếp theo, bạn cần vào bảng điều khiển quản lý của trung tâm mới bằng cách sử dụng lệnh trung tâm Suricata_VPN để tạo một nhóm và người dùng bằng cách sử dụng các lệnh tạo nhóm và tạo người dùng. Mật khẩu người dùng được đặt bằng userpasswordset.

SoftEther hỗ trợ hai chế độ truyền lưu lượng: SecureNAT và Local Bridge. Đầu tiên là công nghệ độc quyền để xây dựng mạng riêng ảo với NAT và DHCP riêng. SecureNAT không yêu cầu TUN/TAP hoặc Netfilter hoặc các cài đặt tường lửa khác. Định tuyến không ảnh hưởng đến lõi của hệ thống và tất cả các quy trình đều được ảo hóa và hoạt động trên bất kỳ VPS / VDS nào, bất kể trình ảo hóa được sử dụng. Điều này dẫn đến tải CPU tăng lên và tốc độ chậm hơn so với chế độ Cầu cục bộ, chế độ kết nối trung tâm ảo SoftEther với bộ điều hợp mạng vật lý hoặc thiết bị TAP.

Việc cấu hình trong trường hợp này trở nên phức tạp hơn, do việc định tuyến xảy ra ở cấp nhân bằng cách sử dụng Netfilter. VDS của chúng tôi được xây dựng trên Hyper-V, vì vậy ở bước cuối cùng, chúng tôi tạo một cầu nối cục bộ và kích hoạt thiết bị TAP bằng lệnh bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Sau khi thoát khỏi bảng điều khiển quản lý trung tâm, chúng ta sẽ thấy một giao diện mạng mới trong hệ thống chưa được gán IP:

ifconfig

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Tiếp theo, bạn sẽ phải bật định tuyến gói giữa các giao diện (chuyển tiếp ip), nếu nó không hoạt động:

sudo nano /etc/sysctl.conf

Bỏ ghi chú dòng sau:

net.ipv4.ip_forward = 1

Lưu các thay đổi vào tệp, thoát khỏi trình chỉnh sửa và áp dụng chúng bằng lệnh sau:

sudo sysctl -p

Tiếp theo, chúng ta cần xác định mạng con cho mạng ảo có IP giả (ví dụ: 10.0.10.0/24) và gán địa chỉ cho giao diện:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Sau đó, bạn cần viết các quy tắc Netfilter.

1. Nếu cần, hãy cho phép các gói đến trên các cổng lắng nghe (giao thức độc quyền của SoftEther sử dụng HTTPS và cổng 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. Thiết lập NAT từ mạng con 10.0.10.0/24 đến IP máy chủ chính

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Cho phép truyền gói tin từ mạng con 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Cho phép chuyển gói cho các kết nối đã được thiết lập

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Chúng tôi sẽ để việc tự động hóa quy trình khi hệ thống được khởi động lại bằng cách sử dụng các tập lệnh khởi tạo cho người đọc như bài tập về nhà.

Nếu bạn muốn tự động cấp IP cho máy khách, bạn cũng sẽ cần cài đặt một số loại dịch vụ DHCP cho cầu nối cục bộ. Điều này hoàn thành việc thiết lập máy chủ và bạn có thể truy cập máy khách. SoftEther hỗ trợ nhiều giao thức, việc sử dụng giao thức nào phụ thuộc vào khả năng của thiết bị LAN.

netstat -ap |grep vpnserver

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Vì bộ định tuyến thử nghiệm của chúng tôi cũng chạy trên Ubuntu, nên hãy cài đặt các gói softether-vpnclient và softether-vpncmd từ kho lưu trữ bên ngoài trên đó để sử dụng giao thức độc quyền. Bạn sẽ cần chạy ứng dụng khách:

sudo vpnclient start

Để định cấu hình, hãy sử dụng tiện ích vpncmd, chọn localhost làm máy chạy vpnclient. Tất cả các lệnh được thực hiện trong bảng điều khiển: bạn sẽ cần tạo một giao diện ảo (NicCreate) và một tài khoản (AccountCreate).

Trong một số trường hợp, bạn phải chỉ định phương pháp xác thực bằng cách sử dụng các lệnh AccountAnonymousSet, AccountPasswordSet, AccountCertSet và AccountSecureCertSet. Vì chúng tôi không sử dụng DHCP, nên địa chỉ cho bộ điều hợp ảo được đặt thủ công.

Ngoài ra, chúng ta cần kích hoạt chuyển tiếp ip (tùy chọn net.ipv4.ip_forward=1 trong tệp /etc/sysctl.conf) và định cấu hình các tuyến tĩnh. Nếu cần, trên VDS với Suricata, bạn có thể định cấu hình chuyển tiếp cổng để sử dụng các dịch vụ được cài đặt trên mạng cục bộ. Về điều này, việc hợp nhất mạng có thể được coi là hoàn tất.

Cấu hình đề xuất của chúng tôi sẽ giống như thế này:

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Thiết lập Suricata

В bài viết trước chúng ta đã nói về hai chế độ hoạt động của IDS: thông qua hàng đợi NFQUEUE (chế độ NFQ) và thông qua bản sao bằng XNUMX (chế độ AF_PACKET). Cái thứ hai yêu cầu hai giao diện, nhưng nhanh hơn - chúng tôi sẽ sử dụng nó. Tham số được đặt theo mặc định trong /etc/default/suricata. Chúng tôi cũng cần chỉnh sửa phần vars trong /etc/suricata/suricata.yaml, đặt mạng con ảo ở đó làm nhà.

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Để khởi động lại IDS, sử dụng lệnh:

systemctl restart suricata

Giải pháp đã sẵn sàng, bây giờ bạn có thể cần kiểm tra khả năng chống lại các hành động độc hại.

mô phỏng các cuộc tấn công

Có thể có một số tình huống đối với việc sử dụng chống lại dịch vụ IDS bên ngoài:

Bảo vệ chống lại các cuộc tấn công DDoS (mục đích chính)

Rất khó để thực hiện một tùy chọn như vậy bên trong mạng công ty, vì các gói để phân tích phải đến giao diện hệ thống nhìn vào Internet. Ngay cả khi IDS chặn chúng, lưu lượng giả có thể làm hỏng liên kết dữ liệu. Để tránh điều này, bạn cần đặt mua một VPS có kết nối Internet đủ hiệu quả để có thể vượt qua tất cả lưu lượng truy cập mạng cục bộ và tất cả lưu lượng truy cập bên ngoài. Việc này thường dễ dàng và rẻ hơn so với việc mở rộng kênh văn phòng. Thay vào đó, điều đáng nói là các dịch vụ chuyên biệt để bảo vệ chống lại DDoS. Chi phí dịch vụ của họ tương đương với chi phí của một máy chủ ảo và nó không yêu cầu cấu hình tốn thời gian, nhưng cũng có những nhược điểm - khách hàng chỉ nhận được bảo vệ DDoS bằng tiền của mình, trong khi IDS của chính anh ta có thể được cấu hình như bạn giống.

Bảo vệ chống lại các cuộc tấn công bên ngoài của các loại khác

Suricata có thể đối phó với các nỗ lực khai thác các lỗ hổng khác nhau trong các dịch vụ mạng công ty có thể truy cập từ Internet (máy chủ thư, máy chủ web và ứng dụng web, v.v.). Thông thường, đối với điều này, IDS được cài đặt bên trong mạng LAN sau các thiết bị viền, nhưng việc đưa nó ra bên ngoài có quyền tồn tại.

Bảo vệ từ người trong cuộc

Bất chấp những nỗ lực tốt nhất của quản trị viên hệ thống, các máy tính trong mạng công ty có thể bị nhiễm phần mềm độc hại. Ngoài ra, những kẻ côn đồ đôi khi xuất hiện ở khu vực địa phương, những kẻ cố gắng thực hiện một số hoạt động bất hợp pháp. Suricata có thể giúp chặn những nỗ lực như vậy, mặc dù để bảo vệ mạng nội bộ, tốt hơn là cài đặt nó bên trong vành đai và sử dụng nó song song với một bộ chuyển mạch được quản lý có thể phản ánh lưu lượng truy cập đến một cổng. IDS bên ngoài cũng không phải là vô dụng trong trường hợp này - ít nhất nó sẽ có thể bắt được các nỗ lực của phần mềm độc hại sống trong mạng LAN để liên hệ với máy chủ bên ngoài.

Để bắt đầu, chúng tôi sẽ tạo một thử nghiệm khác tấn công VPS và trên bộ định tuyến mạng cục bộ, chúng tôi sẽ nâng Apache với cấu hình mặc định, sau đó chúng tôi sẽ chuyển tiếp cổng thứ 80 tới nó từ máy chủ IDS. Tiếp theo, chúng tôi sẽ mô phỏng một cuộc tấn công DDoS từ một máy chủ đang tấn công. Để thực hiện việc này, hãy tải xuống từ GitHub, biên dịch và chạy một chương trình xerxes nhỏ trên nút tấn công (bạn có thể cần cài đặt gói gcc):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

Kết quả công việc của cô như sau:

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Suricata cắt bỏ kẻ thủ ác và trang Apache sẽ mở theo mặc định, bất chấp cuộc tấn công ngẫu hứng của chúng tôi và kênh khá chết của mạng "văn phòng" (thực ra là ở nhà). Đối với các nhiệm vụ nghiêm trọng hơn, bạn nên sử dụng Khung Metasploit. Nó được thiết kế để thử nghiệm thâm nhập và cho phép bạn mô phỏng nhiều cuộc tấn công khác nhau. Hướng dẫn cài đặt có sẵn trên trang web của dự án. Sau khi cài đặt, một bản cập nhật là bắt buộc:

sudo msfupdate

Để kiểm tra, hãy chạy msfconsole.

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Thật không may, các phiên bản mới nhất của khung thiếu khả năng bẻ khóa tự động, do đó, việc khai thác sẽ phải được sắp xếp theo cách thủ công và chạy bằng lệnh sử dụng. Để bắt đầu, cần xác định các cổng mở trên máy bị tấn công, chẳng hạn như sử dụng nmap (trong trường hợp của chúng tôi, nó sẽ được thay thế hoàn toàn bằng netstat trên máy chủ bị tấn công), sau đó chọn và sử dụng cổng thích hợp. mô-đun metasploit

Có nhiều phương tiện khác để kiểm tra khả năng phục hồi của IDS trước các cuộc tấn công, bao gồm cả các dịch vụ trực tuyến. Vì tò mò, bạn có thể sắp xếp kiểm tra căng thẳng bằng phiên bản dùng thử ứng suất IP. Để kiểm tra phản ứng với hành động của những kẻ xâm nhập nội bộ, bạn nên cài đặt các công cụ đặc biệt trên một trong các máy trên mạng cục bộ. Có rất nhiều lựa chọn và đôi khi chúng không chỉ được áp dụng cho khu vực thử nghiệm mà còn cho các hệ thống đang hoạt động, chỉ có điều đây là một câu chuyện hoàn toàn khác.

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Khịt mũi hoặc Suricata. Phần 3: Bảo vệ mạng văn phòng

Nguồn: www.habr.com

Thêm một lời nhận xét