Logo CNTTShop.vn

Hotline:

Hà Nội: NTT03, Line 1, Thống Nhất Complex, 82 Nguyễn Tuân, Thanh Xuân, Hà Nội. ● HCM: Số 31B, Đường 1, Phường An Phú, Quận 2 (Thủ Đức), TP HCM. ===> Đơn Vị Hàng Đầu Trong Lĩnh Vực Cung Cấp Thiết Bị Security - Network - Wifi - CCTV - Conference - Máy chủ Server - Lưu trữ Storge.
Thiết bị mạng: 0862 158 859 Máy chủ Server: 0866 176 188 - 0968 498 887 Nvidia GPU-AI: 0906 051 599
Danh mục sản phẩm

Cách tắt SIP ALG, VoIP Inspection trên Firewall Fortigate

Tại sao cần tắt SIP ALG trên FortiGate?

SIP ALG là viết tắt của Session Initiation Protocol Application Layer Gateway, là 1 tính năng trên firewall Fortigate để hỗ trợ lưu lượng VoIP (Voice over Internet Protocol), bằng cách thay đổi gói tin SIP để chúng có thể đi qua được NAT. Tuy nhiên, trong hầu hết trường hợp, SIP ALG có thể gây ra các vấn đề về kết nối trong hệ thống VoIP. Dưới đây là 1 số vấn đề thường gặp khi sử dụng SIP ALG:

  1. Làm gián đoạn cuộc gọi: SIP ALG có thể sửa đổi các gói tin SIP, gây ra lỗi trong quá trình thiết lập hoặc duy trì cuộc gọi VoIP.
  2. Lỗi đăng ký SIP: SIP ALG thay đổi các gói tin SIP, nên trong 1 số trường hợp các điện thoại IP sẽ không thể đăng ký được với tổng đài.
  3. Mất âm thanh: SIP ALG có thể thay đổi địa chỉ IP hoặc cổng dịch vụ của SIP (mặc định là 5060 hoặc 5061), làm mất kết nối RTP, dẫn đến trường hợp chúng ta gọi được nhưng cả 2 đầu IP Phone cùng không nghe được âm thanh, hoặc 1 đầu nghe được, còn 1 đầu điện thoại thì không nghe được.
  4. Không tương thích với 1 số nhà cung cấp dịch vụ VoIP: nhiều nhà cung cấp VoIP khuyến nghị tắt SIP ALG để tránh xung đột với cơ chế NAT Traversal của họ.
  5. Gây khó khăn trong việc NAT cho VoIP: nếu hệ thống đã có NAT Traversal khác như STUN, ICE hoặc sử dụng SBS thì SIP ALG có thể gây xung đột và làm gián đoạn kết nối.

Fortinet khuyến nghị sử dụng SIP/SCCP proxy/ALG trong hầu hết tình huống, tuy nhiên thì việc sử dụng và cấu hình SIP rất phức tạp. Do vậy, tại Việt Nam thì thông thường chúng ta sẽ disable SIP ALG trên firewall đi, và sử dụng Port Forwarding để cho phép lưu lượng SIP/RTP hoạt động bình thường.

 

Cách disable SIP ALG trên Fortigate

Để tắt hoàn toàn SIP ALG trên Fortigate, chúng ta cần phải sử dụng giao diện dòng lệnh CLI của firewall để thực hiện. Các bạn có thể sử dụng dây console để kết nối trực tiếp, sử dụng các phiên TELNET hoặc SSH nếu đã được enable, hoặc truy cập trực tiếp vào CLI bằng công cụ Terminal trên giao diện web.

truy cập vào CLI của firewall Fortigate

Sau khi truy cập được vào CLI của firewall, các bạn sẽ làm theo các bước bên dưới để disable SIP ALG:

Xóa Session Helper

Để xóa session-helper cho SIP, các bạn cần phải xác định ID của session-helper tương ứng, chúng ta có thể kiểm tra bằng lệnh show trong "config system session-helper".

FW-Core # config system session-helper
FW-Core (session-helper) # show

Trong session-helper có nhiều ID, tương ứng với các giao thức khác nhau, các bạn tìm phần có name là SIP, như trong ảnh bên dưới thì ID của SIP trên firewall của mình là 13.

show session helper trên fortigate

Các bạn xóa session-helper bằng lệnh "delete 13".

FW-Core # config system session-helper
FW-Core (session-helper) # delete 13
FW-Core (session-helper) # end
FW-Core #

Thay đổi ALG mode

SIP ALG được bật theo mặc định, bằng tùy chọn proxy-based, các bạn có thể kiểm tra trong config system settings (khi firewall ở mode proxy-based thì các bạn show ra sẽ không có thông tin gì).

Chúng ta sẽ disable SIP-ALG và sử dụng SIP-helper bằng cách chuyển sang kernel-helper-based mode.

FW-Core # config system settings
FW-Core (settings) # set default-voip-alg-mode kernel-helper-based
FW-Core (settings) # end
FW-Core #

Disable RTP

Bằng cách disable RTP trên Fortigate, firewall sẽ chỉ quản lý các tín hiệu SIP và không giám sát hoặc sửa đổi luồng RTP. Điều này có nghĩa là lưu lượng media (RTP) sẽ được bỏ qua hoàn toàn, giảm khả năng xảy ra sự cố liên quan tới NAT, hoặc firewall policy kiểm tra gói tin.

FW-Core # config voip profile
FW-Core (profile) # edit default
FW-Core (default) # config sip
FW-Core (sip) # set rtp disable
FW-Core (sip) # end
FW-Core (default) # end
FW-Core #

Khởi động lại Firewall

Để các thay đổi liên quan đến SIP ALG có hiệu lực, chúng ta cần phải xóa toàn bộ các phiên SIP hiện có trên firewall. Chúng ta có thể sử dụng bộ lọc để lọc các gói SIP với port đích là 5060 để xóa các phiên này. Nếu các bạn chỉ sử dụng lệnh diagnose sys session clear thì firewall sẽ xóa tất cả các phiên, gây gián đoạn mạng.

FW-Core # diagnose sys session filter dport 5060
FW-Core # diagnose sys session clear

Nếu đã xóa phiên rồi nhưng vẫn không được thì các bạn sẽ cần phải reboot lại Firewall.

FW-Core # execute reboot

Kết luận

Việc tắt SIP ALG trên FortiGate là cần thiết để đảm bảo hệ thống VoIP hoạt động ổn định và không gặp các vấn đề như lỗi đăng ký SIP, mất âm thanh, gián đoạn cuộc gọi hoặc xung đột với các cơ chế NAT Traversal khác. Mặc dù SIP ALG được thiết kế để hỗ trợ lưu lượng SIP, nhưng trong thực tế, nó thường gây ra nhiều sự cố hơn là lợi ích, đặc biệt khi sử dụng với các tổng đài IP hoặc nhà cung cấp dịch vụ VoIP.

Nếu các bạn gặp các tình huống tương tự với VoIP và có các phương pháp xử lý khác, thì hay chia sẻ với mọi người trong phần comment của bài viết nhé.

Chúc các bạn thành công!

Lê Văn Tuấn

Là chuyên gia trong lĩnh vực Network System, Security, Server.. Có kinh nghiệm nhiều năm tư vấn giải pháp mạng, triển khai các giải pháp CNTT và phân phối thiết bị mạng Switch, Wifi, Router, Máy chủ Server, Lưu trữ Storage, Tường lửa Firewall, Video Conferencing, Module quang, Load Balancing. Hiện tại tôi là Founder và Managing Director công ty TNHH Công Nghệ Việt Thái Dương (CNTTShop.vn).

Bình luận bài viết!

Có 0 bình luận:
Chuyên mục chính
Bài viết cùng danh mục
Sản phẩm liên quan