只返回的 IPTables 鏈,通過 iRedMail 設置小號OLV_和D小號這大號在和DSOLVED
我不想問這個問題,但我很確定我已經正確配置了 iRedMail 作為我的電子郵件伺服器/VPS re dovecot、postfix 等的主機(儘管幾乎所有事情都是通過他們的安裝腳本自動完成的)。
雖然我根本不是防火牆專家,但我並不完全愚蠢,因此我一直試圖弄清楚為什麼我無法通過各種埠通過 pop、imap、smtp 等連接到郵件伺服器從外部電子郵件客戶端。
我無法遠端 telnet 到任何埠,但可以在本地訪問它們,所以我認為這一定是防火牆問題,這使我得出目前的結論:防火牆程序可能是錯誤的?
這些是一些命令的結果:
[root@server user]# telnet localhost 110 Trying ::1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready.
只是為了確認它正在工作:
[root@server user]# dovecot -n | grep protocols protocols = pop3 imap sieve lmtp ssl_protocols = !SSLv2 !SSLv3
然後 IP 表輸出:
[root@server user]# iptables -S -P INPUT DROP -P FORWARD ACCEPT -P OUTPUT ACCEPT -N FORWARD_IN_ZONES -N FORWARD_IN_ZONES_SOURCE -N FORWARD_OUT_ZONES -N FORWARD_OUT_ZONES_SOURCE -N FORWARD_direct -N FWDI_public -N FWDI_public_allow -N FWDI_public_deny -N FWDI_public_log -N FWDO_public -N FWDO_public_allow -N FWDO_public_deny -N FWDO_public_log -N INPUT_ZONES -N INPUT_ZONES_SOURCE -N INPUT_direct -N IN_public -N IN_public_allow -N IN_public_deny -N IN_public_log -N OUTPUT_direct -N f2b-default -N f2b-dovecot -N f2b-postfix -N f2b-roundcube -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-postfix -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-dovecot -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-roundcube -A INPUT -p tcp -j f2b-default -A INPUT -p tcp -j f2b-default -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-postfix -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-dovecot -A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j f2b-roundcube -A INPUT -p tcp -j f2b-default -A INPUT -p tcp -j f2b-default -A INPUT -i lo -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 7822 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 7822 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 7822 -j ACCEPT -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A f2b-default -j RETURN -A f2b-default -j RETURN -A f2b-default -j RETURN -A f2b-default -j RETURN -A f2b-dovecot -j RETURN -A f2b-dovecot -j RETURN -A f2b-postfix -j RETURN -A f2b-postfix -j RETURN -A f2b-roundcube -j RETURN -A f2b-roundcube -j RETURN
或者不同的看法。
[root@server log]# iptables -nvL Chain INPUT (policy DROP 8296 packets, 397K bytes) pkts bytes target prot opt in out source destination 19567 2390K f2b-postfix tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 19567 2390K f2b-dovecot tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 19567 2390K f2b-roundcube tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 106K 13M f2b-default tcp -- * * 0.0.0.0/0 0.0.0.0/0 106K 13M f2b-default tcp -- * * 0.0.0.0/0 0.0.0.0/0 19567 2390K f2b-postfix tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 19567 2390K f2b-dovecot tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 19567 2390K f2b-roundcube tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,25,587,110,995,143,993,4190 106K 13M f2b-default tcp -- * * 0.0.0.0/0 0.0.0.0/0 106K 13M f2b-default tcp -- * * 0.0.0.0/0 0.0.0.0/0 46957 7004K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:7822 0 0 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:7822 0 0 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:7822 0 0 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:22 396 25848 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 8718 1575K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20 43508 3858K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 21 1248 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8001 748 43552 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:996 7 444 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 112K packets, 80M bytes) pkts bytes target prot opt in out source destination Chain FORWARD_IN_ZONES (0 references) pkts bytes target prot opt in out source destination Chain FORWARD_IN_ZONES_SOURCE (0 references) pkts bytes target prot opt in out source destination Chain FORWARD_OUT_ZONES (0 references) pkts bytes target prot opt in out source destination Chain FORWARD_OUT_ZONES_SOURCE (0 references) pkts bytes target prot opt in out source destination Chain FORWARD_direct (0 references) pkts bytes target prot opt in out source destination Chain FWDI_public (0 references) pkts bytes target prot opt in out source destination Chain FWDI_public_allow (0 references) pkts bytes target prot opt in out source destination Chain FWDI_public_deny (0 references) pkts bytes target prot opt in out source destination Chain FWDI_public_log (0 references) pkts bytes target prot opt in out source destination Chain FWDO_public (0 references) pkts bytes target prot opt in out source destination Chain FWDO_public_allow (0 references) pkts bytes target prot opt in out source destination Chain FWDO_public_deny (0 references) pkts bytes target prot opt in out source destination Chain FWDO_public_log (0 references) pkts bytes target prot opt in out source destination Chain INPUT_ZONES (0 references) pkts bytes target prot opt in out source destination Chain INPUT_ZONES_SOURCE (0 references) pkts bytes target prot opt in out source destination Chain INPUT_direct (0 references) pkts bytes target prot opt in out source destination Chain IN_public (0 references) pkts bytes target prot opt in out source destination Chain IN_public_allow (0 references) pkts bytes target prot opt in out source destination Chain IN_public_deny (0 references) pkts bytes target prot opt in out source destination Chain IN_public_log (0 references) pkts bytes target prot opt in out source destination Chain OUTPUT_direct (0 references) pkts bytes target prot opt in out source destination Chain f2b-default (4 references) pkts bytes target prot opt in out source destination 422K 50M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain f2b-dovecot (2 references) pkts bytes target prot opt in out source destination 39134 4779K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain f2b-postfix (2 references) pkts bytes target prot opt in out source destination 39134 4779K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain f2b-roundcube (2 references) pkts bytes target prot opt in out source destination 39134 4779K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
正如我所提到的,我不是專家,但對我來說,它看起來像是擷取“電子郵件”埠領域中的所有流量,然後將其發送到 f2b* 規則,然後只是給出一個 RETURN。它絕不會接受任何東西。
或者,流量是否被發送到實際的 fail2ban 程序進行分析,然後決定它會發生什麼?
很抱歉這個簡單的問題。
乾杯,史蒂夫
感謝您的建議。雖然最初的問題沒有完全解決,但引導性問題確實幫助我進一步解決問題。我確定我不是唯一可能在未來遇到這個問題的人,所以我發布了我的答案。
正在發生的事情(正如我所懷疑的那樣)是在 iptables 中,有一些規則可以擷取選定埠上的流量,然後它會通過 fail2ban 執行該流量,然後如果它沒有被禁止就返回它列表。
因此,正因為如此,(並已確認),不允許流量通過,因為從技術上講,沒有埠是開放的。
我已經解決了這個問題,它通過向 iptables 添加額外的規則來工作,如下所示。
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
這裡解釋了它是如何正常工作的:https ://www.digitalocean.com/community/tutorials/how-fail2ban-works-to-protect-services-on-a-linux-server
您可以在此處閱讀有關添加開放埠的資訊:https ://www.digitalocean.com/community/tutorials/how-to-set-up-a-basic-iptables-firewall-on-centos-6
如果您使用 iRedMail,他們有一個打開的埠列表:http ://www.iredmail.org/docs/network.ports.html
你可以在你的 iptables 配置中看到這樣的條目:
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT
這些規則從外部打開埠。如您所見,您的郵件服務沒有開放埠。您應該添加它們以從外部連接到埠。