gitlab 에 403 오류 발생

8970 단어 Linux
묘사 하 다.
개별 사용자 가 갑자기 나 타 났 다 403 forbidden.서버 환경: docker gitlab 버 전: 8.7 로그 보기:
192.161.11.20 - - [08/Jan/2018:17:01:32 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:01:49 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:09 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:20 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:20 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:22 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:24 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
192.161.11.20 - - [08/Jan/2018:17:02:25 +0800] "GET / HTTP/1.1" 403 10 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

통계 아래 횟수:
root@783977abd2ec:/home/git/gitlab# cat /var/log/gitlab/nginx/gitlab_access.log | grep 403 | grep "192.161.11.20" | wc -l
62
root@783977abd2ec:/home/git/gitlab#

조사 하 다
다른 사용자 가 정상 이 었 고 이 사용자 도 정상 이 었 기 때문이다.서버 시스템 설정 문제 가 아 닐 겁 니 다.
공식 토론 판 찾기:https://gitlab.com/gitlab-org/gitlab-ce/issues/1171
나 는 다음 과 같은 가능성 을 살 펴 보 았 다.
  • session: redis-cli keys '*' | grep '^[a-f0-9]\{32\}$' | wc -l 을 검사 한 결과 0 이 었 다.
  • nginx 설정 검사: 이전에 제 외 했 습 니 다.
  • attack 검사: redis-cli keys '*' | grep 'rack::attack' 데이터 가 있 습 니 다.
  • root@9152a066a2ba:/usr/bin#
    root@9152a066a2ba:/usr/bin# redis-cli keys '*' | grep 'rack::attack'
    cache:gitlab:rack::attack:allow2ban:ban:192.161.11.20
    root@9152a066a2ba:/usr/bin# redis-cli -h
    redis-cli 2.8.4

    이 ip 은 바로 접근 할 수 없 는 ip 입 니 다.
    문 제 를 찾 으 면 해결 하기 쉽다.내 가 계획 한 해결 방법:
  • 자 료 를 찾 아 redis 의 이 데 이 터 를 직접 삭제 할 수 있 는 지 확인 합 니 다.
  • redis - cli 명령 용법 을 검색 하고 이 명령 으로 이 key 를 삭제 합 니 다.

  • 첫 번 째 단계 가 끝나 기도 전에 이 데 이 터 는 자동 으로 삭제 되 었 다.멘 붕!!!자 료 를 찾 아 보 니 직접 삭제 할 수 있 습 니 다. 다음은 redis - cli 로 지정 한 key 를 삭제 하 는 것 입 니 다.두 번 째 단계: redis 에서 지정 한 key 삭제:
    redis-cli keys '*' | grep 'rack::attack' | xargs redis-cli DEL

    왜?
    / home / git / gitlab / config / gitlab. yml 파일 에 rack 가 있 습 니 다.attack 설정, 내부 네트워크 라면 직접 enabled 를 false 로 설정 하고 외부 네트워크 라면 실제 상황 에 따라 maxretry 를 확대 할 수 있 습 니 다.
      rack_attack:
        git_basic_auth:
          # Rack Attack IP banning enabled
          enabled: true
          #
          # Whitelist requests from 127.0.0.1 for web proxies (NGINX/Apache) with incorrect headers
          ip_whitelist: [127.0.0.1]
          #
          # Limit the number of Git HTTP authentication attempts per IP
          maxretry: 10
          #
          # Reset the auth attempt counter per IP after 60 seconds
          findtime: 60
          #
          # Ban an IP for one hour (3600s) after too many auth attempts
          bantime: 3600

    좋은 웹페이지 즐겨찾기