Quantcast
Channel: Serverphorums.com - HAProxy
Viewing all articles
Browse latest Browse all 5112

Seeking Assistance: HTTP Headers Conf. to Access Web Product (2 replies)

$
0
0
Hello HAProxy Community,



We are seeking your assistance with the following issue we are facing with
HAProxy being used as a reverse proxy server. Your vectors could help us
learn and identify the cause of our issue and solve it. Thank you.



ISSUE

=====

We are able to successfully access and run our Web application from
INTERNALLY, bypassing HAProxy, using <IP:Port> URL.

But, through HAProxy 1.7.8, only the login page of this Web application
loads. Upon clicking on login button, nothing happens and we are unable to
go past it.



Below inline are the:

[1] HTTP header analysis from browser inspection tool, for both successful
application run (withOUT HAProxy) and failed run with HAProxy.

Diffs: Set-Cookie header (JSESSIONID), Transfer-Encoding, Accept-encoding,
expires, p::submit

[2] HAProxy conf. with relevant frontend and backend. - we are using
modular, multiple files.

[3] HAProxy log (ATTACHED).





[1] Browser inspection output: HTTP Headers

======================

Successful running: bypassing HAProxy (internally)

---------------------------------------------------------------------

Request URL:http://&lt;
IP:Port>/Product.Name/wicket/bookmarkable/org.apache.openmeetings.web.pages.
auth.SignInPage?2-1.0-signin-signin-submit

Request Method:POST

Status Code:200

Remote Address:<IP:Port>

Referrer Policy:no-referrer-when-downgrade

Response Headers

view source

Ajax-Location:.

Cache-Control:no-cache, no-store

Content-Security-Policy:default-src 'self'; style-src 'self'
'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';

Content-Type:text/xml;charset=UTF-8

Date:Mon, 17 Jul 2017 19:36:24 GMT

Expires:Thu, 01 Jan 1970 00:00:00 GMT

Pragma:no-cache

Set-Cookie:JSESSIONID=07E88B37E0F1F42D0BBD319FDC79DBD0;path=/<Product.Name>;
HttpOnly

Strict-Transport-Security:max-age=31536000; includeSubDomains; preload

Transfer-Encoding:chunked

X-Content-Type-Options:nosniff

X-Frame-Options:SAMEORIGIN

X-XSS-Protection:1; mode=block

Request Headers

view source

Accept:application/xml, text/xml, */*; q=0.01

Accept-Encoding:gzip, deflate

Accept-Language:en-US,en;q=0.8

Connection:keep-alive

Content-Length:61

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Cookie:JSESSIONID=CD59ACAA3BCFE3F4C8A3AEBE77C52BC6

DNT:1

Host:< IP:Port>

Origin:http://<IP:Port&gt;

Referer:http://<IP:Port>/<Product.Name>/signin;jsessionid=CD59ACAA3BCFE3F4C8
A3AEBE77C52BC6

User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

Wicket-Ajax:true

Wicket-Ajax-BaseURL:signin

X-Requested-With:XMLHttpRequest

Query String Parameters

view source

view URL encoded

2-1.0-signin-signin-submit:

Form Data

view source

view URL encoded

login:<.>

pass:<.>

p::submit:1





FAILED LOGIN via HAProxy

-------------------------------

Request
URL:https://<our.domain.com>/<Product.Name>/wicket/bookmarkable/org.apache.o
penmeetings.web.pages.auth.SignInPage?1-1.2-signin

Request Method:POST

Status Code:400

Remote Address:<IP>:443

Referrer Policy:no-referrer-when-downgrade

Response Headers

view source

Cache-Control:nocache, no-store

Content-Language:en

Content-Length:800

Content-Security-Policy:default-src 'self'; style-src 'self'
'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';

Content-Type:text/html;charset=utf-8

Date:Wed, 19 Jul 2017 06:45:33 GMT

Pragma:no-cache

Referrer-Policy:no-referrer-when-downgrade

Strict-Transport-Security:max-age=31536000; includeSubDomains; preload

X-Content-Type-Options:nosniff

X-Frame-Options:SAMEORIGIN

X-XSS-Protection:1; mode=block

Request Headers

view source

Accept:application/xml, text/xml, */*; q=0.01

Accept-Encoding:gzip, deflate, br

Accept-Language:en-US,en;q=0.8

Connection:keep-alive

Content-Length:45

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Cookie:JSESSIONID=cc-tt-d~6EE3B690118810FEE7ED4B38E61D9294

DNT:1

Host:<our.domain.com>

Origin:https://<our.domain.com&gt;

Referer:https://<our.domain.com>/Product.Name/signin;jsessionid=6EE3B6901188
10FEE7ED4B38E61D9294

User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

Wicket-Ajax:true

Wicket-Ajax-BaseURL:signin

Wicket-FocusedElementId:btn1d9

X-Requested-With:XMLHttpRequest

Query String Parameters

view source

view URL encoded

1-1.2-signin:

Form Data

view source

view URL encoded

login:<.>

pass:<.>



[2] HAProxy configuration

---------------------------

global

log 127.0.0.1 local2

log-tag haproxy

pidfile /var/run/haproxy.pid

user haproxy

group haproxy

nbproc 1

maxconn 5000

spread-checks 5

debug

chroot "${.}/lib"

stats socket "${.}/lib/haproxy.sock"



maxsslconn 256

tune.ssl.default-dh-param 4096

ssl-default-bind-ciphers
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128
-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-
RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:EC
DHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE
-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDS
A-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:D
HE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-D
ES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-
SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

ssl-default-bind-options no-sslv3 no-tls-tickets

ssl-default-server-ciphers
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128
-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-
RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:EC
DHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE
-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDS
A-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:D
HE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-D
ES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-
SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

ssl-default-server-options no-sslv3 no-tls-tickets

maxcomprate 1

maxcompcpuusage 50

tune.comp.maxlevel 5

tune.http.maxhdr 101



defaults

mode http

log global

option httplog

option http-server-close

option redispatch

retries 3

backlog 10000

timeout client 50000ms

timeout connect 5000ms

timeout server 50000ms

timeout http-keep-alive 10s

timeout http-request 15s

timeout queue 30s

timeout check 10s

timeout tarpit 60s

default-server inter 3s rise 2 fall 3

option forwardfor

option abortonclose

maxconn 50000

compression algo gzip

compression offload

compression type text/html "text/html; charset=utf-8"
text/html;charset=utf-8 text/plain text/css text/javascript
application/x-javascript application/javascript application/ecmascript
application/rss+xml application/atomsvc+xml application/atom+xml
application/atom+xml;type=entry application/atom+xml;type=feed
application/cmisquery+xml application/cmisallowableactions+xml
application/cmisatom+xml application/cmistree+xml application/cmisacl+xml
application/msword application/vnd.ms-excel application/vnd.ms-powerpoint
image/svg+xml



frontend webapps-frontend



bind *:443 name https ssl crt <path to cert.name>.pem.ecc

log global

option forwardfor

option httplog clf

http-request set-header X-Forwarded-Port %[dst_port]

http-request set-header X-Forwarded-Proto https if { ssl_fc }

capture cookie JSESSIONID len 62

acl host_https req.hdr(Host) our.domain.com

acl path_subdomain_demo path_beg -i "/Product" path_sub "\.Name"



use_backend subdomain_demo-backend if host_https path_subdomain_demo !
(.)



backend subdomain_demo-backend

timeout tunnel 3600s

cookie JSESSIONID prefix indirect nocache

server Product.Name <IP:Port> cookie cc-tt-d check



http-response set-header Content-Security-Policy "default-src 'self';
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
'unsafe-eval';"

http-response set-header Strict-Transport-Security "max-age=31536000;
includeSubDomains; preload"

http-response set-header X-Frame-Options "SAMEORIGIN"

http-response set-header X-XSS-Protection "1; mode=block"

http-response set-header X-Content-Type-Options "nosniff"

http-response set-header Referrer-Policy "no-referrer-when-downgrade"

http-response set-header Pragma "no-cache"

http-response set-header Cache-Control "nocache, no-store"



acl hdr_location res.hdr(Location) -m found

rspirep ^(Location:)\ http://(.*)$ Location:\ https://\2



acl hdr_set_cookie_dom res.hdr(Set-cookie) -m found sub Domain=

rspirep ^(Set-Cookie:.*)\ Domain=(.*) \1\ Domain=our.domain.com\2 if
hdr_set_cookie_dom

acl hdr_set_cookie_path res.hdr(Set-cookie) -m found sub
Path=Product.Name

rspirep ^(Set-Cookie:.*)\ Path=(.*) \1\ Path=/Product.Name\2 if
hdr_set_cookie_path



HA-Proxy version 1.7.8 2017/07/07

----------------------

Build options :

TARGET = linux2628

CPU = native

CC = gcc

CFLAGS = -m64 -march=x86-64 -O2 -march=native -g -fno-strict-aliasing
-Wdeclaration-after-statement -fwrapv

OPTIONS = USE_LIBCRYPT=1 USE_CRYPT_H=1 USE_GETADDRINFO=1 USE_ZLIB=1
USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_TFO=1
USE_NS=1

Default settings :

maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Encrypted password support via crypt(3): yes

Built with zlib version : 1.2.7

Running on zlib version : 1.2.7

Compression algorithms supported : identity("identity"), deflate("deflate"),
raw-deflate("deflate"), gzip("gzip")

Built with OpenSSL version : OpenSSL 1.0.2k 26 Jan 2017

Running on OpenSSL version : OpenSSL 1.0.2k 26 Jan 2017

OpenSSL library supports TLS extensions : yes

OpenSSL library supports SNI : yes

OpenSSL library supports prefer-server-ciphers : yes

Built with PCRE version : 8.32 2012-11-30

Running on PCRE version : 8.32 2012-11-30

PCRE library supports JIT : yes

Built with Lua version : Lua 5.3.1

Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT
IP_FREEBIND

Built with network namespace support

Available polling systems :

epoll : pref=300, test result OK

poll : pref=200, test result OK

select : pref=150, test result OK

Total: 3 (3 usable), will use epoll.

Available filters :

[COMP] compression

[TRACE] trace

[SPOE] spoe





Thank you.



Sincerely,



Hemant K. Sabat



Coscend Communications Solutions

http://www.coscend.com/ www.Coscend.com

------------------------------------------------------------------

Real-time, Interactive Video Collaboration, Tele-healthcare, Tele-education,
Telepresence Services, on the fly.

------------------------------------------------------------------

CONFIDENTIALITY NOTICE: See 'Confidentiality Notice Regarding E-mail
Messages from Coscend Communications Solutions' posted at:
http://www.coscend.com/Terms_and_Conditions.html
http://www.Coscend.com/Terms_and_Conditions.html







Request URL:https://coscend.fortiddns.com/CoscendCC.Test.Demo/wicket/bookmarkable/org.apache.openmeetings.web.pages.auth.SignInPage?8-1.2-signin
Request Method:POST
Status Code:400
Remote Address:76.186.214.195:443
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Cache-Control:nocache, no-store
Content-Language:en
Content-Length:800
Content-Security-Policy:default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';
Content-Type:text/html;charset=utf-8
Date:Wed, 19 Jul 2017 06:14:30 GMT
Pragma:no-cache
Referrer-Policy:no-referrer-when-downgrade
Strict-Transport-Security:max-age=31536000; includeSubDomains; preload
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN
X-XSS-Protection:1; mode=block
Request Headers
view source
Accept:application/xml, text/xml, */*; q=0.01
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:45
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
DNT:1
Host:coscend.fortiddns.com
Origin:https://coscend.fortiddns.com
Referer:https://coscend.fortiddns.com/CoscendCC.Test.Demo/signin
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Wicket-Ajax:true
Wicket-Ajax-BaseURL:signin
Wicket-FocusedElementId:btn59
X-Requested-With:XMLHttpRequest
Query String Parameters
view source
view URL encoded
8-1.2-signin:
Form Data
view source
view URL encoded
login:Coscend.Evangelist
pass:Collaborative1!

Viewing all articles
Browse latest Browse all 5112

Trending Articles