본문 바로가기

[자작NAS] 우분투 서버에 Docker로 CrowdSec 설치 CrowdSec은 침입 방지 시스템으로 외부의 침입 시도로부터 서버를 보호합니다. Fail2ban과 유사한 역할을 하지만 동작 방식은 조금 다릅니다. Fail2ban은 각 서비스의 로그들을 스캔해서 실패한 로그인 등에 대한 로그를 기반으로 IP를 차단합니다. CrowdSec는 CrowdSec을 설치한 사람들의 로그를 분석해서 각 사용자로부터 수집한 악성 IP들을 차단합니다. 여러 사용자들이 공유하는 정보를 기반으로 IP를 차단하기 때문에 더 많은 정보를 활용할 수 있습니다. 또한, CrowdSec은 Traefik이나 Cloudflare 등과 같은 서비스와 연동하기 위한 바운서(Bouncers)를 제공합니다. CrowdSec을 적용해서 서버의 보안을 강화시키는 방법을 알아보겠습니다. 1. CrowdSec .. 더보기
[자작NAS] 우분투 서버에 Docker로 MariaDB 설치 MariaDB는 MySQL이 오라클에 인수된 이후 MySQL을 포크하면서 생긴 DBMS입니다. MySQL과 호환이 되기 때문에 MySQL을 대체해서 많이 사용됩니다. MariaDB는 DB를 사용하는 다양한 소프트웨어와 연동이 가능합니다. Docker Compose로 MariaDB를 실행하는 방법을 알아보겠습니다. 1. docker-compose.yml 파일에 MariaDB 추가 현재 최신 버전인 11.0.2를 기준으로 설치를 진행하겠습니다. docker-compose.yml 파일을 생성해서 MariaDB를 추가할 수 있습니다. sudo nano ~/docker-compose.yml 다음과 같이 내용을 입력하면 됩니다. version: "3.9" services: ...기타 컨테이너 설정 mariadb: .. 더보기
[자작NAS] 우분투 서버에 Docker로 Traefik 설치 Traefik은 리버스 프록시와 부하 분산(Load balancer) 기능을 제공합니다. 사용하는 서비스들의 포트를 외부에 노출하지 않고 URL을 통해 외부에서 접속 가능해집니다. 80, 443 포트만 외부에 노출시키고 URL을 통해서만 들어오기 때문에 보안이 강화됩니다. 또한 Traefik은 웹 대시보드와 미들웨어 지원, Let's Encrypt 지원 등 강력한 기능을 갖추고 있습니다. 다양한 기능을 갖춘 Traefik을 설치하는 방법을 알아보겠습니다. 1. Traefik 기본 설정 먼저 웹 대시보드에 접속할 때 사용할 비밀번호를 생성합니다. 먼저 Basic auth에 사용할 비밀번호를 생성하기 위해 apache2-utils를 설치합니다. sudo apt-get install -y apache2-uti.. 더보기
[JavaScript] Array 메소드 - map() 자바스크립트를 하는 사람이라면 map()은 꼭 알아야 하는 메소드 중 하나입니다. map() 메서드는 원래 배열의 각 요소에 주어진 함수를 적용하여 새 배열을 만드는 자바스크립트의 내장 배열 메서드 입니다. map() 메서드는 원래 배열을 수정하지 않습니다. array.map(function(currentValue, index, arr), thisValue) map()메소드 사용 시 다음의 2개의 파라미터를 적용 시켜야 합니다. - function: 배열의 각 요소에 적용할 함수입니다. currentValue: 처리 중인 현재 요소의 값 index: 처리 중인 현재 요소의 값 arr: map() 메서드가 호출된 원래 배열 - thisValue: 선택 사항으로 함수를 실행할 때 이 값으로 전달할 값입니다... 더보기
[JavaScript ]Object Array 메소드 push / pop / shift / unshift 배열은 실무에서도 정말 많이 사용하는 데이터 구조이며 익숙해 지는 것이 중요합니다. 그 중에서도 집중해서 연습해봐야 하는 것은 object를 담고 있는 array 입니다. const emojis = [ {name: '호랑이', emoji:'🐅'}, {name: '토끼', emoji:'🐇'}, {name: '용', emoji:'🐉'}, {name: '고양이', emoji:'🐈'} ]; 1. push() - 배열 끝에 하나 이상의 요소를 추가하고 배열의 새 길이를 반환합니다. emojis.push({name: '소', emoji:'🐄'}); console.log(emojis); /* 결과 {name: '호랑이', emoji:'🐅'}, {name: '토끼', emoji:'🐇'}, {name: '용', emoj.. 더보기
[JavaScript] Array 메소드 (push / pop / shift / unshift) 배열은 자바스크립트에서 가장 기본적인 데이터 구조 중 하나이며, 데이터를 저장하고 조작하는데 사용됩니다. 이 블로그에서는 자바스크립트에서 가장 일반적으로 사용되는 배열 방법에 대해 확인할 예정입니다. 1. push() - 배열 끝에 하나 이상의 요소를 추가하고 배열의 새 길이를 반환합니다. const arr = ['🐅','🐇','🐉', '🐈']; arr.push('🐄'); console.log(arr); // 결과 ['🐅','🐇','🐉', '🐈','🐄'] 2. pop() - 배열에서 마지막 요소를 제거하고 해당요소를 반환합니다. const arr = ['🐅','🐇','🐉', '🐈']; arr.pop(); console.log(arr); // 결과:[ '🐅','🐇','🐉'] 3.shift() - 배열에서 .. 더보기
[Python] 파이썬 셋(set) 사용 방법 파이썬의 셋(set)은 파이썬의 기본 내장 데이터 타입 중 하나입니다. 집합을 표현하는 데이터 타입으로 합집합, 교집합, 차집합 등의 연산을 지원합니다. 셋의 가장 큰 특징은 중복된 값을 허용하지 않는다는 점입니다. 또 하나의 특징은 순서가 없기 때문에 인덱스를 통해 값을 가져올 수 없다는 점입니다. 파이썬의 셋(set) 데이터 타입에 대해 알아보겠습니다. 1. set 생성 파이썬에서 set은 명시적으로 set()을 입력해서 생성할 수 있습니다. a = set() b = set([1, 1, 2, 3]) a와 같이 빈 set을 생성하거나 리스트를 통해서 set을 생성할 수 있습니다. set은 중복을 허용하지 않기 때문에 리스트에 동일한 값이 존재하는 경우 한 개만 set에 입력됩니다. 2. set 연산 파.. 더보기
리눅스 전원 끄기 (시스템 종료) 명령어 리눅스 환경에서 명령어를 입력해서 시스템을 종료해야 하는 경우가 있습니다. 시스템 종료가 아닌 재부팅의 경우 아래 링크에서 명령어들을 확인 가능합니다. 2022.03.24 - [IT/Linux] - 리눅스 재부팅(reboot) 명령어 명령어를 입력해서 리눅스 시스템의 전원을 끄는 방법을 알아보겠습니다. 1. systemctl 명령어 systemctl poweroff나 poweroff 명령어를 입력하면 바로 시스템의 전원을 끄는 것이 가능합니다. sudo systemctl poweroff systemctl없이 poweroff만으로도 시스템 종료가 가능합니다. sudo poweroff systemctl poweroff나 poweroff 명령어를 입력하면 바로 리눅스 시스템을 종료할 수 있습니다. 2. shu.. 더보기