Hi, On Mon, Aug 12, 2013 at 04:45:42PM +0200, Ghislain wrote: > Le 05/08/2013 10:44, Baptiste a écrit : > >Hi Ghislain, > > > >To log such rejected connection please ensure you don't have the > >"dontlognull" option enabled and you're rejecting connections using > >the "tcp-request content" statement. > > > >Baptiste > > > thanks for the hint ,i was using dontlognull so i just removed it and > added the no option in the frontend > > I use a simple thing like this: > > > frontend ft_https > mode tcp > no option dontlognull > option tcplog > bind 0.0.0.0:443 > stick-table type ip size 500k expire 30s store > gpc0,http_req_rate(10s),conn_cur > tcp-request connection track-sc1 src > tcp-request connection reject if { src_get_gpc0 gt 0 } or { > src_conn_cur ge 30 } > > default_backend bk_https > > backend bk_https > mode tcp > balance roundrobin > acl abuse src_http_req_rate(ft_https) ge 200 > acl flag_abuser src_inc_gpc0(ft_https) > tcp-request content reject if abuse flag_abuser > > i cannot have any log for rejects, the same version in http mode gives > me log with the PR-- flag which is good as it indicate a reject because > of a deny rule but in TCP mode i am unable to get any logging of the > denied connections. I use a simple 'ab' call to stress it.
This is expected, you're rejecting at the earliest possible moment, where no logs can be produced ("tcp-request connection"). If you want to get some logs, reject a bit later, using "tcp-request content". Note that it works when you're in http mode because your backend's tcp-request content rule probably matches at a lower rate than the frontend's rule. This rule however does not match in TCP mode since there's no HTTP request. Regards, Willy