Bu yazımızda sizlere FortiOS Carrier PFCP korumasının özelliklerini faydalarını ve kullanmanız gerken komutları anlatacağız. Kısaca FortiOS Carrier FortiGate birimlerinde bulunan tüm özelliklerin yanı sıra taşıyıcı ağlara ek özellikler sunar.
FortiOS Carrier’i kullanma alanları aşağıda belirtilmiştir:
- 2G, 3G, 4G ve 5G taşıyıcı ağlarından geçerken GPRS Tünel Protokolü (GTP) trafiğine filtreleme ve içerik denetimi uygulayabilmek için kullanılabilir.
- 4G ve 5G taşıyıcı ağlarından geçtiği Paket Yönlendirme Kontrol Protokolü (PFCP) trafiğine filtreleme ve içerik denetimi uygulayabilmek için kullanılır.
- FortiOS Carrier ayrıca SCTP üzerinde firewall görevi görebilir.
FortiOS Carrier PFCP koruması
Paket Yönlendirme Kontrol Protokolü (PFCP), 4G Kontrol düzlemi ve Kullanıcı Düzlemi Ayırma (CUPS) ve 5G sinyal gelişimi sağlayan 3GPP’ye yeni bir ek olarak eklenmiştir. PFCP, artık 3G/4G ağlarında GTP-C tarafından sağlanan birçok rolü üstlenerek oturum farkındalığı ve kullanıcı seviyesi trafiğinin izlenmesini sağlarken aynı zamanda kontrol panelini başlatmasını da sağlamaktadır. Aşağıda PFPC koruması hakkında bazı önemli bilgiler verilmiştir:
- PFCP protokolü, 3GPP spesifikasyonu #29.244’te tanımlanmıştır .
- PFCP, transport için GTP’ye benzer şekilde UDP üzerinden çalışır ve 8805 numaralı portu kullanır.
- Bu özellik PFCP oturum yardımcısını içerir ve Sxa, Sxb, Sxc, 4G CUPS arabirimleri ve 5G N4 arabiriminde denetim ve güvenlik sağlar.
- PFCP , FortiOS’un kullanıcı seviyesi trafiğinin (GTP-U) geçerli ve ayrıntılı uygulanması için kontrol paneli oturum bilgilerinin anlaşılmasını sağlayan 5G yerel güvenliği desteklemede oldukça önemlidir.
- FortiOS Carrier, PFCP profilleri oluşturmanıza izin verir ve 4G ve 5G ağları için paket yönlendirme kontrol prtokolü korumasını destekler. Bu profiller, FortiOS Carrier’dan geçen PFCP trafiğine birden çok türde filtreleme ve içerik denetimi uygulamanızı sağlar.
- PFCP profilleri, farklı PFCP mesaj türlerine işlem uygulayabilmenize izin veren PFCP mesaj filtreleri de içerebilir. Birden fazla PFCP mesaj filtresi oluşturabilir ve bunları farklı PFCP profillerine uygulayabilirsiniz.
- PFCP profilleri oluşturduktan sonra isteğinize bağlı olarak PFCP mesaj filtreleri ekledikten sonra, PFCP profilini uygulamak istediğiniz PFCP trafiğini kabul eden firewall policy oluşturabilirsiniz.
CLI’den PFCP mesaj filtreleri oluşturmak için kullanacağınız komut: config pfcp message-filter
CLI’den PFCP profilleri oluşturmak için kullanacağınız komut: config firewall pfcp
.
Bir firewall policy içine PFCP profili eklemek için kullanacağınız komut:
config firewall policy
edit <ID>
set pfcp-profile <pfcp-profile-name>
end
PFCP log mesajları, GTP log mesajlarının alt türleri olarak görünür. PFCP log mesajı örnekleri:
1: date=2021-05-12 time=19:11:44 eventtime=1620871904807305082 tz="-0700" logid="1401041232" type="gtp" subtype="pfcp-all" level="information" vd="vdom1" profile="pfcp-prf" status="prohibited" version=1 msg-type=2 from=10.1.1.2 to=10.2.2.2 deny_cause="invalid-msg-length" ietype=0 dtlexp="none" srcport=8805 dstport=8805 seqnum=2 imsi="unknown" imei-sv="unknown" msisdn="unknown" apn="unknown" nai="unknown" hseid="0000000000000000"
22: date=2021-05-12 time=18:43:45 eventtime=1620870225579005906 tz="-0700" logid="1401041231" type="gtp" subtype="pfcp-all" level="information" vd="vdom1" profile="pfcp-prf" status="forwarded" version=1 msg-type=50 from=10.1.1.2 to=10.2.2.2 srcport=8805 dstport=8805 seqnum=2 imsi="310310000000002" imei-sv="11111111.111113.4" msisdn="3343445565" apn="unknown" nai="[email protected]" hseid="0000000000000000" cfseid="0000000000002710" cfseidaddr=10.1.1.2
PFCP Eşleştirme ve Eylemler
PFCP CP ve UP eşleşmede kullanılan tanımlama , GTP tarafından kullanılana benzemektedir. GTP için, tünel uç noktası kimliği (TEID), UP tünellerini CP oturumlarıyla eşleştirmenin tercih edilen ilk yöntemidir. PFCP’de bu genellikle Tam Nitelikli TEID veya F-TEID olarak bilinir ve GTP-C/U’daki TEID ile aynı kullanım ve işleve sahiptir.
FortiOS Carrier, CP’den UP’ye mesajlar için birincil eşleşme kriteri olarak F-TEID’yi kullanır.
UP ile CP iletişimi (örneğin, PGW-C’den PWG-U’ya) bir Yönlendirme Eylem Kuralı (FAR) içerebilir. Bir FAR, CP tarafından DROP bayrağı kullanılarak UP’ye bildirilen DROP da dahil en fazla 5 farklı talimattan oluşabilir. Örneğin, CP periyodik olarak UP’ye, oturumun artık geçerli olmadığı durumlar için paketleri bırakması talimatını verebilir.
CP ve UP Arasında Veri İletimi
CP’nin UP’ye iletilmesi gereken UP veri paketlerini aldığı bir durum gerçekleşebilir. Bu, FortiOS’un aynı arayüzde PFCP ve GTP-U paketlerini alabileceği ve FortiOS Carrier’ın aynı firewall policy’ne bir GTP ve bir PFCP profili eklemenizi sağlar. Ayrıca ek olarak PFCP ve GTP trafiğini filtrelemek için ayrı firewall policy kullanmanıza izin verdiği anlamına gelir.
FortiOS Carrier ek olarak Sxa veya Sxb (4G CUPS) veya N4 arayüzü (5G Core) üzerinden geçen GTP-U’da kapsüllenmiş UP veri paketlerine de izin verir. Sxx veya N4 arayüzlerinden geçen GTP-U’da kapsüllenmiş UP veri paketleri, eşi olmayan kimlik için F-TEID içerir.
PFCP Tanımlama Komutları
Aktif PFCP oturumları hakkında bilgi görüntülemek için aşağıdaki komutu kullanabilirsiniz :
diagnose firewall pfcp {profile | path | request | stat | hash-stat-session | hash-stat-path | hash-stat-req | runtime-stat | session }
profile list
:PFCP profillerinin listesini oluşturur.path {list | flush}
:PFCP yollarını listeler ve siler.request {list | flush}
:PFCP isteklerini listeler ve siler.stat
:PFCP istatistiklerini görüntüler.hash-stat-session
:PFCP oturum hash istatistiklerini görüntüler.hash-stat-path
:PFCP yolu hash istatistiklerini görüntüler.hash-stat-req
:PFCP istek hash istatistikleridir.runtime-stat
:PFCP çalışma zamanı istatistikleridir.session {list | flush | filter}
:PFCP oturumlarının listesinin oluşturur. Görüntülenecek oturumları filtrelemek içinfilter
ve tüm mevcut PFCP oturumlarını silmek içinflush
komutunu kullanabilirsiniz.
Örnek oturum çıktısı
Aşağıdaki örnek, tek bir PFCP oturumu tarafından görüntülenen bilgileri gösterir:
diagnose firewall pfcp session list list pfcp sessions -----------prof=Sxb-profile ref=11 pdr=4 far=3 te=0 n4u=0----------- -----------index=0000004d life=6(sec) idle=6(sec) vd=0 ver=1----------- c_pkt=2 c_bytes=645 u_pkt=0 u_bytes=0 Control Plane fseid: addr=172.30.111.5/::1 vd=0 seid=0000000000000022 User Plane fseid: addr=172.30.111.7 vd=0 seid=0000000000000021 4 PDRs: pdr_id=1 ue_ip_addr=10.45.0.35 far_id=1 source_interface=Core traffic_endpoint_cnt=0 traffic_endpoint_id=0/0 pdr_id=2 ue_ip_addr=Unknown far_id=2 source_interface=Access traffic_endpoint_cnt=0 traffic_endpoint_id=0/0 1 FTEIDs shown: addr=172.30.111.7 teid=0x00000082 vd=0 packet=0 bytes=0 fteid_type=PDR destination_interface=Invalid pdr_id=3 ue_ip_addr=Unknown far_id=1 source_interface=CP traffic_endpoint_cnt=0 traffic_endpoint_id=0/0 1 FTEIDs shown: addr=172.30.111.7 teid=0x00000083 vd=0 packet=0 bytes=0 fteid_type=PDR destination_interface=Invalid pdr_id=4 ue_ip_addr=Unknown far_id=3 source_interface=Access traffic_endpoint_cnt=0 traffic_endpoint_id=0/0 3 FARs: far_id=1 CP-allocated apply_action=Forward 1 FTEIDs shown: addr=172.30.111.6 teid=0x0000015d vd=0 packet=0 bytes=0 fteid_type=FAR Forward destination_interface=Access far_id=2 CP-allocated apply_action=Forward far_id=3 CP-allocated apply_action=Forward 1 FTEIDs shown: addr=172.30.111.5/::1 teid=0x00000022 vd=0 packet=0 bytes=0 fteid_type=FAR Forward destination_interface=CP