Hướng dẫn kỹ thuật CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
Danh sách nội dung [Ẩn]
Hướng dẫn người dùng bảo mật lưu lượng GTP và SCTP cho các thiết bị bảo mật trên JunOS.
Giao thức Điều khiển Truyền tải Dòng (SCTP) là một giao thức tầng vận chuyển (transport layer) đảm bảo truyền dữ liệu đáng tin cậy và đúng thứ tự. SCTP hỗ trợ multihoming, cho phép một hoặc cả hai đầu của kết nối có nhiều hơn một địa chỉ IP. Điều này giúp chuyển đổi giữa các đường truyền mạng dự phòng một cách minh bạch khi xảy ra lỗi.
Stream Control Transmission Protocol (SCTP) là một giao thức tầng vận chuyển mạnh mẽ thuộc bộ giao thức Internet, hoạt động song song với UDP và TCP. Giao thức này được thiết kế để cung cấp truyền tải kết nối đáng tin cậy cho nhiều ứng dụng Internet. Các đặc điểm nổi bật của SCTP bao gồm:
SCTP hỗ trợ nhiều luồng tin nhắn cho mỗi đầu kết nối, rất phù hợp cho các ứng dụng yêu cầu thứ tự nghiêm ngặt trong từng luồng và có các mức ưu tiên tin nhắn khác nhau.
Khi tin nhắn lớn hơn kích thước truyền tối đa của đường truyền (MTU), SCTP sẽ phân mảnh dữ liệu thành các chunk (khối), đánh dấu chunk cuối cùng bằng cờ đặc biệt. Ở phía nhận, các chunk được tập hợp lại trước khi chuyển đến tầng trên.
SCTP cho phép gộp nhiều chunk từ các tin nhắn khác nhau vào cùng một gói SCTP, giúp truyền dữ liệu hiệu quả hơn. Phía nhận sẽ tách các chunk này ra trước khi chuyển tiếp.
Trong phần tiêu đề, SCTP có chứa một verification tag (thẻ xác minh) dùng để định danh duy nhất cho phiên kết nối (association). Thẻ này giúp chống lại các cuộc tấn công giả mạo và ngăn việc xử lý các gói SCTP cũ từ những phiên kết nối trước.
SCTP cho phép các điểm cuối khai báo danh sách địa chỉ mạng cục bộ trong quá trình thiết lập kết nối, giúp đảm bảo tính sẵn sàng cao trong truyền dữ liệu bằng cách thiết lập đường dẫn cho từng địa chỉ đích.
Ngoài ra, SCTP cung cấp khả năng chuyển đổi dự phòng minh bạch (transparent failover) giữa các đường truyền mạng dư thừa, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng yêu cầu truyền dữ liệu đáng tin cậy và đúng thứ tự. SCTP hoạt động trên các mạng gói không kết nối như IP, và hỗ trợ cả tình huống một hoặc nhiều địa chỉ IP cho mỗi điểm kết nối.
Bên cạnh đó, SCTP được ứng dụng trong việc truyền các tin hiệu điều khiển của mạng di động 3G thông qua các giao thức như M3UA, M2UA, hoặc SUA. Giao thức này được tối ưu hóa để: Tránh các vấn đề hạ tầng đa luồng (multithread) trong điều kiện lưu lượng cao, tăng tốc độ tìm kiếm phiên kết nối (association searching rate) và cải tiến FSM (Finite State Machine) trong các trường hợp truyền lại dữ liệu.
SCTP đặc biệt phù hợp với các ứng dụng cần giám sát và phát hiện mất kết nối phiên làm việc (loss-of-session detection). Cơ chế heartbeat (nhịp tim) của nó giúp theo dõi tình trạng kết nối phiên, đảm bảo một cơ chế truyền tải đáng tin cậy và an toàn, với độ trễ đầu-cuối thấp và thời gian chuyển đổi nhanh khi xảy ra sự cố mạng.

Hình 1: Bắt tay 4 bước của SCTP so với bắt tay 3 bước của TCP
Các dịch vụ mà SCTP cung cấp
SCTP hỗ trợ nhiều dịch vụ và giao thức thích ứng khác nhau trong các hệ thống mạng viễn thông và truyền dữ liệu. Dưới đây là danh sách các dịch vụ mà SCTP hỗ trợ:
Giới hạn và Ràng buộc của SCTP (SCTP Limitations and Constraints)
SCTP tuy mạnh mẽ nhưng cũng có những giới hạn và ràng buộc sau:
Địa chỉ IP
Chính sách (Policies)
Kích hoạt / Vô hiệu hóa SCTP
**Lưu ý: Xóa các phiên SCTP cũ khi bật lại SCTP: Việc này sẽ giúp tránh các ảnh hưởng tiêu cực từ các phiên SCTP cũ đến các kết nối SCTP mới.
Giới hạn tốc độ SCTP (SCTP Rate Limiting)
Chặn giao thức Payload SCTP (SCTP Payload Protocol Blocking)
Hạn chế về NAT và Đa địa chỉ (Multihoming)
Phiên SCTP và liên kết
Các giới hạn kỹ thuật khác
Tổng quan về các tính năng của SCTP
Các tính năng quan trọng của giao thức SCTP bao gồm:
Hỗ trợ kiến trúc phân tán trung tâm cho SCTP
Hỗ trợ SCTP với VRF (Virtual Routing and Forwarding)
Tính năng VRF cho phép quản lý các địa chỉ IP từ xa bằng cách chia bảng định tuyến.
Trên phía client SCTP:
Trước khi thiết lập một liên kết SCTP, client cần cấu hình socket option để chọn bảng định tuyến (route table index/VRF index). Nếu giao diện gửi ra (egress) được cấu hình trong VRF mà client không chỉ định đúng VRF, liên kết sẽ không được thiết lập vì sẽ dùng bảng định tuyến mặc định.
Trên phía server SCTP: Nếu socket option VRF index không được cấu hình, server sẽ chấp nhận yêu cầu kết nối từ tất cả các VRF. Nếu có cấu hình VRF index, thì chỉ những yêu cầu từ đúng VRF đó mới được chấp nhận.
Ứng dụng có thể: Tự đặt socket option để chỉ định bảng định tuyến. Hoặc để kernel tự chọn VRF dựa trên giao diện tiếp nhận gói (trong quá trình bắt tay 4 bước).
Khi liên kết SCTP được thiết lập qua một VRF, kernel cần xét thêm VRF ID bên cạnh 4 thông tin cũ (4-tuple): IP nguồn, cổng nguồn, IP đích, cổng đích → Tổng cộng thành 5-tuple để định danh duy nhất một liên kết.
Socket kiểu một-nhiều (One to Many) trong SCTP
SCTP hỗ trợ hai kiểu socket: Kiểu 1:1 (One to One) – Tương tự như TCP: mỗi liên kết (association) sẽ sử dụng một socket riêng. Kiểu 1:N (One to Many) – Cho phép nhiều liên kết hoạt động đồng thời trên một socket duy nhất. Kiểu này hỗ trợ giao tiếp với nhiều endpoint khác nhau cùng lúc, bằng cách sử dụng assoc-id (association identifier) để phân biệt giữa các kết nối.
Các lệnh hệ thống (System Call) dùng cho socket kiểu 1:1
Các lệnh hệ thống (System Call) dùng cho socket kiểu 1:N
Một gói SCTP bao gồm các phần sau:

Hình 2 minh họa cấu trúc của gói SCTP.
Phần Header Chung
Tất cả các gói SCTP yêu cầu một phần header chung. Phần này chiếm 12 byte đầu tiên của gói. Bảng 1 mô tả các trường trong phần header chung:
Bảng 1: Các Trường Trong Header Chung
| Trường | Mô tả |
| Số cổng nguồn | Xác định cổng gửi |
| Số cổng đích | Xác định cổng nhận. Các máy chủ sử dụng số cổng đích để định tuyến gói đến đích phù hợp hoặc ứng dụng |
| Mã xác minh | Phân biệt các gói cũ từ kết nối trước. Đây là một giá trị ngẫu nhiên 32-bit được tạo ra trong quá trình khởi tạo |
| Kiểm tra tổng | Sử dụng thuật toán kiểm tra độ dư chu kỳ (CRC32) để phát hiện lỗi có thể đã được giới thiệu trong quá trình truyền dữ liệu |
Phần dữ liệu (Data Chunk Section)
Phần dữ liệu (Data Chunk Section) – Phần này chiếm phần còn lại của gói tin. Bảng 2 mô tả các trường trong phần dữ liệu:
Bảng 2: Các trường trong phần dữ liệu (Data Chunk Fields)
| Trường | Mô tả |
| Chunk Type | Xác định nội dung của trường giá trị chunk. Trường này dài 1 byte. |
| Chunk Flags | Gồm 8 bit cờ, định nghĩa của chúng thay đổi tùy theo loại chunk. Giá trị mặc định là 0, cho biết không có định danh ứng dụng nào được lớp trên xác định cho dữ liệu. |
| Chunk Length | Xác định tổng độ dài của chunk tính theo byte. Trường này dài 2 byte. Nếu chunk không có độ dài là bội số của 4 byte (tức là không chia hết cho 4), nó sẽ được bổ sung ngầm bằng các số 0 (padding), nhưng các số 0 này không được tính vào độ dài chunk. |
| Chunk Value | Trường dữ liệu dùng cho mục đích chung |
Trình quản lý tài nguyên (RM) cho phép sử dụng 8 địa chỉ IP nguồn và 8 địa chỉ IP đích trong quá trình truyền thông SCTP.
Một điểm cuối SCTP (SCTP endpoint) có thể là một máy chủ hỗ trợ đa kết nối (multihomed) với toàn bộ địa chỉ IPv4 hoặc toàn bộ địa chỉ IPv6.
Trong Hình 3, điểm cuối A được kết nối với thiết bị tường lửa SRX Series với hai địa chỉ IPv4, và điểm cuối B cũng được kết nối với tường lửa SRX Series với hai địa chỉ IPv4.
Do đó, điểm cuối A và điểm cuối B có thể thiết lập một phiên liên kết (association) sử dụng bốn cặp địa chỉ IP khác nhau, dẫn đến bốn đường truyền hợp lệ cho việc truyền thông.

Hình 3: SCTP Multihoming với hai điểm cuối IPv4
Trong Hình 4, điểm cuối A được kết nối với tường lửa SRX Series với hai địa chỉ IPv6, và điểm cuối B cũng được kết nối với tường lửa SRX Series với hai địa chỉ IPv6.
Do đó, điểm cuối A và điểm cuối B có thể thiết lập một phiên liên kết (association) sử dụng bốn cặp địa chỉ IP khác nhau, tạo ra bốn đường truyền hợp lệ cho quá trình truyền thông.

Hình 4: SCTP Multihoming với hai điểm cuối IPv6
Tường lửa của giao thức Stream Control Transmission Protocol (SCTP) sẽ kiểm tra tất cả các chunk trong một thông điệp và sau đó cho phép hoặc chặn gói tin dựa trên chính sách đã cấu hình.
Sử dụng lệnh: set security gprs sctp multichunk-inspection enable để bật chế độ kiểm tra nhiều chunk trong SCTP. delete security gprs sctp multichunk-inspection enable hoặc set security gprs sctp multichunk-inspection disable để tắt chế độ này (lúc này chỉ kiểm tra chunk đầu tiên).
Sau khi bật tính năng kiểm tra nhiều chunk, tường lửa SCTP sẽ: Kiểm tra tất cả các chunk trong thông điệp. Cho phép hoặc chặn gói tin tùy theo kết quả kiểm tra.
Tường lửa SCTP sẽ chặn gói tin trong các trường hợp sau:
Nếu tất cả chunk trong một gói tin đều là null PDU, tường lửa SCTP sẽ chặn gói tin đó.
Trong chế độ cấu hình chassis cluster, cấu hình SCTP và các kết nối SCTP đã được thiết lập (SCTP association) sẽ được đồng bộ với thiết bị ngang hàng (peer). Mô-đun SCTP hỗ trợ cả hai chế độ hoạt động: active-active và active-passive.
Khi một thiết bị secondary tham gia cluster hoặc khởi động lại, mô-đun SCTP sẽ đăng ký một hàm đồng bộ cold start. Hàm này sẽ được gọi để đồng bộ toàn bộ các SCTP association với thiết bị peer cùng một lúc.
Khi xảy ra chuyển đổi (switchover):
Cấu hình chính sách (policy):
- Bạn cần cấu hình đầy đủ các chính sách phù hợp với các phiên SCTP cần thiết.
Ví dụ: Giả sử bạn có endpoint A và endpoint B.
Chính sách trên thiết bị bảo mật (firewall/security device) phải cho phép tất cả các đường đi có thể có là x × y chiều, theo cả hai hướng.
- Khi một SCTP association bị xóa, các phiên SCTP liên quan vẫn tồn tại và sẽ tự động hết hạn theo thời gian chờ.
Giao thức SCTP có thể được cấu hình để thực hiện kiểm tra trạng thái (stateful inspection) trên toàn bộ lưu lượng SCTP.
Để thiết bị bảo mật có thể thực hiện kiểm tra trạng thái, bạn phải cấu hình ít nhất một hồ sơ SCTP (SCTP profile). Việc kiểm tra này sẽ giúp phát hiện và loại bỏ các gói SCTP bất thường.
Các chức năng kiểm tra sâu của firewall SCTP bao gồm:
Các bước yêu cầu để cấu hình kiểm tra sâu SCTP:
Yêu cầu
Trước khi bắt đầu:
Tổng quan
Tường lửa SCTP triển khai một cơ chế chính sách được quản trị để xác định các gói tin được phép đi qua hoặc bị chặn. Các chính sách có thể được cấu hình cho nhiều địa chỉ, nhóm địa chỉ, hoặc toàn bộ vùng bảo mật.
Trong các tình huống chỉ sử dụng một số cổng nhất định cho lưu lượng SCTP, các phiên SCTP có thể không được phân phối đều đến các đơn vị xử lý dịch vụ (SPU). Điều này xảy ra trong các trường hợp:
Ví dụ cấu hình
Ví dụ cấu hình dưới đây sẽ:
Triển khai Firewall SCTP
Hình minh họa mô tả cách triển khai tường lửa cho SCTP (nếu có hình sẽ được tham khảo thêm trong tài liệu).
Hình 1: Triển khai tường lửa SCTP
Cấu hình nhanh qua CLI
Để cấu hình nhanh ví dụ này, hãy thực hiện các bước sau: Sao chép các lệnh bên dưới. Dán chúng vào một tệp văn bản. Xóa bất kỳ dấu xuống dòng nào (nếu có). Thay đổi các thông tin cần thiết để phù hợp với cấu hình mạng của bạn. Sao chép và dán toàn bộ chuỗi lệnh vào giao diện CLI tại cấp độ [edit]. Sau đó, nhập lệnh commit trong chế độ cấu hình để áp dụng thay đổi.
set security zones security-zone trust interfaces ge-0/0/2 set security zones security-zone untrust interfaces ge-0/0/1 set security policies from-zone trust to-zone untrust policy deny-all match source-address any set security policies policy from-zone trust to-zone untrust policy deny-all match destination-address 10.1.1.0/24 set security policies policy from-zone trust to-zone untrust policy deny-all match application junos-gprs-sctp set security policies from-zone trust to-zone untrust policy deny-all then deny set security policies from-zone trust to-zone untrust policy allow-att-roaming match source-address 10.1.2.0/24 set security policies from-zone trust to-zone untrust policy allow-att-roaming match destination-address any set security policies policy from-zone trust to-zone untrust policy allow-att-roaming match application junos-gprs-sctp set security policies from-zone trust to-zone untrust policy allow-att-roaming then permit application-services gprs-sctp-profile roam2att |
Quy trình từng bước
Để cấu hình một chính sách bảo mật nhằm cho phép hoặc chặn lưu lượng SCTP:
Bước 1: Cấu hình các cổng mạng (interfaces) và các vùng bảo mật (security zones).
[edit security zones] user@host# set security-zone trust interfaces ge-0/0/2 user@host# set security-zone untrust interfaces ge-0/0/1 |
Bước 2: Tạo chính sách bảo mật để cho phép lưu lượng từ vùng trust (đáng tin cậy) đến vùng untrust (không đáng tin cậy).
[edit security policies from-zone trust to-zone untrust] user@host# set policy allow-att-roaming match source-address 10.1.2.0/24 user@host# set policy allow-att-roaming match destination-address any user@host# set policy allow-att-roaming match application junos-gprs-sctp user@host# set policy allow-att-roaming then permit application-services gprs-sctp-profile roam2att |
Bước 3: Tạo chính sách bảo mật để chặn lưu lượng từ vùng trust (đáng tin cậy) đến vùng untrust (không đáng tin cậy).
[edit security policies from-zone trust to-zone untrust] user@host# set policy deny-all match source-address any user@host# set policy deny-all match destination-address 10.1.1.0/24 user@host# set policy deny-all match application junos-gprs-sctp user@host# set policy deny-all then deny |
Kết quả
Từ chế độ cấu hình, xác nhận cấu hình của bạn bằng cách nhập lệnh: show security policies. Nếu đầu ra không hiển thị cấu hình như mong muốn, hãy lặp lại các bước trong ví dụ này để chỉnh sửa cấu hình cho đúng.
[edit] user@host# show security policies from-zone trust to-zone untrust { policy deny-all { match { source-address any; destination-address 10.1.1.0/24; application junos-gprs-sctp;} then { deny;}} policy allow-att-roaming { match { source-address 10.1.2.0/24; destination-address any; application junos-gprs-sctp;} then { permit { application-services { gprs-sctp-profile roam2att;}}}}} |
Nếu bạn đã hoàn tất cấu hình thiết bị, hãy nhập lệnh commit từ chế độ cấu hình.
Xác minh
Xác nhận rằng cấu hình đang hoạt động chính xác.
Xác minh Cấu hình SCTP
Mục đích:
Xác minh cấu hình kiểm tra chính sách.
Thao tác:
Từ chế độ vận hành (operational mode), nhập lệnh: show configuration | display set | match profile
Trong kiến trúc GPRS, nguyên nhân cơ bản gây ra các mối đe dọa bảo mật cho mạng của nhà mạng là do thiếu bảo mật vốn có trong giao thức đường hầm GPRS (GTP).
Ví dụ này cho thấy cách cấu hình hồ sơ SCTP GPRS để thực hiện kiểm tra chính sách nhằm giảm thiểu rủi ro bảo mật của GTP.
Yêu cầu
Trước khi bắt đầu, hãy hiểu rõ cấu trúc phân cấp của GPRS SCTP và các tùy chọn của nó.
Tổng quan
Trong ví dụ này, bạn sẽ cấu hình hồ sơ SCTP GPRS bằng cách thiết lập các tham số: limit-rate – giới hạn tốc độ gói tin, payload-protocol – quy định giao thức tải trọng để kiểm tra SCTP. Nếu chính sách của bạn bao gồm tùy chọn nat-only, các địa chỉ IP trong payload sẽ được chuyển đổi (NAT), nhưng sẽ không được kiểm tra. Các lệnh cấu hình SCTP chỉ được áp dụng cho chính sách đã được cấu hình với hồ sơ SCTP.
Nếu bạn gỡ bỏ hồ sơ SCTP khỏi chính sách, các gói tin sẽ được chuyển tiếp mà không qua kiểm tra, và danh sách địa chỉ IP trong payload cũng sẽ không được dịch địa chỉ, ngay cả khi NAT tĩnh đã được cấu hình.
Thủ tục CLI nhanh (CLI Quick Configuration)
Để cấu hình nhanh, sao chép các lệnh bên dưới, dán vào một file văn bản, xóa bỏ xuống dòng, chỉnh sửa thông tin phù hợp với mạng của bạn, sau đó dán vào CLI ở cấp độ [edit], và nhập lệnh commit.
set security gprs sctp profile roam2att limit rate address 10.1.1.0 sccp 100 set security gprs sctp profile roam2att limit rate address 10.1.1.0 ssp 10 set security gprs sctp profile roam2att limit rate address 10.1.1.0 sst 50 set security gprs sctp profile roam2att drop payload-protocol all set security gprs sctp profile roam2att permit payload-protocol dua |
Quy trình từng bước
Để cấu hình một GPRS SCTP profile:
[edit security gprs sctp profile roam2att] user@host# set limit rate address 10.1.1.0 sccp 100 user@host# set limit rate address 10.1.1.0 ssp 10 user@host# set limit rate address 10.1.1.0 sst 50 |
[edit security gprs sctp profile roam2att] user@host# set drop payload-protocol all |
[edit security gprs sctp profile roam2att] user@host# set permit payload-protocol dua |
Kết quả
Từ chế độ cấu hình, xác nhận cấu hình của bạn bằng cách nhập lệnh show security gprs. Nếu kết quả không hiển thị cấu hình mong muốn, hãy lặp lại các bước trong ví dụ này để sửa lại cấu hình.
[edit] user@host# show security gprs sctp { profile roam2att { drop { payload-protocol all;} permit { payload-protocol dua;} limit { rate { address 10.1.1.0 { sccp 100; ssp 10; sst 50;}}}}} |
Nếu bạn đã hoàn tất cấu hình thiết bị, nhập lệnh commit từ chế độ cấu hình.
Xác nhận
Xác nhận rằng cấu hình đang hoạt động đúng cách.
Xác minh cấu hình SCTP Profile
Mục đích
Xác minh cấu hình SCTP profile.
Hành động
Từ chế độ cấu hình, nhập lệnh show configuration security gprs sctp profile roam2att.
[edit] user@host# show security gprs sctp { profile roam2att { drop { payload-protocol all;} permit { payload-protocol dua;} limit { rate { address 10.1.1.0 { sccp 100; ssp 10; sst 50;}}}}} |
Ý nghĩa
Kết quả hiển thị thông tin về các thông điệp SCTP payload được phép và các thông điệp SCTP payload bị loại bỏ. Kiểm tra các thông tin sau:
Các thông điệp SCTP payload bị loại bỏ
Các thông điệp SCTP payload được phép
Chúc các bạn thực hiện thành công. Hi vọng bài viết này sẽ giúp ích cho các bạn trong công việc. Nếu bạn có vấn đề gì thắc mắc đừng ngần ngại liên hệ với chúng tôi theo thông tin dưới đây để được hỗ trợ thêm.
Hẹn gặp lại các bạn trong các bài viết tiếp theo!
CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
• Địa chỉ: Số 23E4 KĐT Cầu Diễn, Tổ 7, Phú Diễn, Bắc Từ Liêm, Hà Nội
• Điện thoại: 02432012368
• Hotline: 098 115 6699
• Email: info@datech.vn
• Website: https://datech.vn