Linux

只返回的 IPTables 鏈,通過 iRedMail 設置小號OLV_和D小號這大號在和DSOLVED

  • June 23, 2016

我不想問這個問題,但我很確定我已經正確配置了 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

這些規則從外部打開埠。如您所見,您的郵件服務沒有開放埠。您應該添加它們以從外部連接到埠。

引用自:https://serverfault.com/questions/785462