MuleSoft Mule Gateway için Wallarm Connector¶
Bu kılavuz, Mule Gateway tarafından yönetilen Mule API'lerinizi Wallarm connector kullanarak nasıl güvenceye alacağınızı açıklar.
Mule Gateway için Wallarm'ı bir connector olarak kullanmak için, Wallarm node'u harici olarak dağıtmanız ve trafiği analiz için Wallarm node'una yönlendirmek üzere MuleSoft içinde Wallarm tarafından sağlanan policy'yi uygulamanız gerekir.
Mule Gateway için Wallarm connector yalnızca in-line trafik analizini destekler:
Kullanım senaryoları¶
Bu çözüm, Mule Gateway tarafından yönetilen Mule API'lerini güvenceye almak için önerilen yaklaşımdır.
Sınırlamalar¶
-
When deploying the Wallarm service with the
LoadBalancer
type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported. -
Custom blocking page and blocking code configurations are not yet supported.
All blocked malicious traffic is returned with status code
403
and the default block page. -
Rate limiting by Wallarm rules is not supported.
Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.
-
Multitenancy is not supported.
All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.
Gereksinimler¶
Dağıtıma devam edebilmek için aşağıdaki gereksinimleri karşıladığınızdan emin olun:
-
MuleSoft platformunu anlama.
-
Anypoint Platform içinde Enterprise aboneliği (özel policy dağıtımı ve harici trafik yönlendirme için gereklidir).
-
Ana sisteminizde Docker yüklü ve çalışır durumda.
-
MuleSoft kullanıcınızın MuleSoft Anypoint Platform hesabınıza artifact yükleme yetkisi olması.
-
MuleSoft Exchange kimlik bilgileriniz (kullanıcı adı ve parola)
<MAVEN_DIRECTORY>/conf/settings.xml
dosyasında belirtilmiş olmalı. -
Uygulamanız ve API'niz bağlantılı olmalı ve Mule Gateway üzerinde çalışıyor olmalı.
-
Wallarm Console içindeki US Cloud veya EU Cloud için Administrator rolüne sahip hesaba erişim.
Dağıtım¶
1. Bir Wallarm node'u dağıtın¶
Wallarm node, dağıtmanız gereken Wallarm platformunun çekirdek bir bileşenidir. Gelen trafiği inceler, kötü amaçlı etkinlikleri tespit eder ve tehditleri azaltacak şekilde yapılandırılabilir.
Gereksinim duyduğunuz kontrol seviyesine bağlı olarak, Wallarm tarafından barındırılan şekilde veya kendi altyapınızda dağıtabilirsiniz.
Connector için Wallarm tarafından barındırılan bir node dağıtmak üzere talimatları izleyin.
Self-hosted node dağıtımı için bir artifact seçin ve ekli talimatları izleyin:
- Linux altyapıları (bare metal veya VM'ler) için Tümü-bir-arada yükleyici
- Container tabanlı dağıtımlar kullanan ortamlar için Docker imajı
- AWS altyapıları için AWS AMI
- Kubernetes kullanan altyapılar için Helm chart
2. Obtain and upload the Wallarm policy to MuleSoft Exchange¶
Wallarm policy'sini MuleSoft Exchange'e almak ve yüklemek için şu adımları izleyin:
-
Wallarm Console → Security Edge → Connectors → Download code bundle yolunu izleyin ve platformunuz için bir code bundle indirin.
Self-hosted node çalıştırıyorsanız, code bundle almak için sales@wallarm.com ile iletişime geçin.
-
Policy arşivini çıkarın.
-
pom.xml
dosyası içinde aşağıdakileri belirtin:- MuleSoft Anypoint Platform → Access Management → Business Groups → kurumunuzu seçin → kimliğini (ID) kopyalayın.
- Kopyalanan grup kimliğini
pom.xml
dosyasındakigroupId
parametresine belirtin:
- MuleSoft Anypoint Platform → Access Management → Business Groups → kurumunuzu seçin → kimliğini (ID) kopyalayın.
- Kopyalanan grup kimliğini
pom.xml
dosyasındakigroupId
parametresine belirtin. - Belirli bölgelerde barındırılan MuleSoft örnekleri için,
pom.xml
dosyasını ilgili bölgesel URL'leri kullanacak şekilde güncelleyin. Örneğin, Avrupa'daki bir MuleSoft örneği için:
<?xml version="1.0" encoding="UTF-8"?> <groupId>BUSINESS_GROUP_ID</groupId> <artifactId>wallarm</artifactId> <properties> <mule.maven.plugin.version>4.1.2</mule.maven.plugin.version> <exchange.url>https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/${project.groupId}/maven</exchange.url> </properties> <distributionManagement> <repository> <id>anypoint-exchange-v3</id> <name>Anypoint Exchange</name> <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/${project.groupId}/maven </url> <layout>default</layout> </repository> </distributionManagement> <repositories> <repository> <id>anypoint-exchange-v3</id> <name>Anypoint Exchange</name> <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/maven</url> <layout>default</layout> </repository> </repositories>
-
conf
dizinini oluşturun ve içinde aşağıdaki içerik ile birsettings.xml
dosyası oluşturun:username
vepassword
ifadelerini gerçek kimlik bilgilerinizle değiştirin:<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>anypoint-exchange-v3</id> <username>myusername</username> <password>mypassword</password> </server> <server> <id>mulesoft-releases-ee</id> <username>myusername</username> <password>mypassword</password> </server> </servers> </settings>
password
parametresinde token'ınızı oluşturun ve belirtin:<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>anypoint-exchange-v3</id> <username>~~~Token~~~</username> <password>01234567-89ab-cdef-0123-456789abcdef</password> </server> <server> <id>mulesoft-releases-ee</id> <username>~~~Token~~~</username> <password>01234567-89ab-cdef-0123-456789abcdef</password> </server> </servers> </settings>
-
Aşağıdaki komutu kullanarak policy'yi MuleSoft'a dağıtın:
Özel policy'niz artık MuleSoft Anypoint Platform Exchange içinde kullanılabilir.
3. Policy'yi API'nize ekleyin¶
Wallarm policy'yi tek bir API'ye veya tüm API'lere ekleyebilirsiniz.
-
Policy'yi tek bir API'ye uygulamak için Anypoint Platform → API Manager → ilgili API'yi seçin → Policies → Add policy yolunu izleyin.
-
Policy'yi tüm API'lere uygulamak için Anypoint Platform → API Manager → Automated Policies → Add automated policy yolunu izleyin.
-
Exchange içinden Wallarm policy'yi seçin.
-
http://
veyahttps://
dahil olmak üzere Wallarm node URL'sini belirtin. -
Gerekirse diğer parametreleri değiştirin.
-
Policy'yi uygulayın.
Test¶
Dağıtılan policy'nin işlevselliğini test etmek için şu adımları izleyin:
-
API'nize test Yol Geçişi saldırısını içeren isteği gönderin:
-
Wallarm Console → US Cloud veya EU Cloud içindeki Attacks bölümünü açın ve saldırının listede görüntülendiğinden emin olun.
Wallarm node modu engelleme olarak ayarlanmışsa ve trafik in-line akıyorsa, istek aynı zamanda engellenecektir.
Sorun giderme¶
Çözüm beklendiği gibi çalışmıyorsa, MuleSoft Anypoint Platform → Runtime Manager → uygulamanız → Logs yoluyla API'nizin günlüklerine bakın.
Ayrıca API Manager içinde API'nize giderek ve Policies sekmesinde uygulanan policy'leri inceleyerek policy'nin API'ye uygulanıp uygulanmadığını doğrulayabilirsiniz. Automated policy'ler için, kapsanan API'leri ve varsa hariç tutma nedenlerini görmek üzere See covered APIs seçeneğini kullanabilirsiniz.
Policy'yi yükseltme¶
Dağıtılan Wallarm policy'yi daha yeni bir sürüme yükseltmek için:
-
Güncellenmiş Wallarm policy'yi indirin ve Adım 2'de açıklandığı gibi MuleSoft Exchange'e yükleyin.
-
Yeni sürüm Exchange'de göründüğünde API Manager → API'niz → Policies → Wallarm policy → Edit configuration → Advanced options yolunu izleyin ve açılır listeden yeni policy sürümünü seçin.
-
Yeni sürüm ek parametreler getiriyorsa, gerekli değerleri sağlayın.
Örneğin 2.x'ten 3.x'e yükseltiliyorsa:
- CLIENT HOST EXPRESSION: özel bir değişiklik gerekmedikçe varsayılan değer
#[attributes.headers['x-forwarded-host']]
kullanın. - CLIENT IP EXPRESSION: özel bir değişiklik gerekmedikçe varsayılan değer
#[attributes.headers['x-forwarded-for']]
kullanın.
- CLIENT HOST EXPRESSION: özel bir değişiklik gerekmedikçe varsayılan değer
-
Değişiklikleri kaydedin.
Wallarm policy, automated policy olarak uygulanmışsa doğrudan yükseltme mümkün olmayabilir. Bu durumda mevcut policy'yi kaldırın ve yeni sürümü manuel olarak yeniden uygulayın.
Policy yükseltmeleri, özellikle ana sürüm güncellemelerinde, bir Wallarm node yükseltmesi gerektirebilir. Self-hosted Node sürüm notları ve yükseltme talimatları için Native Node değişiklik günlüğüne veya Edge connector yükseltme prosedürüne bakın. Gelecekteki yükseltmeleri kolaylaştırmak ve kullanımdan kaldırmaları önlemek için düzenli node güncellemeleri önerilir.
Policy'yi kaldırma¶
Wallarm policy'yi kaldırmak için, otomatik policy listesinde veya tek bir API'ye uygulanan policy'ler listesinde Remove policy seçeneğini kullanın.