2009-06-13 4 views
0

나는 정적/개인 IP를 가진 webfaction에서 호스팅되는 장고 애플리케이션을 가지고 있습니다.원격 웹 서버에서 파이썬 LDAP 인증

사무실의 네트워크는 분명히 방화벽 뒤에 있으며 AD 서버는이 방화벽 뒤에서 실행됩니다. 네트워크 내부에서 파이썬 -ldap을 사용하여 AD의 내부 IP 주소와 포트 389로 인증 할 수 있으며 모든 것이 잘 작동합니다.

내가 이것을 웹 서버로 옮길 때 우리 방화벽에서 열린 주소와 포트를 변경합니다. 간단하게하기 위해 우리가 연 포트는 389이지만 인증 요청은 항상 타임 아웃입니다. webfaction에 로그인하고 쉘에서 python을 실행하고 ipaddress를 쿼리하면 내 고정 IP가 아닌 webfactional의 일반 IP 주소를 얻을 수 있습니다.

내가 무슨 일이 장고에서 시도하고 인증 일 이니? 요청은 방화벽이 기대하는 고정 IP가 아닌 파이썬이 실행되는 기본 IP 주소에서 오는 것입니까?

메신저 모든 네트워킹 및 포트 매핑에 대해 매우 단서가 없으므로 도움이 될 것입니다.

희망이 맞나요?

+0

원격 LDAP 및 django를 매우 성공적으로 사용하므로 개발 모드에서 로컬로 작업하는 경우 네트워킹/포트 문제는 설치 또는 webfaction에만 적용됩니다. –

답변

0

호스트 된 장고 응용 프로그램과 내부 AD 사이에 구성 요소가 상당히 있습니다. 그들 사이의 경로에있는 모든 것이 맞는지 각각을 테스트해야합니다.

그러면 AD 서버가 방화벽 뒤에 있습니다. 방화벽의 IP 주소는 "a.b.c.d"이며 포트 389의 방화벽 IP에 대한 모든 트래픽은 AD 서버로 전달됩니다. 방화벽의 더 많은 임의의 포트 (btw)로 변경하는 것이 좋습니다. 더 적은 스캔 거기.

쉘 액세스를 통해 네트워크에 연결할 수 있는지 테스트 할 수 있습니다.

  • 검사 경로 방화벽에 webfaction 블록이, 그렇지 않으면 당신이 볼 경우이 작동하지 않을 수 있습니다 (: 다음 (또는 파이썬과 비슷한) 중 하나를 시도하는 동안 방화벽 관리자가 방화벽 로그를 확인 되세요 트래픽이 통과 할 함께 호스트 목록 - 경로에 방화벽이있는 경우이 대부분의 방화벽에서 기본적으로 삭제로 어딘가에 당신이 당신의 연결이 손실되는 것을 볼 수 있습니다) :

    tracert와

  • ABCD

    포트 389에서 방화벽 IP로 텔넷 연결 (텔넷 테스트는 방화벽을 허용합니다 관리자는 자신의 로그에서 포트 389를 통해 들어오는 연결 시도를 확인합니다. 사람들이 도착 경우, 그) 외부 통신이 잘 작동한다는 것을 의미 :

    텔넷 마찬가지로

389 ABCD, 당신은 당신의 AD 서버가이 요청을 수신 (로그를 확인)뿐만 아니라 확인 필요 응답 할 수 있습니다. 아마도 AD 서버가 방화벽과 통신하도록 설정되지 않았습니까?

3

방화벽의 포트를 LDAP에 직접 열지 않는 것이 좋습니다. 대신 SSH 터널을 만드는 것이 좋습니다. 그러면 LDAP 트래픽에 필요한 암호화가 적용됩니다. 다음은 그 예입니다.

ssh -N -p 22 [email protected] -L 2222/localhost/389 

여기서는 ssh 서버가 LDAP 서버의 포트 22에서 실행 중이며 웹 호스트에서 액세스 할 수 있다고 가정합니다.ldap 서버의 포트 389에서 웹 호스트의 포트 2222로 터널을 생성합니다. 그런 다음 웹 호스트에서 django 응용 프로그램을 구성하여 LDAP 서버가 localhost 포트 2222에서 실행되고 있다고 생각하십시오.