전체 글 (80) 썸네일형 리스트형 DOCKER-USER 패킷 흐름 정리 지난번 포스팅에서 "도커가 UFW를 무시하는 문제"를 DOCKER-USER 체인과 ipset으로 해결하는 방법을 공유했습니다. 하지만 실제 운영 환경에 적용해보니 예상치 못한 복병을 만났습니다. 분명 외부 공격은 막았는데, 도커 빌드가 안 되거나 패키지 업데이트가 타임아웃에 빠지는 상황이었죠.원인은 하나였습니다. 패킷의 흐름(Flow)과 변환 시점을 간과했기 때문입니다.1. 패킷의 '신분 세탁': DNAT의 비밀우리가 docker-compose.yml에서 "80:8080"이라고 설정하는 순간, 리눅스 커널은 바빠집니다.외부에서 80번 포트로 패킷이 들어오면, 커널은 PREROUTING 단계에서 목적지를 8080(컨테이너 내부 포트)으로 즉시 바꿔버립니다. 그 후에야 비로소 우리가 설정한 DOCKER-US.. DOCKER-USER 규칙의 함정 지난번 포스팅에서 "도커가 UFW를 무시하는 문제"를 DOCKER-USER 체인과 ipset 화이트리스트로 해결하는 방법을 공유했었습니다.우분투 UFW가 도커 포트를 못 막는 이유와 해결 방법 (ipset 화이트리스트 [Docker] 우분투 UFW가 도커 포트를 못 막는 이유와 해결 방법 (ipset 화이트리스트)안녕하세요! 오늘은 우분투 서버에서 도커(Docker)를 배포할 때 반드시 체크해야 할 보안 이슈를 가져왔습니다.분명 ufw deny 8080으로 포트를 꽉 막아뒀는데, 외부에서 접속이 뻥뻥 뚫리는 당황스러gmls.tistory.com하지만 실제 운영 환경에 적용해 보니 예상치 못한 복병을 만났습니다. 어느 날 갑자기 도커 빌드가 안 되거나 apt-get update가 무한 타임아웃에 빠진다면?.. 우분투 UFW가 도커 포트를 못 막는 이유와 해결 방법 (ipset 화이트리스트) 안녕하세요! 오늘은 우분투 서버에서 도커(Docker)를 배포할 때 반드시 체크해야 할 보안 이슈를 가져왔습니다.분명 ufw deny 8080으로 포트를 꽉 막아뒀는데, 외부에서 접속이 뻥뻥 뚫리는 당황스러운 경험... 혹시 해보셨나요? 도커 배포 시에는 방화벽을 정말 잘 확인해야 합니다. 왜 이런 일이 생기는지, 그리고 제가 직접 적용한 확실한 해결법까지 깔끔하게 정리해 드릴게요.1. 왜 내 방화벽은 도커 앞에서 무용지물일까?우분투에서 보통 UFW를 사용해서 방화벽을 관리하죠. 하지만 도커는 실행될 때 시스템의 iptables 규칙을 직접 건드립니다.문제는 도커가 만드는 규칙이 UFW가 만든 규칙보다 우선순위가 높다는 점이에요. 패킷이 UFW가 "어라? 이거 막아야 하는데?"라고 판단하기도 전에 도커가.. 크기가 작은 부분문자열 안녕하세요! 오랜만에 프로그래머스 문제를 풀어봤습니다. 난이도 1의 연습문제입니다! 문제풀러 GO! 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제 이해 t의 부분문자열 중에서 부분문자열이 나타내는 수가 p보다 작거나 같은 것이 나오는 횟수 리턴 부분 문자열과 특정 문자열과의 비교이기 때문에 첫 번째 인덱스부터 t의 길이와 p의 길이의 차이까지 순회하며 문자열을 추출하는 방식으로 문제 풀이가 가능할 것 같다. 해결 방법 첫 번째 인덱스부터 t의 길이와 p 길이의 차이까지 순회하며 substring(idx, idx + p.length) 로 문.. Elasticsearch에서 대용량 인덱스를 관리하는 방법(with. Index template) 대용량의 데이터를 저장해야하는 경우 보통 rolling 방식을 통해 index를 나누어서 관리한다. rolling은 날짜별로 혹은 설정된 용량에 도달했을 경우 ES에서 자동으로 저장된 index를 보관하고 새로운 index를 생성하여 해당 index에 데이터가 저장되도록 하는 방식이다. index가 rolling되면 특정 주기를 기준으로 새로운 index가 생성될텐데, index 생성 시에는 mapping과 settings를 설정해야한다. template을 생성하면 특정 패턴의 인덱스가 생성될 때, 지정된 설정이 자동으로 적용되도록 할 수 있다. rolling이 되면 인덱스가 여러개 생성될텐데, 이러한 모든 인덱스를 하나의 인덱스에서 사용하기 위해서는 template을 생성할 때, alias(별칭)를 설.. 검색엔진을 사용하는 이유 검색엔진 사용 이유 정보화 시대에서 우리는 방대한 데이터를 보유하고 있습니다. 하지만 아무리 데이터가 많아도 나에게 맞는 데이터를 얻기 위해서는 '검색'이라는 기능이 필요합니다. 그럼 DB에 데이터를 모두 저장한 후 LIKE 검색을 진행하면 될까요? 그렇게 검색을 진행한다면 대용량 데이터의 경우 검색 속도가 매~우 느려질 것입니다. 그래서 보통 검색을 하기 위해서는 따로 '색인'이라는 과정을 거치게 됩니다. '색인'이란 데이터가 검색될 수 있는 구조로 변경하기 위해서 원본 문서를 검색어 토큰들로 변환하여 저장하는 일련의 과정입니다. 색인이 완료되면 '인덱스'라는 색인 과정을 마친 결과물이 생성되며, 해당 인덱스에 검색을 진행하게 됩니다. Elasticsearch " Elasticsearch는 시간이 갈수.. ai, 인공지능이란 무엇일까? 이 글은 제가 읽고 있는 책의 일부 내용을 요약한 글입니다. "비전공자도 이해할 수 있는 AI 지식" 규칙 기반 인공지능 초기 인공지능은 if-then문으로 이루어진 규칙 기반 인공지능이었습니다. 물론 규칙은 사람이 만든 것이기 때문에 인공지능이라고 부르기엔 조금 어색했죠. 이렇게 처음에는 규칙과 데이터를 이용해 프로그래밍 한 후 정답을 도출하는 방식인 규칙 기반 방식이 인공지능으로 여겨졌습니다. 머신러닝 그리고 머신러닝이라는 기계학습 알고리즘을 활용하기 시작합니다. 말 그대로 기계가 학습을 하는 것입니다. 정답과 데이터만 넣어주면 머신러닝이 규칙을 도출해내죠. 머신 러닝이 활성화 되면서 예전에 나왔던 개념인 인공 신경망에도 관심이 쏠렸습니다. 인공 신경망은 인공지능이라는 개념이 나오면서 같이 언급된 내.. 테이블 해시 함수 문제 풀러 GO! 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 정말 문제에서 말하는데로 풀어보았습니다. col번째 컬럼의 값을 기준으로 오름차순 정렬하고(같을 경우 첫번째 컬럼을 기준으로 내림차순 정렬) row_begin번째 행부터 row_end번째 행까지의 각 행의 컬럼 값들을 행의 i로 나눈 나머지의 합을 구하여 그 합들을 비트 연산 한 값을 구하였습니다. import java.util.*; class Solution { public int solution(int[][] data, int col, int row_begin, int row_.. 이전 1 2 3 4 ··· 10 다음