Я хотел бы знать, как заблокировать IP-адрес для использования службы smtp на сервере с брандмауэром centos 7. Я пытаюсь использовать что-то вроде этого:
firewall-cmd --permanent --zone="public" --add-rich-rule='rule family=ipv4 source address=[ipadress] --remove-service=smtp'
но это неправильный синтаксис
Или я должен заблокировать порты TCP 25, 465 и 587?
также, если бы кто-нибудь мог сказать мне, как это сделать автоматически, получение IP-адреса из файла (если возможно) было бы здорово
Правильный синтаксис, как описано в firewalld.richlanguage(5)
man-страница:
# 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
Обратите внимание, что это относится к входящему трафику на порт 25 / tcp, как описано в служебном файле. /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>