Tag: haproxy

haproxy로 이상한 녀석들 거부하기

보안팀 공지가 떳다.. 공격툴로 공격하는 녀석들은 막아달라고.. 그런 툴들은 User-Agent에 친절하게 자기가 누구라고 알리기 때문에 이 녀석만 막게 해달라고 말이지...

우리는 haproxy가 전면에 있기 때문에, 그 단에서 막기로 했는데, 생각보다 아주 심플하다.

  acl is-bad-agent hdr(Acunetix-Product) -m reg -i ^WVS
  acl is-bad-agent hdr(User-Agent) -m reg (ZmEu|paros|nikto|dirbuster|sqlmap|openvas|w3af|Morfeus|JCE|Zollard)
  block if is-bad-agent

딸랑 3줄~


haproxy: https redirect, ip block 등등..

haproxy는 loadbalancing 기능 이외에도 다양한 기능이 많습니다.

/admin을 내부 아이피만 허용하는 경우는 아래처럼 할 수 있습니다.

  acl is-internal-net    src  172.16.0.0/12 192.168.0.0/16 10.0.0.0/8
  acl is-admin           url_beg  /admin
  block if !is-internal-net is-admin

http를 https로 redirect하는 것도 haproxy에서 사용할 수 있죠.

  redirect scheme https if !{ ssl_fc }

haproxy가 ssl offload 기능을 제공하기에 backend에는 http만 사용합니다. 그리고 밑의 application에서 https에서 온 request라는 것을 확인하기 위해서 x-forwarded-protocol을 붙여줍니다.

  bind 0.0.0.0:443 ssl crt <your-certificate-file>
  acl is-ssl             dst_port 443
  reqadd x-forwarded-protocol:\ https if is-ssl

종합하면 아래처럼 되겠습니다.

listen webapp
  bind 0.0.0.0:443 ssl crt <your-certificate-file>
  server server1 10.10.10.10:80 check
  server server1 10.10.10.11:80 check
  acl is-internal-net    src  172.16.0.0/12 192.168.0.0/16 10.0.0.0/8
  acl is-admin           url_beg  /admin
  acl is-ssl             dst_port 443
  block if !is-internal-net is-admin
  redirect scheme https if !{ ssl_fc }
  reqadd x-forwarded-protocol:\ https if is-ssl

  • Copyright © 1996-2010 Your wish is my command. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress