Ich möchte wissen, wie man eine IP blockiert, um den SMTP-Dienst auf einem Server mit CentOS 7-Firewall zu verwenden. Ich versuche, so etwas zu verwenden:
firewall-cmd --permanent --zone="public" --add-rich-rule='rule family=ipv4 source address=[ipadress] --remove-service=smtp'
aber es ist nicht die richtige Syntax
Oder sollte ich die TCP-Ports 25, 465 und 587 blockieren?
auch wenn mir jemand sagen könnte, wie ich die IP automatisch aus einer Datei abrufen kann (falls möglich), wäre das großartig
Antwort1
Die korrekte Syntax, wie in der firewalld.richlanguage(5)
Manpage beschrieben, lautet:
# firewall-cmd --zone="FedoraWorkstation" \
--add-rich-rule='rule family=ipv4 source address=1.2.3.4 service name=smtp reject'
success
# iptables-save | grep 1.2.3.4
-A IN_FedoraWorkstation_deny -s 1.2.3.4/32 -p tcp -m tcp --dport 25 -m conntrack --ctstate NEW -j REJECT --reject-with icmp-port-unreachable
Beachten Sie, dass dies für eingehenden Datenverkehr auf Port 25/TCP gilt, wie in der Servicedatei beschrieben /usr/lib/firewalld/services/smtp.xml
:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Mail (SMTP)</short>
<description>This option allows incoming SMTP mail delivery. If you need to allow remote hosts to connect directly to your machine to deliver mail, enable this option. You do not need to enable this if you collect your mail from your ISP's server by POP3 or IMAP, or if you use a tool such as fetchmail. Note that an improperly configured SMTP server can allow remote machines to use your server to send spam.</description>
<port protocol="tcp" port="25"/>
</service>