• Please be aware: Kaspersky Anti-Virus has been deprecated
    With the upgrade to Plesk Obsidian 18.0.64, "Kaspersky Anti-Virus for Servers" will be automatically removed from the servers it is installed on. We recommend that you migrate to Sophos Anti-Virus for Servers.
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Resolved plesk firewall rules do not show up in iptables -L

PeterKi

Regular Pleskian
I have blocked some spammer IPs using a custom rule and run the activation script.
At first I added 2 IPs and checked with IPtables -L
Everything was as expected
Then I added another 3 addresses and checked that the activation script lists the appropriate drop lines.
After running the activation script the plesk GUI shows the banned IPs correctly (see attached screenshot)
But if I do an iptables -l or ip6tables -L I do only see 3 of my blocked addresses.
iptables -L | grep DROP.*[0-9].*anywhere
DROP udp -- 149.154.100.84 anywhere
DROP udp -- 178.159.36.58 anywhere
DROP udp -- 185.234.219.30 anywhere
DROP tcp -- 149.154.100.84 anywhere
DROP tcp -- 178.159.36.58 anywhere
DROP tcp -- 185.234.219.30 anywhere

How can I fix the issue?
 

Attachments

  • 2018-10-01 09_47_57-Plesk Onyx 17.8.11.jpg
    2018-10-01 09_47_57-Plesk Onyx 17.8.11.jpg
    27 KB · Views: 8
Last edited:
I found that I did not check the output properly.
2 of the IP addresses in question did resolve to a name thus they did not show up in the iptables -L as IP adresses but as DNS records.
Sorry, for raising an issue which in fact an error by me.
Nevertheless I did find a bug in the version checking part of the firewall script /opt/psa/var/modules/firewall/firewall-active.sh
The line: iptables_version=`/sbin/iptables --version | awk -F '.' '{print $2$3}'`
does return the value 60 on version 1.6.0
Thus the version check if [ $iptables_version -gt 420 ] does the comparison [60 -gt 420 ] which of course leads to unwanted behavior.
The else part does the job too but results in an unnecessary longer run time of the script.
Version checking is not an easy task and it is implemented too optimistic.
May be it is easier to just check if the -w option is available by something like man iptables | grep -- --wait
 
Last edited:
Back
Top