Tại sao iptables không chặn địa chỉ IP?


9

Tôi đã cấu hình fail2ban để theo dõi một mẫu lưu lượng độc hại nhất định mà tôi nhận và cấm các địa chỉ IP được liên kết.

Mọi thứ dường như đang hoạt động rất tốt - regex phù hợp với mẫu phù hợp và địa chỉ IP có vấn đề đang được thêm vào iptables.

Tuy nhiên, khi tôi kiểm tra nhật ký Apache, tôi vẫn nhận được các lượt truy cập từ địa chỉ IP đang bị cấm. Như thể iptables hoàn toàn không chạy.

Vì vậy, hãy để tôi chia sẻ một số chi tiết cụ thể chỉ để xác nhận rằng mọi thứ được cấu hình chính xác.

Đầu tiên, tôi sẽ xóa và tải lại các quy tắc iptables:

$ sudo iptables -F
$ cat /etc/iptables.firewall.rules 
*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT
$ sudo iptables-restore < /etc/iptables.firewall.rules
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     all  --  *      *       0.0.0.0/0            127.0.0.0/8          reject-with icmp-port-unreachable
   14  1432 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 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            state NEW tcp dpt:22
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "iptables denied: "
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   11  1638 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Bây giờ, đây là cấu hình fail2ban trông như thế nào:

$ cat /etc/fail2ban/filter.d/apache-xmlrpc.conf 
[Definition]
failregex = .*:80 <HOST> .*POST .*xmlrpc\.php.*
ignoreregex =
$ cat /etc/fail2ban/jail.local 
[apache-xmlrpc]

enabled  = true
port     = http,https
filter   = apache-xmlrpc
logpath  = /var/log/apache2/other_vhosts_access.log
maxretry = 6
$ fail2ban-regex /var/log/apache2/other_vhosts_access.log /etc/fail2ban/filter.d/apache-xmlrpc.conf 

Running tests
=============

Use regex file : /etc/fail2ban/filter.d/apache-xmlrpc.conf
Use log file   : /var/log/apache2/other_vhosts_access.log


Results
=======

Failregex
|- Regular expressions:
|  [1] .*:80 <HOST> .*POST .*xmlrpc\.php.*
|
`- Number of matches:
   [1] 29 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Addresses found:
[1]
    80.82.70.239 (Sat Jul 13 02:41:52 2013)
    80.82.70.239 (Sat Jul 13 02:41:53 2013)
    80.82.70.239 (Sat Jul 13 02:41:55 2013)
    80.82.70.239 (Sat Jul 13 02:41:56 2013)
    80.82.70.239 (Sat Jul 13 02:41:57 2013)
    80.82.70.239 (Sat Jul 13 02:41:58 2013)
    80.82.70.239 (Sat Jul 13 02:41:59 2013)
    80.82.70.239 (Sat Jul 13 02:42:00 2013)
    80.82.70.239 (Sat Jul 13 02:42:02 2013)
    80.82.70.239 (Sat Jul 13 02:42:03 2013)
    80.82.70.239 (Sat Jul 13 02:42:04 2013)
    80.82.70.239 (Sat Jul 13 02:42:05 2013)
    80.82.70.239 (Sat Jul 13 02:42:06 2013)
    80.82.70.239 (Sat Jul 13 02:42:07 2013)
    80.82.70.239 (Sat Jul 13 02:42:09 2013)
    80.82.70.239 (Sat Jul 13 02:42:10 2013)
    80.82.70.239 (Sat Jul 13 02:42:11 2013)
    80.82.70.239 (Sat Jul 13 02:42:12 2013)
    80.82.70.239 (Sat Jul 13 02:42:13 2013)
    80.82.70.239 (Sat Jul 13 02:42:15 2013)
    80.82.70.239 (Sat Jul 13 02:42:16 2013)
    80.82.70.239 (Sat Jul 13 02:42:17 2013)
    80.82.70.239 (Sat Jul 13 02:42:18 2013)
    80.82.70.239 (Sat Jul 13 02:42:19 2013)
    80.82.70.239 (Sat Jul 13 02:42:20 2013)
    80.82.70.239 (Sat Jul 13 02:42:22 2013)
    80.82.70.239 (Sat Jul 13 02:42:23 2013)
    80.82.70.239 (Sat Jul 13 02:42:24 2013)
    80.82.70.239 (Sat Jul 13 02:42:25 2013)

Date template hits:
0 hit(s): MONTH Day Hour:Minute:Second
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
70 hit(s): Day/MONTH/Year:Hour:Minute:Second
0 hit(s): Month/Day/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Year.Month.Day Hour:Minute:Second
0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
0 hit(s): Day-Month-Year Hour:Minute:Second
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
0 hit(s): Hour:Minute:Second
0 hit(s): <Month/Day/Year@Hour:Minute:Second>

Success, the total number of match is 29

However, look at the above section 'Running tests' which could contain important
information.

Như bạn có thể thấy, tôi có một failregex được thiết lập trong bộ lọc và bộ lọc được bật. Sử dụng fail2ban-regex, bộ lọc sẽ tìm thấy sự trùng khớp trong tệp nhật ký mà tôi đang theo dõi. (Hiện tại tôi đang bị tấn công bởi một địa chỉ IP có vấn đề, điều này khiến việc kiểm tra khá dễ dàng.)

Vì vậy, bây giờ tôi khởi động lại fail2ban và quan sát các quy tắc có hiệu lực:

$ sudo service fail2ban restart
 * Restarting authentication failure monitor fail2ban                                                                                                                         [ OK ] 
$ tail /var/log/fail2ban.log -n 50
2013-07-13 02:42:58,014 fail2ban.server : INFO   Stopping all jails
2013-07-13 02:42:58,745 fail2ban.jail   : INFO   Jail 'apache-xmlrpc' stopped
2013-07-13 02:42:59,439 fail2ban.jail   : INFO   Jail 'ssh' stopped
2013-07-13 02:42:59,440 fail2ban.server : INFO   Exiting Fail2ban
2013-07-13 02:43:08,055 fail2ban.server : INFO   Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.6
2013-07-13 02:43:08,057 fail2ban.jail   : INFO   Creating new jail 'ssh'
2013-07-13 02:43:08,111 fail2ban.jail   : INFO   Jail 'ssh' uses Gamin
2013-07-13 02:43:08,397 fail2ban.filter : INFO   Added logfile = /var/log/auth.log
2013-07-13 02:43:08,404 fail2ban.filter : INFO   Set maxRetry = 6
2013-07-13 02:43:08,414 fail2ban.filter : INFO   Set findtime = 600
2013-07-13 02:43:08,435 fail2ban.actions: INFO   Set banTime = 600
2013-07-13 02:43:09,277 fail2ban.jail   : INFO   Creating new jail 'apache-xmlrpc'
2013-07-13 02:43:09,277 fail2ban.jail   : INFO   Jail 'apache-xmlrpc' uses Gamin
2013-07-13 02:43:09,283 fail2ban.filter : INFO   Added logfile = /var/log/apache2/other_vhosts_access.log
2013-07-13 02:43:09,286 fail2ban.filter : INFO   Set maxRetry = 6
2013-07-13 02:43:09,289 fail2ban.filter : INFO   Set findtime = 600
2013-07-13 02:43:09,292 fail2ban.actions: INFO   Set banTime = 600
2013-07-13 02:43:09,458 fail2ban.jail   : INFO   Jail 'ssh' started
2013-07-13 02:43:09,792 fail2ban.jail   : INFO   Jail 'apache-xmlrpc' started
2013-07-13 02:43:11,361 fail2ban.actions: WARNING [apache-xmlrpc] Ban 80.82.70.239
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  244 39277 fail2ban-apache-xmlrpc  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443
  101  7716 fail2ban-ssh  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     all  --  *      *       0.0.0.0/0            127.0.0.0/8          reject-with icmp-port-unreachable
 3404  582K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  349 20900 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
   12   720 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    2    80 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "iptables denied: "
    2    80 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 3331 4393K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain fail2ban-apache-xmlrpc (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       80.82.70.239         0.0.0.0/0           
  244 39277 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain fail2ban-ssh (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       223.4.147.8          0.0.0.0/0           
  101  7716 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0  

Khi nhật ký fail2ban hiển thị, bộ quy tắc dường như được cấu hình đúng. Bạn có thể thấy rằng địa chỉ IP có vấn đề đang bị bắt ngay lập tức và bị cấm. Đầu ra của iptables cho thấy rằng trên thực tế nó đang bị loại bỏ.

Tuy nhiên, tôi đang quan sát thấy rằng không có gói tin nào bị mất cho địa chỉ IP phù hợp với chuỗi fail2ban-apache-xmlrpc. Chắc chắn, tôi kiểm tra nhật ký apache:

$ tail /var/log/apache2/other_vhosts_access.log
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:53 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:54 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:56 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:57 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:58 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:43:59 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:44:00 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"
www.--SNIP--.com:80 80.82.70.239 - - [13/Jul/2013:02:44:02 +0000] "POST /xmlrpc.php HTTP/1.1" 403 474 "-" "-"

Không, nó không bị chặn! Tôi cũng có thể xác nhận điều này trong nhật ký fail2ban:

$ tail /var/log/fail2ban.log
2013-07-13 02:52:30,757 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:52:37,767 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:52:44,783 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:52:51,814 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:52:58,830 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:53:05,842 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:53:11,858 fail2ban.actions: WARNING [apache-xmlrpc] Unban 80.82.70.239
2013-07-13 02:53:12,910 fail2ban.actions: WARNING [apache-xmlrpc] Ban 80.82.70.239
2013-07-13 02:53:20,118 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned
2013-07-13 02:53:27,129 fail2ban.actions: WARNING [apache-xmlrpc] 80.82.70.239 already banned

Nó tiếp tục xuất hiện lại trong nhật ký apache và do đó fail2ban đang cố gắng tiếp tục cấm nó!

Tôi thực sự không thể hiểu được cuộc sống của tôi tại sao iptables không giảm lưu lượng truy cập từ địa chỉ IP này. Thứ tự quy tắc có vẻ đúng với tôi, với DROP đến trước bất cứ điều gì khác.

Tôi đã Google một loạt các kết quả trong đó mọi người đang gặp vấn đề tương tự, nhưng dường như nó luôn quay trở lại vấn đề cấm lưu lượng SSH nơi họ đang ở trên một cổng không chuẩn. Trong trường hợp của tôi, tôi chỉ cố gắng cấm một địa chỉ IP trên cổng http tiêu chuẩn 80.

Tôi hy vọng tôi chỉ nhìn vào một cái gì đó cực kỳ đơn giản. Đây là VPS chạy Ubuntu 12.04 trên Linode. Nếu ai có bất kỳ ý tưởng xin vui lòng cho tôi biết. Cảm ơn nhiều...

EDIT : Đây là đầu ra củaiptables -S

$ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-apache-xmlrpc
-N fail2ban-ssh
-A INPUT -p tcp -m multiport --dports 80,443 -j fail2ban-apache-xmlrpc
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -m state --state RELATED,ESTABLISHED -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 state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j ACCEPT
-A fail2ban-apache-xmlrpc -s 80.82.70.239/32 -j DROP
-A fail2ban-apache-xmlrpc -j RETURN
-A fail2ban-ssh -s 223.4.147.8/32 -j DROP
-A fail2ban-ssh -j RETURN

Đầu ra của iptables -schúng tôi có thể hữu ích hơn cho chúng tôi so với định dạng củaiptables -L
Daniel Widrick

@ lVlint67 - Tôi đã chỉnh sửa câu hỏi của mình để hiển thị đầu ra iptables -Scho bạn. Hãy cho tôi biết nếu điều đó cung cấp cho bạn bất kỳ cái nhìn sâu sắc hơn.
jsdalton

Mục nhập nhật ký Apache cuối cùng là vào lúc 02:44:02 và thông báo fail2ban đầu tiên rằng IP đã bị cấm là vào lúc 02:51:30, vì vậy tôi không thấy bất kỳ bằng chứng nào về việc nó không hoạt động. Vui lòng cung cấp fail2ban.log đầy đủ cho giai đoạn này.
mgorven

Lệnh cấm đầu tiên tôi thấy từ nhật ký fail2ban là lúc 2:43 nhưng tôi cũng nhận thấy sự khác biệt về thời gian. LƯU Ý: lệnh cấm xảy ra trong So now I restart fail2ban and observe the rules taking effect:khối
Daniel Widrick

Câu trả lời:


10

Đầu iptables -sra có vẻ chính xác và tôi không biết làm thế nào 80.82.70.239/32để truy cập any:80vào máy chủ của bạn thông qua tường lửa. Dự đoán đầu tiên của tôi là bạn có một bộ cân bằng proxy / tải trước máy chủ và Apache đang ghi lại HTTP_X_FORWARDED_FORtiêu đề hoặc cái gì được gọi. Nếu đó là trường hợp bạn sẽ phải di chuyển logic tường lửa của mình sang bộ cân bằng proxy / tải hoặc xuống cấp độ ứng dụng (Apache tính toán FORWARDED_FORtiêu đề và từ chối truy cập.


Dù bằng cách nào:

Quá trình hành động tiếp theo mà tôi sẽ thực hiện, là nắm bắt đầu ra của iptables -sbạn được đăng ở trên. Vô hiệu hóa fail2ban và tải cấu hình với chuỗi fail2ban và địa chỉ IP bị chặn vào iptables.

Nhưng làm như vậy với -Aquy tắc sau đây là quy tắc đầu tiên :

-A INPUT -p tcp --dport 80 -j LOG --log-prefix "HTTP: "

Nếu bạn cảm thấy bẫy 80 và 443 tốt hơn, hãy tìm nó. Ý nghĩ là các bản ghi từ FIREWALL có thể hiển thị thứ chúng ta đang thiếu nếu chúng ta chú ý đến các gói từ các nguồn nghi ngờ.


3
Bạn đóng đinh nó. Tôi không biết tại sao tôi không nghĩ về điều này trước đây. Apache đang chạy đằng sau CloudFlare và tôi làm có Apache cấu hình để đăng nhập địa chỉ IP HTTP_FORWARDED_FOR. Lưu lượng truy cập thực tế đang đến thông qua máy chủ Cloudflare - vì vậy, việc cố gắng chặn nó bằng fail2ban / iptables sẽ không hoạt động. Cảm ơn bạn!
jsdalton

Chúng tôi sử dụng bộ cân bằng tải haproxy trong khuôn viên trường để xử lý LB và HA vì vậy tôi đã trở nên quen thuộc với các 'quirks' nhỏ mà thiết lập mang lại. Tôi không biết Cloudflare là gì, nhưng nếu bạn có quyền truy cập phù hợp, việc chuyển lệnh cấm sang bộ cân bằng tải có thể có thể. ... Nếu điều đó là không thể, Apache có thể xử lý việc chặn bằng một số phương thức nhưng tôi không quen với việc đó ở trên đỉnh đầu.
Daniel Widrick

@jsdalton Giải pháp bạn đã kết thúc là gì. Trong một chiếc thuyền tương tự mình ngay bây giờ.
Jay

@jay Vì bạn phải kiểm tra các tiêu đề http, bạn đang xem một cái gì đó gọi là lọc "Lớp 7" hoặc tường lửa. Nếu không, bạn có thể cố gắng chặn các nỗ lực tại bộ cân bằng tải / proxy nếu điều đó nằm dưới sự kiểm soát của bạn.
Daniel Widrick

1

Đầu ra của iptables thực sự cho thấy rằng trong khi có một quy tắc cho địa chỉ IP fail2ban cảm thấy nên được lọc và loại bỏ, không có gói nào đi qua chuỗi fail2ban xmlrpc và thực sự bị loại bỏ bởi quy tắc đó. Thay vào đó, tất cả 224 gói đã đi qua chuỗi đó đã được chấp nhận.

Điều đó nói rằng, các quy tắc thực sự chính xác. Tuy nhiên, nhiều lưu lượng truy cập dường như đã được chấp nhận bởi quy tắc 80 cổng TCP chấp nhận của bạn hơn là thông qua chuỗi bộ lọc fail2ban. Lý do có thể xảy ra nhất là lưu lượng truy cập bạn muốn bị chặn trong khi chuỗi fail2ban chưa được chèn vào đầu vào (Tôi nhận thấy bạn không có nó trong các quy tắc mặc định của mình, điều này có thể ổn, nhưng điều đó có nghĩa là nếu bạn tải lại iptables chuỗi fail2ban sẽ không có hiệu lực ngay lập tức).

Hãy thử chạy iptables -zvề 0 số lượng gói và quan sát đầu ra của iptables -nvLmột lần nữa. Đầu ra không nên giống nhau. Ngoài ra, hãy xem xét việc lưu các quy tắc cho chuỗi fail2ban trong các quy tắc ban đầu cho iptables ( /etc/iptables.firewall.rules). Lưu quy tắc ủy nhiệm như thế này:

fail2ban-apache-xmlrpc  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443

Đồng thời lưu sự tồn tại của các chuỗi (như fail2ban-apache-xmlrpc), nhưng không lưu các IP bị cấm thực tế.


Cảm ơn Falcon. Điều đó có thể là do tôi đã xóa các quy tắc iptables và sau đó một vài phút trước khi tôi khởi động lại fail2ban và các quy tắc fail2ban-apache-xmlrpc đã được thêm vào. Tuy nhiên, tôi đã thử zeroing số lượng gói và kiểm tra lại. Kết quả là khá nhiều như nhau. Tất cả các gói đi vào quy tắc fail2ban-apache-xmlrpc đang được TRẢ LẠI và không có gói nào bị DROPed. Tôi đã xác nhận rằng nhật ký Apache của tôi đang hiển thị lưu lượng truy cập vẫn còn trên địa chỉ IP cần lưu.
jsdalton

1

Tôi đã có chính xác vấn đề tương tự như của bạn trên trang web của riêng tôi. Thiết lập rất giống nhau, LAMP stack, một vài hàm fail2ban chức năng, nhưng tôi vẫn thấy những địa chỉ IP được cho là bị cấm hiển thị trong tệp nhật ký truy cập. Tôi không có bất kỳ bộ cân bằng proxy / tải nào trước Apache.

Giải pháp cho vấn đề của tôi rất đơn giản một cách đáng ngạc nhiên: di chuyển các câu lệnh cấm ngay trên tệp cấu hình iptables!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.