본문 바로가기

Python/Django

[Django] honeypot은 뭐야?

728x90

 honeypot은 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템을 의미합니다. 따라서 django-honeypot은 누군가 진짜 admin 사이트가 아닌 개발자가 설정해놓은 admin 사이트에 접근을 시도하였을 경우 해당 로그인 기록을 저장하는 기능을 합니다. 다음은 honeypot 설치 코드입니다.

 

pip install django-admin-honeypot

 

설치가 완료되면 settings.py에서 INSTALLED_APPS에 'admin_honeypot'을 추가해줍니다.

 

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'admin_honeypot',
]

 

마찬가지로 settings.py에 urlpatterns에 다음과 같이 코드를 수정해줍니다. 수정 후에는 admin/으로 들어가서 로그인을 시도하면 해당 컴퓨터에 대한 정보가 ORM에 저장되게 됩니다. 이전과 같이 superuser로 로그인을 하려면 securelogin/로 이동하면 됩니다.

 

urlpatterns = [
    path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')),
    path('securelogin/', admin.site.urls),
 ]

 

위에 설명한 모든 것을 설정하였으면 아래와 같이 migrate를 진행해줍니다.

 

python manage.py migrate

 

migrate까지 완료한 후에 admin/ 경로로 로그인을 시도 후 django ORM에 저장된 데이터입니다.

 

 

path, user name, ip, session key, user agent의 정보들이 저장된 것을 확인할 수 있습니다.

728x90

'Python > Django' 카테고리의 다른 글

[Django] related_name은 뭐야?  (0) 2021.07.01
[Django] Javasrcipt에서 ORM 정보 사용하기  (0) 2021.06.29
[Django] decouple은 뭐야?  (1) 2021.06.25
[Django] pagination은 뭐야?  (0) 2021.06.24
[Django] smtpauthenticationerror 해결  (0) 2021.06.23