2011-10-02 5 views
2

현재 Django, Apache 및 mod_wsgi를 사용하여 일반적인 방화벽 작업을 포함하여 FreeBSD 서버 관리 및 구성 기능을 제공하는 웹 응용 프로그램을 작성하고 있습니다.Django, Mod_WSGI, Apache를 사용하는 Python/C Raw 소켓 작업

내 Python/C 라이브러리는 원시 소켓을 사용하여 방화벽과 직접 상호 작용하고 루트로 실행할 때 완벽하게 작동하지만 원시 소켓 작업은 루트에만 허용됩니다.

내가 생각할 수있는 유일한 방법은 sudo를 사용하여 www 사용자가 명시 적으로/sbin/ipfw에 액세스 할 수있게하는 것인데, 이는 원시 소켓 라이브러리 작업을 사용하는 것을 선호하기 때문에 이상적이지 않습니다. 서브 프로세스 호출보다

또 다른 옵션으로 로컬 도메인 소켓을 작성하거나 루트로 실행되고 이러한 요청을 처리하는 기존 작업 시스템 (Celery?)을 사용하는 것이 좋습니다.

아니면 내가 모르는 일부 WSGI 데몬 모드 속임수가 있습니까? 전에이 문제가 발생했는지 확신합니다. 이것을 처리하는 가장 좋은 방법에 대한 조언이 있습니까?

답변

1

셀러리 또는 루트로 실행되는 다른 백 엔드 서비스를 사용하십시오. 루트로 실행되는 웹 응용 프로그램 프로세스가 발생하면 보안 문제가 발생합니다. 이것이 mod_wsgi가 데몬 프로세스를 루트로 실행하는 것을 차단하는 이유입니다. 물론 제외 코드를 해킹 할 수있는 코드를 해킹 할 수는 있지만 그 방법을 알려주지는 않습니다.

+0

나는 아파치/mod_wsgi를 루트로 실행하려는 의도가 없다는 것에 동의하고 있으며, 그 이유는 여기에 있습니다. Celery는이 한 작업에 약간 과잉이라고 생각되지만 향후 구현시 다른 작업에 유용 할 수 있습니다. – kwl34

관련 문제