2015-01-08 1 views
3

내 응용 프로그램은 로그인하는 각 사용자의 IP 주소를 기록하지만 실제 클라이언트 IP 대신로드 밸런서의 IP 주소를 로깅하고있는 것으로 나타났습니다. 로드 밸런서가 공개적으로 라우팅 가능한 IP 주소를 사용하고 Rails가 스푸핑되었다고 가정하면 X-Forwarded-For 헤더를 무시하기 때문에이 문제를 조사했습니다. 이 솔루션은로드 밸런서가 사용하는 IP 범위를 '허용 목록에 추가'하는 것으로 보입니다.Rails 4에서 RemoteIp의 신뢰할 수있는 프록시 목록을 구성하려면 어떻게해야합니까?

제 질문은 정확하게 레일즈 4.1.x에서 어떻게해야합니까?

config.action_dispatch.custom_proxies = %r{ 
    ^100\.30 | # production environment load balancers 
    ^200\.40 | # dev environment load balancers 
}x 

내가 remote_ip.rb에서 TRUSTED_PROXIES처럼 포맷을 시도했지만 어쩌면 문자열이나 배열, 또는 다른 형식 정규식해야한다 : 여기 config/environments/production.rb 지금이 무엇입니까? 세부 사항에 대한 도움을 많이 주시면 감사하겠습니다. 이 구성을 장래 버전의 레일에서 깨는 통합 테스트를 제안 할 수 있다면 보너스 upvote. :-)

UPDATE

나는이를 업데이트 할 수있는 다양한 방법을 시도하고, config.action_dispatch.trusted_proxies를 사용하여 약간 더 성공을 거두었습니다. 이렇게하면 내로드 밸런서가 기록되지 않지만 내부 또는 외부 모두 모든 IP 주소가 '127.0.0.1'로 기록됩니다. logs/unicorn.log에서 ip 주소는 [외부 주소, 10. * 주소,로드 밸런서 주소]로 입력되므로 문제는 랙 또는 레일층에 있으며 이전에는 apache 또는 nginx가 아닙니다. TRUSTED_PROXIES 상수를 10. * 범위를 포함하지 않는 목록으로 바꾸려고 시도했는데 (내부 사용자의 범위가 있기 때문에) 명백한 효과는 없습니다.

비공개 IP 주소에서 오는 실제 사용자가있는 응용 프로그램이나 외부 IP 주소가있는로드 밸런서가있는 네트워크 환경에서 호스트되는 응용 프로그램의 경우 Rails 4.1.x가 손상된 것 같습니다. .

답변

1

다른 구성 옵션 config.action_dispatch.ip_spoofing_check을 추가하여 Rails가 IP 스푸핑을 확인하지 않도록 할 수 있습니다.

옵션은 레일에 설명되어 약 configuration 안내 레일 4.2의 이름으로 ActionDispatch::RemoteIp module

+0

I을 참조하십시오 내 구성을'config.action_dispatch.check_ip_spoofing = false'에서'config.action_dispatch.ip_spoofing_check = false'으로 수정했고, 내부 부하 분산 장치 IP를'config.action_dispatch.trusted_proxies' opti에 포함 시켰습니다. 에,하지만 그것은 여전히 ​​나를 위해 문제를 해결하지 않습니다. ip_spoofing_check을 설정하면 아무런 변화가 없습니다. trusted_proxies 설정을 변경하면 아무 것도 변경되지 않습니다. ActionDispatch :: Request :: trusted_proxy를 원숭이 패치로 추가하는 것? 구성된 trusted_proxies를보고 모든 요청을 127.0.0.1로 기록합니다. – sockmonk

+0

프록시 (Apache) 뒤에 Rails 3.2.17 (Apache + Passenger)이있는 테스트 애플리케이션을 구성했으며 action_dispatch에 구성을 추가하지 않고도 모든 것이 즉시 작동합니다. – fjuan

+0

x-forwarded-for에 대한 흥미로운 게시물을 찾았습니다 헤더 : http://blog.gingerlime.com/2012/rails-ip-spoofing-vulnerabilities-and-protection/ – fjuan

관련 문제