banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Giúp đỡ về load banlancing với ModSecurity 2.5  XML
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 19/04/2011 11:37:44 (+0700) | #1 | 235764
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Chào các chú, anh, chị...
Em có một bài toán: có hai web server đặt tại hai nước Việt Nam và Trung Quốc để phân bố cho người dùng download một tài liệu nào đó và dữ liệu download của 2 server như nhau (vd [webroot]/download/)
Em thực hiện load banlancing với mod sercuriry. Người dùng truy cập ở trung quốc, khi truy cập vào server chính (ở Việt Nam) sẽ được chuyển link download sang server Trung Quốc. Ở nơi khác thì không cần.

Em thực hiện với Rule

Code:
SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.1}”
SecRule REMOTE_ADDR “@geoLookup” “chain”
SecRule GEO:COUNTRY_CODE “@streq CN”


Em thử nghiệm như không thành công (không direct link được). Mong các chú, anh, chị xem giúp.. em cảm ơn

PS: vấn đề cài đặt và sử dụng GEOIP cho ModSecurity em đã test ok nên có thể loại trừ có vấn đề ở nó.
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 19/04/2011 16:40:01 (+0700) | #2 | 235787
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

tanviet12 wrote:
Chào các chú, anh, chị...
Em có một bài toán: có hai web server đặt tại hai nước Việt Nam và Trung Quốc để phân bố cho người dùng download một tài liệu nào đó và dữ liệu download của 2 server như nhau (vd [webroot]/download/)
Em thực hiện load banlancing với mod sercuriry. Người dùng truy cập ở trung quốc, khi truy cập vào server chính (ở Việt Nam) sẽ được chuyển link download sang server Trung Quốc. Ở nơi khác thì không cần.

Em thực hiện với Rule

Code:
SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/[color=red]%{TX.1}[/color]”
SecRule REMOTE_ADDR “@geoLookup” “chain”
SecRule GEO:COUNTRY_CODE “@streq CN”


Em thử nghiệm như không thành công (không direct link được). Mong các chú, anh, chị xem giúp.. em cảm ơn

PS: vấn đề cài đặt và sử dụng GEOIP cho ModSecurity em đã test ok nên có thể loại trừ có vấn đề ở nó. 


Đoạn màu đỏ em lấy từ đâu ra vậy?

What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 19/04/2011 19:36:14 (+0700) | #3 | 235798
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Dạ, cháu thao khảo ở cuốn Mod Security 2.5 trang 57. Cháu thử không cho đoạn màu đỏ vào nhưng vẫn không chuyển hướng link được.

Một đoạn trang 57 nói về rule này

The first rule in the rule chain matches against any requested file in the directory /download/. It uses the capturing parentheses together with the dot and star regex operators to capture the filename requested in the download directory. Since we specify the capture action, ModSecurity will capture this value and store it in the variable TX:1. We then wwwect the request to the server europe.example.com and use the macro %{TX.1} to specify which file to wwwect to.
Note that there is a subtle difference when specifying the captured variable in the macro expansion as opposed to using it as a variable—you must write it as %{TX.1} with a dot or the macro will fail to expand properly.

Mong chú giúp đỡ!.
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 20/04/2011 06:05:28 (+0700) | #4 | 235826
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
OK.

Dòng SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.1} cho thấy:

- Block màu đỏ ở trên chính là "capturing part" đã được tín hiệu để "capture" (phần xanh lá).

- Giá trị đã được capture ở phần màu đỏ sẽ dùng để thay thế vô trong đoạn màu cam.

Về mặt lý thuyết, đoạn màu đỏ phải được capture và được thay thế cho đoạn màu cam. Bởi vì dòng luật thứ nhất ấn định "chain" cho nên nó "nối" với dòng thứ nhì. Dòng thứ nhì cũng ấn định "chain" cho nên nó sẽ tiếp tục ở dòng thứ ba. Ở đây, nếu IP của máy request nằm trong chuỗi IP được match do GEO cung cấp thì dòng luật thứ nhất sẽ được thực thi.

Để xác định nhóm luật trên có làm việc đúng hay không, em phải enable debug logging cho mod_security và phân tích cụ thể. Không thể dựa vào hiện tượng mơ hồ nào đó để kết luận là "không được". Enable debug logging còn giúp em xác định trở ngại nằm chính xác ở đâu để fix problem nữa.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 20/04/2011 21:33:01 (+0700) | #5 | 235881
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Cảm ơn chú rất nhiều.. Cháu đã tìm ra nguyên nhân sau khi enable debug logging. Nguyên nhân bới cháu vô tình xoá đoạn khai báo GEO database
SecGeoLookupDb "/usr/local/geoip/GeoIP.dat"

Rule đã thực hiện chuyển hướng link được, nhưng cháu lại gặp vấn đề ở phần màu đỏ mà chú thắc mắc từ trước.


SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.1}
SecRule REMOTE_ADDR “@geoLookup” “chain”
SecRule GEO:COUNTRY_CODE “@streq CN” 


Vd cháu truy cập vào link http://vncert.vn/download/exam.zip thì link tự động chuyển sang http://svrcn.vncert.vn/download/%{TX.1} chứ không wwwect sang http://svrcn.vncert.vn/download/exam.zip

Còn đây là log

[9] Target value: "VN"
[6] Ignoring regex captures since "capture" action is not enabled.
[4] Operator completed in 16 usec.
[9] Resolved macro %{TX.0} to "/download/exam.rar"
[4] Rule returned 1.
[9] Match, intercepted -> returning.
[1] Access denied with wwwection to http://svrcn.vncert.vn/download/%{TX.1} using status 302 (phase 1). Pattern match "CN" at GEO:COUNTRY_CODE. [file "/etc/httpd/conf.d/modsecurity.conf"] [line "59"]

Cháu 2 dòng log khả nghi là
[6] Ignoring regex captures since "capture" action is not enabled. Nhưng cháu thấy %{TX.1} không có vấn đề gì (TX.0 dùng cho @pm và @pmFromFile, còn lại dùng TX.1 đến TX.9).


Access denied with wwwection to http://svrcn.vncert.vn/download/%{TX.1} using status 302 (phase 1). Pattern match "CN" at GEO:COUNTRY_CODE. [file "/etc/httpd/conf.d/modsecurity.conf"] [line "59"]

Dòng trên cháu không biết vì sao lại Access denied.

Mong chú giúp đỡ.
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 21/04/2011 04:26:03 (+0700) | #6 | 235889
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

tanviet12 wrote:
Cảm ơn chú rất nhiều.. Cháu đã tìm ra nguyên nhân sau khi enable debug logging. Nguyên nhân bới cháu vô tình xoá đoạn khai báo GEO database
SecGeoLookupDb "/usr/local/geoip/GeoIP.dat"

Rule đã thực hiện chuyển hướng link được, nhưng cháu lại gặp vấn đề ở phần màu đỏ mà chú thắc mắc từ trước.


SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.1}
SecRule REMOTE_ADDR “@geoLookup” “chain”
SecRule GEO:COUNTRY_CODE “@streq CN” 


Vd cháu truy cập vào link http://vncert.vn/download/exam.zip thì link tự động chuyển sang http://svrcn.vncert.vn/download/%{TX.1} chứ không wwwect sang http://svrcn.vncert.vn/download/exam.zip

Còn đây là log

[9] Target value: "VN"
[6] Ignoring regex captures since "capture" action is not enabled.
[4] Operator completed in 16 usec.
[9] Resolved macro %{TX.0} to "/download/exam.rar"
[4] Rule returned 1.
[9] Match, intercepted -> returning.
[1] Access denied with wwwection to http://svrcn.vncert.vn/download/%{TX.1} using status 302 (phase 1). Pattern match "CN" at GEO:COUNTRY_CODE. [file "/etc/httpd/conf.d/modsecurity.conf"] [line "59"]

Cháu 2 dòng log khả nghi là
[6] Ignoring regex captures since "capture" action is not enabled. Nhưng cháu thấy %{TX.1} không có vấn đề gì (TX.0 dùng cho @pm và @pmFromFile, còn lại dùng TX.1 đến TX.9).


Access denied with wwwection to http://svrcn.vncert.vn/download/%{TX.1} using status 302 (phase 1). Pattern match "CN" at GEO:COUNTRY_CODE. [file "/etc/httpd/conf.d/modsecurity.conf"] [line "59"]

Dòng trên cháu không biết vì sao lại Access denied.

Mong chú giúp đỡ. 


Dòng [9] Resolved macro %{TX.0} to "/download/exam.rar" là dòng cần chú ý. Tại sao {TX.0} lại chứa "/download/exam.rar"? Đây chính là giá trị lẽ ra dùng cho {TX.1}. Có vẻ như giá trị matching cho REQUEST_URI trong trường hợp này là {TX.0} và em nên dùng {TX.0} cho đoạn rule thay vì {TX.1}. Dòng thứ nhất hoàn toàn không có @pm và @pmFromFile cho nên "/download/exam.rar" chính là {TX.0}.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 21/04/2011 09:46:13 (+0700) | #7 | 235914
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Dạ, vẫn không được chú à. cháu xin lỗi về đoạn log trên cháu thử sửa rule %{TX.1} thành %{TX.0} thử
SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.0}

Và nó ghi log là

[9] Resolved macro %{TX.0}to "/download/exam.rar"

Nếu rule là %{TX.1}

SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn/download/%{TX.1}

Thì nó sẽ ghi log là

[9] Resolved macro %{TX.1} to "/download/exam.rar"

Và link direct vẫn là http://svrcn.vncert.vn/download/{TX.1}

Về lý thuyết thì sách cũng nói đúng như chú nói. Nhưng thực tế lại không thực hiện được. smilie . Cháu cũng thử hết các trường hợp nhưng cũng không có kết quả
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 21/04/2011 19:21:51 (+0700) | #8 | 235949
[Avatar]
rongchaua
Elite Member

[Minus]    0    [Plus]
Joined: 19/01/2003 04:09:23
Messages: 124
Offline
[Profile] [PM]
Mình không biết 1 tí gì về ModSecurity nhưng nếu hiểu theo REGEX thì phải sửa lại là

SecRule REQUEST_URI “^/download/(.*)$” “phase:1,capture,chain, wwwect:http://svrcn.vncert.vn%{TX.x}”

Thằng TX.x nó bao hàm từ cái "/download/" cho tới user input. Hi vọng là nó hoạt động được.
My website: http://rongchaua.net
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 22/04/2011 20:25:32 (+0700) | #9 | 236009
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Cảm ơn anh rongchaua.
Kết quả vẫn như vậy anh à, nếu rules như trên thì nó sẽ direct qua
http://svrcn.vncert.vn%{TX.x}”
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Question]   Giúp đỡ về load banlancing với ModSecurity 2.5 23/04/2011 01:55:45 (+0700) | #10 | 236017
[Avatar]
rongchaua
Elite Member

[Minus]    0    [Plus]
Joined: 19/01/2003 04:09:23
Messages: 124
Offline
[Profile] [PM]
%{TX.x} ý mình là %{TX.0} hoặc %{TX.1} đó vì mình ko biết khác biệt giữa 0 và 1 (đã nêu ở trên là mình không biết gì về ModSecurity cả)
My website: http://rongchaua.net
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|