Ana içeriğe geç

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:

MuleSoft with Wallarm policy

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.

  • Maven (mvn).

  • 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:

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:

  1. Wallarm Console → Security EdgeConnectorsDownload 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.

  2. Policy arşivini çıkarın.

  3. pom.xml dosyası içinde aşağıdakileri belirtin:

    1. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → kurumunuzu seçin → kimliğini (ID) kopyalayın.
    2. Kopyalanan grup kimliğini pom.xml dosyasındaki groupId parametresine belirtin:
    <?xml version="1.0" encoding="UTF-8"?>
        <groupId>BUSINESS_GROUP_ID</groupId>
        <artifactId>wallarm</artifactId>
    
    1. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → kurumunuzu seçin → kimliğini (ID) kopyalayın.
    2. Kopyalanan grup kimliğini pom.xml dosyasındaki groupId parametresine belirtin.
    3. 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>
    
  4. conf dizinini oluşturun ve içinde aşağıdaki içerik ile bir settings.xml dosyası oluşturun:

    username ve password 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>
    
  5. Aşağıdaki komutu kullanarak policy'yi MuleSoft'a dağıtın:

    mvn clean deploy -s conf/settings.xml
    

Özel policy'niz artık MuleSoft Anypoint Platform Exchange içinde kullanılabilir.

MuleSoft with Wallarm policy

3. Policy'yi API'nize ekleyin

Wallarm policy'yi tek bir API'ye veya tüm API'lere ekleyebilirsiniz.

  1. Policy'yi tek bir API'ye uygulamak için Anypoint Platform → API Manager → ilgili API'yi seçin → PoliciesAdd policy yolunu izleyin.

  2. Policy'yi tüm API'lere uygulamak için Anypoint Platform → API ManagerAutomated PoliciesAdd automated policy yolunu izleyin.

  3. Exchange içinden Wallarm policy'yi seçin.

  4. http:// veya https:// dahil olmak üzere Wallarm node URL'sini belirtin.

  5. Gerekirse diğer parametreleri değiştirin.

  6. Policy'yi uygulayın.

Wallarm policy

Test

Dağıtılan policy'nin işlevselliğini test etmek için şu adımları izleyin:

  1. API'nize test Yol Geçişi saldırısını içeren isteği gönderin:

    curl http://<GATEWAY_URL>/etc/passwd
    
  2. 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.

    Arayüzdeki saldırılar

    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:

  1. Güncellenmiş Wallarm policy'yi indirin ve Adım 2'de açıklandığı gibi MuleSoft Exchange'e yükleyin.

  2. Yeni sürüm Exchange'de göründüğünde API Manager → API'niz → Policies → Wallarm policy → Edit configurationAdvanced options yolunu izleyin ve açılır listeden yeni policy sürümünü seçin.

  3. 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.
  4. 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.