반응형 Server8 [ubuntu, fail2ban] 로그인 실패 횟수에 따라 IP 차단하기 📒 [ubuntu, fail2ban] 로그인 실패 횟수에 따라 IP 차단하기한 번씩 개인 서버에 들어가 로그인 시도 정보를 확인하면 정말 하루종일 무작위 공격을 시도하는 것을 확인할 수 있습니다.괜히 전기요금 더 나올 것 같아 방어하려고 찾아보던 중 fail2ban이란 툴을 발견했습니다. 📌 fail2banfail2ban은 SSH 로그인 실패 횟수에 따라 IP를 차단시켜 주는 툴입니다.무작위 공격 특성상 IP를 차단하는 것만으로도 어느 정도 예방이 가능합니다. 🔎 설치$ sudo apt update$ sudo apt install fail2ban -y 🔎 설정파일 수정기본 설정 파일을 복사해 줍니다.$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.lo.. 2024. 12. 10. [Nginx, Certbot] 서브도메인에 SSL 인증서 발급 후 https 설정하기 📒 [Nginx, Certbot] 서브도메인에 SSL 인증서 발급 후 https 설정하기저번달에 포트폴리오 용도로 사용할 도메인을 하나 구매했었습니다.이번에 새로운 개인 프로젝트를 하며 Nexus Docker Repository를 설치했는데, 서브 도메인에 SSL 인증서를 적용해 https로 통신하도록 했습니다.이게 자주 할 수 있는 작업이 아니기 때문에 금방 기억에서 지워질 것 같아 기록해 봅니다. 📌 CNAME 레코드 설정CNAME은 한 도메인 이름을 다른 도메인 이름에 별칭으로 연결하는 역할을 합니다.저를 예로 들면 "lasbe.kr"이란 도메인을 구매했고, docker repository 통신을 위해 CNAME 레코드를 "docker"로 설정했으면 최종적으로 "docker.lasbe.kr"로.. 2024. 11. 19. [nginx, nexus docker repository] retrying, Request Entity Too Large 에러 해결 📒 [nginx, nexus docker repository] retrying, Request Entity Too Large 에러 해결개인 서버에 Nexus Docker Repository를 구축하고 image push 테스트를 해봤는데 다음과 같은 오류가 발생했습니다. 수 번의 재시도 끝에 Request Entity Too Large라는 에러를 뱉고 결국 이미지 푸시에 실패했습니다. 구글링을 하던 끝에 Nexus 서버의 문제가 아닌 앞 단에 proxy로 두었던 Nginx 문제라는 것을 알게 되었습니다. 📌 Nginx 로그 확인$ docker logs -f proxy로그로 확인해보니 Nginx에서 client intended to send too large chunked body라는 에러를 확인했습.. 2024. 11. 18. github-action에서 Docker와 SSH로 Nextjs 원격 배포하기 📒 github-action에서 Docker와 SSH로 Nextjs 원격 배포하기이전 개인 프로젝트를 배포했던 자취방 고물 노트북서버입니다. 보안도 허술하게 설정해놓고 하염없이 방치하다 보니 어느 순간 우분투가 먹통이 되어 이번에 포맷하고 새로 설치했습니다. 이번엔 포트폴리오 용도로 만든 Nextjs 웹사이트를 배포하려 하는데,전에 github self hosted runner를 서버에 직접 설치해 사용하던 방식이 너무 불편했던 것을 떠올렸습니다. 생각해보니 깃허브에서 무료로 github hosted runner를 제공하고 있고,이걸 다음과 같이 이용해 보자는 생각을 했습니다. github hosted runner에서 앱 빌드 -> docker 빌드 -> docker hub에 이미지 push-> ssh.. 2024. 10. 18. 우분투 노트북 덮개 닫아도 작동되도록 세팅하기 📒 우분투 노트북 덮개 닫아도 작동되도록 세팅하기노트북을 서버로 이용하기 위해서는 하루종일 켜져 있어야 제 역할을 할 수 있습니다.하지만 노트북 특성상 덮개를 닫아버리면 대기모드에 진입하게 됩니다.간단한 설정으로 덮개를 닫아도 대기모드 진입을 방지하는 설정을 소개드립니다. 📌 에디터로 logind.conf 파일 열기$ sudo nano /etc/systemd/logind.conf어느 에디터를 사용해도 상관없습니다.📌 HandleLidSwitch하단에 위치한 HandleLidSwitch의 주석을 풀어준 뒤, suspend -> ignore로 변경해주면 됩니다. 변경을 완료했다면 저장하고 나가줍니다. 📌 systemd-logind 재시작$ sudo systemctl restart systemd-log.. 2024. 8. 27. [Docker + Nginx] Proxy Server에 Certbot으로 SSL 인증서 발급 받고 Https 적용하기 ⚡️ Certbot으로 SSL 인증서 발급받고 Https 적용하기개인 리액트 프로젝트를 8080 포트로 올리고,80 포트에는 Nginx를 이용해 프록시 서버를 올려 언제든 80 포트를 바꿀 수 있도록 했습니다. 그다음 프록시 서버에 ssl 인증서를 발급받고 https를 적용함으로써 다른 웹서버는 인증서에 대해 신경 쓸 필요가 없어졌습니다. 그럼 Certbot으로 Nginx에 ssl 인증서를 발급받고 https를 적용하는 방법을 소개합니다.📌 포트포워딩공유기의 포트포워드 설정에 들어가 80 포트와 443 포트를 열어줍니다.📌 DNS A 레코드 수정A Record : DNS에 저장되는 정보의 타입으로 도메인 주소와 서버의 IP 주소가 직접 매핑시키는 방법도메인 제공 업체에서 DNS A 레코드를 수정해줍니.. 2023. 7. 27. Github Action + React + Firebase API KEY 숨기기 Github Action + Docker + Nginx + React 야매 CI/CD 완성기 ⚡️ 계기 서버에 문외한이었던 저는 입사 후 개발 리포지토리에서 자동으로 배포되는 모습을 본 순간부터 홀딱 빠지게 되었습니다. 제대로 된 배포하는 방법도 몰랐던 저는, 그저 작성한 코드 lasbe.tistory.com ⚡ Github에 API KEY 숨기기 React와 Firebase로 개인 프로젝트를 진행하며 Gihub Action의 워크플로우를 구성해 푸시하면 자동으로 배포되도록 했습니다. Firebase를 사용하기 위해서는 프로젝트 내부에 API KEY가 포함되어야 하는데 처음에는 키가 그대로 노출되어 있어 리포지토리를 private로 설정해 이용했었습니다. 그러나 어느 정도 프로젝트가 완성 단계에 왔고 슬.. 2023. 3. 20. Github Action + Docker + Nginx + React 야매 CI/CD 완성기 📒 Github Action + Docker + Nginx + React 야매 CI/CD 완성기 📌 계기 빈약한 서버 지식을 갖고 있었던 저는 입사 후 사내 구축된 CI/CD 환경을 보고 신문물을 만난 원주민마냥 깜짝 놀랐습니다. 이렇게 좋아보이는 기능을 제가 직접 해보지 않고선 직성이 풀리지 않죠. 그러다 어느날 몇 개월간 사용하지 않아 먼지 쌓여있는 개인 윈도우 노트북이 눈에 들어왔고, 기존 데이터를 밀어버린 후 우분투를 설치해서 하고 있던 개인 프로젝트를 자동으로 배포할 수 있게 도전해 봤습니다. 서버 쪽 기초 하나 없이 삽질했던 기억에 저와 같은 상황에 있으신 분들에게 조금이나마 도움이 되었으면 하는 마음에서 쓴 글이니 기술적인 부분에서는 많이 부족할 수 있습니다. 또한 분량 때문에 기능 구현에만.. 2023. 3. 20. 반응형 이전 1 다음