• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

Nextcloud 보안 관련 셋팅하기

게르노 1758

5

2

서버나 네트워크를 잘 알지 못하는 취미로 하는 사람이 쓴 글이니

부족한 부분이나 잘못된 부분이 있다면 댓글 달아주시기 바랍니다.

 

사용 환경

OMV6

linuxserver/nextcloud

 

0. 리버스 프록시

기본 중의 기본입니다! 

jc21/nginx-proxy-manager 이미지로 리버스 프록시를 설정해줍니다.

 

1. Geoblocker

Nextcloud 스토어에서 설치 가능한 앱입니다.

IP 위치 기반으로 로그인을 차단하고, 지연시킵니다.

 

image.png.jpg

 

설치 후 관리자 계정의 설정 탭에 Geoblocker 항목에서 설정이 가능합니다.

서비스가 처음엔 Dummy로 되어있을텐데 이것을 RIRData(로컬) 로 바꿔줍니다.

IP 지역 정보들이 담긴 데이터베이스입니다.

 

서비스를 선택 후 최초 업데이트를 눌러줍시다.

 

image.png.jpg

 

우리나라를 제외한 모든 국가에서의 로그인을 차단하고 싶다면 위와 같이 설정하시면 됩니다.

IP로그인 지연을 체크하게 되면 로그인 시 해외 IP라고 판단되면 지연시간을 주어 로그인 한 번 시도하는데 30초가 걸리게 합니다.

IP로그인 차단을 체크하게 되면 로그인 시 해외 IP라고 판단되면 프론트엔드 기반으로 로그인을 막습니다.

 

영구적으로 IP를 차단하는 것은 아닙니다. 

아이디와 비번을 맞게 입력했다해도 IP가 차단 대상 지역의 IP이면 로그인을 막습니다.

 

로그인 지연과 로그인 차단 모두 체크하게 되면 로그인 시도 시 30초 지연 후 로그인 차단 페이지가 나옵니다.

 

*주의

Geoblocker 데이터베이스 업데이트 중 nextcloud 컨테이너를 종료하거나, 시스템을 종료해버리면 영원히 데이터베이스 업데이트가 끝나지 않는 버그가 있습니다.

"서비스 업데이트 중에 nextcloud 인스턴스가 다시 시작되면 서비스는 업데이트 프로세스에서 영원히 유지됩니다."

데이터베이스 업데이트 중 Nextcloud나 시스템이 꺼지지 않도록 유의해주시기 바랍니다.

 

2. Two-Factor TOTP Provider

Nextcloud 스토어에 있는 앱입니다. 

여러 TOTP 앱들 중 '추천' 마크가 있는 앱입니다.

구글 OTP와 연동되며, 설정-보안(개인)-2단계 인증 탭에서 설정 가능합니다. 

 

3. Brute-Force settings

기본적으로 Nextcloud에 설치되어있는 앱인데 활성화가 안돼있습니다.

활성화해주세요

 

4. Suspicious Login

Nextcloud 앱 스토어에 있습니다.

따로 건드릴 것은 없고, 앱을 설치해놓면 알아서 작동합니다.

설정-보안(관리) 탭에서 확인할 수 있습니다.

 

Nextcloud는 로그인에 실패한 경우 로그에서 IP와 로그인 시도 정보를 볼 수 있지만 성공한 로그인에 대해서는 로그가 나오지 않습니다.

그래서 이 앱은 60일간 로그인 정보를 이용해 모델을 훈련한 후, 성공한 로그인이다 하더라도 UID와 IP가 수상하다고 판단되면 이메일과 푸시 알림으로 로그인 정보를 보내줍니다.

앱 설치 후 60일간 기다려야하는게 단점이라면 단점입니다.

 

5. Fail2ban

요즘은 국내 VPN을 이용해서 로그인 시도를 하는 경우도 있습니다.

Geoblocker는 지역 기반이라 국내 IP로 로그인을 시도하는 경우에는 차단하기 어렵습니다.

Fail2ban을 이용하면 시도 횟수에 따라 IP를 차단할 수 있습니다.

 

Nextcloud 자체적으로도 로그인 일정 횟수 실패하면 차단하는 기능이 있지만, IP를 차단하는 방식이 아닌 사용자 계정을 블락해버리는 방식이기 때문에 리스크가 있습니다. 

 

Fail2ban을 시스템에 설치합니다. (OMV에서는 플러그인으로 간단히 설치할 수 있습니다.)

ssh로 접속해 /etc/fail2ban/filter.d 로 이동합니다.

sudo touch nextcloud.conf 라고 입력합니다. 

sudo nano nextcloud.conf 를 입력하여 생성한 파일을 나노에디터로 엽니다.

다음을 복사하여 붙여넣기합니다.

[Definition]
_groupsre = (?:(?:,?\s*"\w+":(?:"[^"]+"|\w+))*)
failregex = ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Login failed:
            ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Trusted domain error.
datepattern = ,?\s*"time"\s*:\s*"%%Y-%%m-%%d[T ]%%H:%%M:%%S(%%z)?"

 

Ctrl+X를 눌러 저장하고 빠져나옵니다.

Fail2ban Jail을 만들어주면 완료입니다.

 

필터 이름은 nextcloud

log path는 nextcloud.log 파일의 절대경로를 찾아 복붙해주시면 됩니다. (OMV의 경우 locate 라는 플러그인을 사용하면 빠르게 파일의 위치를 찾을 수 있습니다.)

 

*참고

Geoblocker에 의해 로그인이 차단된 경우는 Fail2ban에서는 로그인 실패로 판단하지 않습니다. (아마 Geoblocker에서 선제적으로 로그인 시도 자체를 차단했기 때문인 것으로 생각됩니다.)

따라서 Geoblocker에 의해 같은 IP가 Fail2ban의 Max try 횟수 이상 차단되었다 하더라도 Fail2ban에서는 IP를 차단하지 않습니다.

 

Geoblocker와 Fail2ban을 동시 사용하는 경우 Geoblocker=해외IP차단, Fail2ban=로그인허용지역IP차단 으로 생각하시면 될 것 같습니다.

 

Geoblocker에 대한 Fail2ban의 필터를 따로 만들 수 있지만... 아직까지는 이렇게까지 하지 않아도 될 것 같습니다.

해외에서 미친듯이 로그인을 찔러본다면 그때는 해봐야겠죠 ㅎㅎ

 

신고공유스크랩
2
profile image 2등
달소 2022.05.02. 09:33

정말 좋은글입니다!!

나중에 nextcloud관련글만모아서 가이드로 만들어도 참좋을듯하네요ㅎㅎ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

첨부 0

번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 62 달소 23.05.29.01:57 25026 +24
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 73 달소 23.05.23.23:58 26624 +23
정보 토렌트 알림 디스코드로 받기 2 블랙앤해적 3일 전20:02 304 +1
질문 비추 취소 기능은 없나요..? 19 나와너 3일 전15:25 286 +7
후기 ghost 블로그를 만들어 봤습니다 12 빨간물약 5일 전15:26 452 +3
5120 질문
image
유니파트 5시간 전21:01 66 0
5119 질문
image
나스버섯 7시간 전18:56 51 0
5118 질문
normal
서버왕자 17시간 전09:17 67 0
5117 질문
normal
콩이아빠 1일 전21:17 318 0
5116 잡담
normal
훔친수건 1일 전19:32 436 0
5115 질문
normal
xpnol 1일 전16:04 117 0
5114 질문
image
나스버섯 1일 전13:16 176 0
5113 질문
normal
지나가는_문과생 2일 전00:13 91 0
5112 질문
normal
햄뽁이아빠 2일 전21:46 185 0
5111 질문
normal
2km 2일 전15:20 281 0
5110 질문
normal
서브어린이 2일 전10:11 130 0
5109 질문
image
지나가는_문과생 2일 전08:47 143 0
5108 질문
normal
넌누구냐 3일 전00:02 206 0
5107 정보
normal
블랙앤해적 3일 전20:02 304 +1
5106 질문
normal
나와너 3일 전15:25 286 +7
5105 질문
image
THUBAN 3일 전12:53 286 0
5104 질문
normal
서브어린이 4일 전12:00 144 0
5103 후기
image
빨간물약 5일 전15:26 452 +3
5102 질문
image
지축또타 5일 전13:44 408 0
5101 질문
image
김펭귄 5일 전08:48 187 0