본문 바로가기

네트워크10

postgresql 로그인 실패 횟수에 따른 접속 제한 설정 [목적] postgresql 혹은 API 서버 등 시스템 자원에 무작위 로그인 시도를 할 경우 해당 IP를 차단해야한다. 무작위 대입 공격 방어 보안 솔루션인 fail2ban을 사용하여 보안 취약점은 보완한다. 제약 조건 - mdrm-postgres의 이미지는 busybox를 베이스 이미지로 두고 있으므로 추가적인 소프트웨어 설치에는 라이브러리 의존관계에 의해 설치가 힘들다. 그렇기에 ‘postgresql 로그인 실패 횟수에 따른 접속 제한 설정’을 진행하려면 host레벨에서 소프트웨어를 설치하여 접근 제한 설정을 진행해야 한다. - busybox : 리눅스 상에서 자주 사용되는 명령어들을 단일 바이너리로 패키징되어 제공하는 경량 소프트웨어. 패키지 관리자 및 라이브러리가 존재하지 않음. [ fail2b.. 2023. 8. 10.
nginx, blue-green 배포 [ 목적 ] 토이 프로젝트에서 nginx를 사용할 일이 있어서 좀 더 딥하게 이해하기 위해 이 글을 작성한다. [ nginx란? ] nginx는 웹 서버이다. 위 사진 처럼 여러 서버로 로드밸런싱을 할 수 있는 리버스 프록시 서버 역할을 수행한다. 우리 역시 위 사진 처럼 nginx를 사용하고 있고, 지금은 단일 서버로 구성해놓았지만, 여러 서버로 컨테이너를 늘리면 nginx가 컨테이너별로 로드밸런싱을 해 줄 수 있다. [ nginx의 동작 방식 ] nginx는 비동기 이벤트 기반( event driven )아키텍처로 요청을 처리한다. nginx는 하나의 고정된 마스터 프로세스와 워커 프로세스를 만들어서 사용하기 때문에 요청이 들어오더라도 새로운 프로세스, 쓰레드를 만들지 않는다. 또한 비동기 방식을 c.. 2023. 7. 27.
소켓과 HTTP - 네트워크 소켓의 정의 컴퓨터 네트워크 상에서 프로세스들 간에 양방향 통신을 가능하게 해주는 소프트웨어 인터페이스 양방향 통신이 가능한 stateful한 프로토콜 - HTTP의 정의 웹 상에서 서버와 클라이언트 간에 데이터를 주고 받기 위한 프로토콜 연결 상태를 유지하지 않는 stateless한 프로토콜 TCP 소켓 연결을 하고 유지되는 정보는 다음과 같다. 송신 버퍼(Transmission buffer): 전송할 데이터를 임시로 저장하는 버퍼 수신 버퍼(Reception buffer): 수신한 데이터를 임시로 저장하는 버퍼 시퀀스 번호(Sequence number): 전송되는 데이터의 순서를 유지하기 위한 번호 확인응답 번호(Acknowledgment number): 수신한 데이터의 순서를 확인하기 .. 2023. 2. 22.
~.ssh 폴더 및 ssh 접속 원리 .ssh 폴더에 대해서 알아보려고 한다. ssh 통신을 하기 위해서는 서버/목적지의 pair키 ( public, private ), 클라이언트의 ( public, private ) 키가 필요하다. 해당 키들을 관리하는 곳이 .ssh 폴더이다. known_hosts : 내가 다른 노드에 접속할 경우, 그 노드에 퍼블릭 키가 등록됨. authorized_keys : 다른 노드가 내 서버에 접속하려고 할 때, 그 노드의 퍼블릭키가 등록됨. id_rsa : 자신의 ssh 개인키 id_rsa.pub : 자신의 ssh 공개키 known_hosts는 자동으로 등록이 되고, authorized_keys는 직접 등록해야 해당 클라이언트가 접속이 가능해짐. ssh 접속 과정 1. 접속 요청 2. 키 암호화 알고리즘 지정 .. 2023. 1. 7.