Riassunto: The Plesk firewall is a tool you can use to improve the security of your Plesk for Linux server by restricting network connections to and/or from the server.

In this topic, you will learn how to add and remove firewall rules and policies, how to block incoming connections from specific countries, and also how to export and import firewall rules to easily replicate firewall configuration between servers.

Attenzione: Both the Plesk firewall and firewalld are tools for managing the iptables firewall. Using both tools simultaneously can result in conflicts and in ports required for Plesk to operate being closed. We recommend only using one tool at a time.

Prerequisiti

Before you can begin, the «Firewall» extension must be installed on the server. If it is not, install the extension from the Extensions Catalog.

Managing Firewall Rules and Policies

In modo predefinito, la configurazione del firewall Plesk è composto da normative e regole. Le normative sono ampie nella loro portata e incidono su tutte le connessioni verso o dal server, a seconda della normativa stessa. Per esempio, puoi usare le Normative di sistema per il traffico in arrivo (elencato in Strumenti e impostazioni > Firewall) per bloccare completamente tutte le connessioni in ingresso del server. Le regole sono più rigide nella portata e regolano le connessioni in ingresso ai servizi Plesk individuali, quali SMTP o MySQL.

Tieni presente che le regola sovrascrivono le normative. Per esempio, se la normativa globale è quella di negare tutto il traffico in ingresso, ma una regola consente il traffico in ingresso da un determinato IP, la regola prevale sulla normativa. È possibile usare questo meccanismo per aumentare o diminuire facilmente la sicurezza del server. Per esempio, configurare le normative per proibire tutte le connessioni a e dal server tranne per alcuni indirizzi IP o porte consentite, avrà come risultato una sicurezza maggiore, ma alcune applicazioni potrebbero non funzionare a causa delle limitazioni di rete. Per contro, consentire tutte le connessioni in modo predefinito e usare le regole per bloccare l’accesso ai servizi individuali dagli indirizzi IP individuali renderà il tuo server meno sicuro, ma garantirà il fatto di non incorrere in problemi di connessione. Esperimenta per trovare lo scambio ottimo tra usabilità e sicurezza.

È possibile gestire il firewall in due maniere:

  • Cambiando le impostazioni delle normative e le regole predefinite.
  • Creando regole personalizzate.

Per cambiare le impostazioni delle normative e le regole predefinite, vai su Strumenti e impostazioni > Firewall (nel gruppo Sicurezza) e fai clic su Abilita gestione delle regole del firewall. Conferma l’abilitazione della gestione delle regole, attendi che le modifiche siano applicate e quindi fai clic su Modifica le regole del firewall Plesk. Fai clic sulla regola o la normativa che desideri cambiare. Puoi impostare un criterio per consentire o negare connessioni e puoi definire una regola per consentire o negare connessioni oppure per consentirle unicamente da indirizzi specificati e negarle da tutti gli altri. Dopo aver eseguito le modifiche desiderate, fai clic su Applica Modifiche per attivare il nuovo set di regole o Escludere le modifiche per ripristinarle.

image 75005

Per aggiungere una regola personalizzata, abilitala gestione di regole del firewall, come descritto sopra, e fai clic su Aggiungi regola personalizzata. Le regole personalizzate sono più flessibili di quelle standard e possono essere configurate per consentire o negare le connessioni in entrata, in uscita o quelle d’inoltro sia a sia da una porta o un indirizzo IP specifico. Dopo aver aggiunto una o più regole personalizzate, fai clic su Applica Modifiche per aggiungerle al set di regole oppure su Escludi modifiche per escluderle. Se, successivamente, deciderai di rimuovere una o più regole personalizzate, seleziona le caselle di controllo corrispondenti, fai clic su Elimina, conferma l’eliminazione e poi fai clic su Applica Modifiche per rimuovere le regole selezionate dal set di regole.

Quando si creano regole personalizzate, occorre fare attenzione a non bloccare le connessioni alle porte usate dai servizi Plesk per errore.

Nota: se utilizzi i container Docker, le regole del firewall Docker non vengono aggiunte alle regole del firewall Plesk.

Country Blocking

You can use the Plesk firewall to block access to or from IP addresses belonging to a particular country.

Blocking access from a specific country

  1. Accedi a Plesk.
  2. Vai su Strumenti e impostazioni > Firewall (sotto «Sicurezza»).
  3. Click the «Firewall protection» toggle button so that it shows “Enabled”. If firewall protection is already enabled, skip this step.
  4. Click the plus icon button.
  5. (Optional) Give your rule a name.
  6. Set «Action» to «Deny».
  7. Under «Sources», enter the two letter ISO 3166 country code of the country you want to block (for example, to block all incoming connections from Afghanistan, enter AF).
  8. (Optional) Click «Add one more», and repeat the previous step to block an additional country. You can block as many countries as you want.
  9. Click Save once you have added all countries you want to block.
  10. Click Apply Changes, and then click Apply.

Once the firewall configuration has been applied, all incoming connections to your server from the blocked country or countries will be denied.

By default, Plesk uses the free «IP to Country Lite» database from DB-IP. You can instead use a free or paid database from MaxMind. Before you can do so, you need to obtain a free or paid license from MaxMind and receive your license key.

Switching to the paid GeoIP2 database

  1. Add the following lines to the panel.ini file:

    [ext-firewall]
    geoipDataSource = maxmind-lite
    

    to use the free GeoLite2 database, or

    [ext-firewall]
    geoipDataSource = maxmind
    

    to use the paid GeoIP2 database.

  2. Log in to the server via SSH, and then run the following command:

    LICENSE_KEY=<enter your license key here> plesk sbin modules/firewall/ipsets --configure --data-source maxmind-lite --force
    

    oppure

    LICENSE_KEY=<enter your license key here> plesk sbin modules/firewall/ipsets --configure --data-source maxmind --force
    

    to use the free or paid database from MaxMind, respectively.

    Nota: The command may finish with a Set cannot be destroyed warning. The warning can be safely ignored.

  3. Accedi a Plesk.

  4. Vai su Strumenti e impostazioni > Firewall (sotto «Sicurezza»).

  5. Click Apply Changes, and then click Apply.

    Nota: If the Apply Changes button is missing, create a new firewall rule to trigger the ability to apply changes. You can remove that rule afterwards.

Once the firewall configuration has been applied, the GeoIP2 database will be used instead of GeoLite2.

To switch back to the free database from DB-IP, remove the geoipDataSource = maxmind-lite or geoipDataSource = maxmind line from the panel.ini file, and then reapply the firewall configuration.

Importing and Exporting Firewall Configuration

You may want to duplicate one Plesk for Linux server’s firewall configuration on other Plesk for Linux servers. The easiest way to do so is to export the firewall configuration to a file, and then to import it on each of those Plesk for Linux servers. You can import and export the firewall configuration both via the graphical interface and the command line.

Exporting the firewall configuration via the GUI

  1. Log in to Plesk on the server whose firewall configuration you want to copy.
  2. Vai su Strumenti e impostazioni > Firewall (sotto «Sicurezza»).
  3. Click Export.

The firewall configuration will be saved to a .json file. You can find it in your browser’s downloads directory.

Importing the firewall configuration via the GUI

  1. Log in to Plesk on a server you want to copy another server’s firewall configuration to.
  2. Vai su Strumenti e impostazioni > Firewall (sotto «Sicurezza»).
  3. Click the «Firewall protection» toggle button so that it shows “Enabled”, and then click Apply. If firewall protection is already enabled, skip this step.
  4. Click Import, and then locate the .json file exported on the server whose firewall configuration you want to copy.

The firewall configuration from the file will be applied.

Exporting the firewall configuration via the CLI

  1. Log in via SSH to the server whose firewall configuration you want to copy.

  2. Run the following command to export the firewall configuration:

    plesk ext firewall --export > rules.json

    You can give the file any name you want, «rules.json» is just an example.

The firewall configuration will be saved to the specified file.

Importing the firewall configuration via the CLI

  1. Log in via SSH to a server you want to copy another server’s firewall configuration to. You need to open two separate SSH sessions to import the firewall configuration.

  2. In the first SSH session, run the following command to enable firewall protection. If firewall protection is already enabled, skip this step.

    plesk ext firewall --enable

  3. In the second SSH session, run the following command to confirm firewall protection. If firewall protection is already enabled, skip this step.

    plesk ext firewall --confirm

  4. In the first SSH session, run the following command to import and apply the firewall configuration:

    plesk ext firewall --import -config <the file's URL or local path> && plesk ext firewall --apply

    Per esempio

    plesk ext firewall --import -config https://example.com/rules.json && plesk ext firewall --apply

    oppure

    plesk ext firewall --import -config /tmp/rules.json && plesk ext firewall --apply

  5. In the second SSH session, run the following command to confirm the imported firewall configuration.

    plesk ext firewall --confirm

The firewall configuration from the file will be applied to the server.