ลองอัพเดท apache เป็น 2.4 แล้วเจอปัญหากับ mod นิดนึงครับ

วันนี้ว่างๆ ด้วยความ มือบอล + รู้เท่าไม่ถึงการ
ลองอัพเดท apache เป็น 2.4 จาก custombuild ดูครับ
mod_rpaf กับ mod_evasive เจอ error ทันทีเลยครับ T_T

เราสามารถ downgrade เป็น 2.2 เหมือนเดิมได้มั้ยอะครับ

ถ้าไม่ได้มี mod อะไรใช้แทนได้มั้ยครับ
ขอรบกวนพี่ๆ อีกแล้วครับ ขอบคุณมากครับ

:875328cc:

ก็ใช้ custombuild นั่นแหละคัรบ แก้ version เป็ฯ 2.2 แล้ว compile ใหม่ก็จบและ

ของ apache 2.4 มี mod real ip อยู่มั้ง ที่ใช้แทน rpaf ได้ ส่วน mod evasive นี่ไม่แน่ใจฮะ

เคยลองเทส 2.4 ดูแล้วเหมือนกัน เจอปัญหา mod หลายๆตัวยังตามไม่ทัน ก็เลยใช้ 2.2 ต่อไปก่อน
รอ mod ต่างๆพัฒนาให้รองรับ 2.4 ก่อนค่อยอัพ แต่เท่าที่เห็น mod_evasive เหมือนจะเลิกพัฒนาแล้ว

ผมใช้ mod_antiloris ครับ support apache 2.4

ลงไว้เกือบปีแระครับ เห็นฝรั่งบอกดีเลยลงเอาไว้ แหะๆ
-rwxr-xr-x 1 root root 23932 Nov 11 2011 /usr/lib/apache/mod_antiloris.so

ใน directadmin มีตัวให้ลงด้วยครับ
http://help.directadmin.com/item.php?id=302

ไปอ่านเจอมาจาก
http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/754632
แค่แก้ code นิดเดียวแล้ว compile ใช้กับ apache 2.4 ได้ง่ายๆเลยครับ
ทดสอบกับ mod_evasive และ mod_rpaf เป็นที่เรียบร้อย แค่เปลี่ยน
connection->remote_ip ไปเป็น connection->client_ip กับ
connection->remote_addr แก้เป็น connection->client_addr (mod_evasive ไม่มี)

ตัวอย่าง diff หลังจากแก้ไขไฟล์


# diff mod_evasive20.c mod_evasive24.c
2c2
< mod_evasive for Apache 2
---
> mod_evasive for Apache 2.4
41c41
< module AP_MODULE_DECLARE_DATA evasive20_module;
---
> module AP_MODULE_DECLARE_DATA evasive24_module;
142c142
<       if (is_whitelisted(r->connection->remote_ip))
---
>       if (is_whitelisted(r->connection->client_ip))
146c146
<       n = ntt_find(hit_list, r->connection->remote_ip);
---
>       n = ntt_find(hit_list, r->connection->client_ip);
158c158
<         snprintf(hash_key, 2048, "%s_%s", r->connection->remote_ip, r->uri);
---
>         snprintf(hash_key, 2048, "%s_%s", r->connection->client_ip, r->uri);
165c165
<             ntt_insert(hit_list, r->connection->remote_ip, time(NULL));
---
>             ntt_insert(hit_list, r->connection->client_ip, time(NULL));
180c180
<         snprintf(hash_key, 2048, "%s_SITE", r->connection->remote_ip);
---
>         snprintf(hash_key, 2048, "%s_SITE", r->connection->client_ip);
187c187
<             ntt_insert(hit_list, r->connection->remote_ip, time(NULL));
---
>             ntt_insert(hit_list, r->connection->client_ip, time(NULL));
208c208
<         snprintf(filename, sizeof(filename), "%s/dos-%s", log_dir != NULL ? log_dir : DEFAULT_LOG_DIR, r->connection->remote_ip);
---
>         snprintf(filename, sizeof(filename), "%s/dos-%s", log_dir != NULL ? log_dir : DEFAULT_LOG_DIR, r->connection->client_ip);
215c215
<             LOG(LOG_ALERT, "Blacklisting address %s: possible DoS attack.", r->connection->remote_ip);
---
>             LOG(LOG_ALERT, "Blacklisting address %s: possible DoS attack.", r->connection->client_ip);
221,222c221,222
<                 fprintf(file, "Subject: HTTP BLACKLIST %s

", r->connection->remote_ip);
<                 fprintf(file, "mod_evasive HTTP Blacklisted %s
", r->connection->remote_ip);
---
>                 fprintf(file, "Subject: HTTP BLACKLIST %s

", r->connection->client_ip);
>                 fprintf(file, "mod_evasive HTTP Blacklisted %s
", r->connection->client_ip);
228c228
<               snprintf(filename, sizeof(filename), system_command, r->connection->remote_ip);
---
>               snprintf(filename, sizeof(filename), system_command, r->connection->client_ip);
689c689
< module AP_MODULE_DECLARE_DATA evasive20_module =
---
> module AP_MODULE_DECLARE_DATA evasive24_module =

ขอบคุณพี่ๆ มากครับ เดี๋ยวเอาไปลองก่อนครับ

ทีแรกลอง downgrade ผ่าน custombuild ตามคุณ icez แนะนำ ก็กลับมาใช้งานได้เหมือนเดิมครับ

พอเห็นกระทู้ตอบพี่แมนว่าแก้ ตรง connection->remote_ip ได้
ด้วยความอยากรู้อยากเห็น เลยอัพกลับไปอีกที :154218d4:

ลองติดตั้งเข้าไปใหม่ก็ใช้งานได้แล้วครับ

ขอบคุณมากครับ