ESukmean’s Blog
짧은 글들을 주로 작성합니다.
-
SSL 인증서 만료일 확인 도구
https://www.esukmean.com/tools/ssl-certification-expire-date 내가 도와주는 곳이 있다. 이곳의 유료 서비스중 하나는 안정성을 위해서 별도의 서버에 독립된 서버 프로그램을 돌리는 것이다. 흔히 보는 Enterprise 플랜(다른 환경과 절대적으로 분리·독립된 서비스)를 생각할 수 있다. 서비스가 계속되며 관리해야 할 서버가 많아졌다. 그러면서 SSL의 인증서 확인이 번거로워졌다. 내부 통신에서는 모두 SSL을 사용하기 때문에 각 서비스(DB, nginx, 그외 서버 데몬등)의 인증서 상태를 확인해야…
-
리눅스 Secondary VNIC 붙이기 (Oracle Cloud): 드라이버 로딩 오류
TL;DR 디도스와의 전쟁 내가 도와주는 서비스 중에 한 곳이 요즘 디도스로 골머리를 앓고 있다. 이 서비스는 분 단위로 디도스를 받고 있다. 한번 공격이 오면 5분간 지속된다. 그러고는 몇 시간 동안 잠잠하다. 잠잠한 기간이 한시간일 때도, 3시간일 때도, 그 다음날이 될 때도 있다. 서버가 다운됐다는 알림을 받고 조치를 취하려고 보면 이미 물러간 뒤다. 이 문제가 몇일…
-
PPT 추가기능 사용시 오류발생
문제 해결 Micorsoft 365가 Office 스토어의 추가기능을 개별적으로 취득하고 실행하지 못하도록 구성되었습니다. 라는 오류는 학교·기업용 계정으로 파워포인트 또는 Office 제품(엑셀, 워드등)을 사용할 때 발생한다. 학교나 회사의 정책상에서 “추가기능 개별 취득 허용”을 켜지 않으면 발생한다. 이 문제를 해결하려면, 조직의 관리자에게 해당 옵션을 켜달라고 해야한다. 아니면 다른 계정이나 로그아웃 한 채로 사용해야 한다. 근본적인 원인은, 해당 조직에서…
-
Syn Flood 방어기 – Oracle Cloud(OCI) 에서
tl;dr VCN 설정중 보안목록 부분에 각 rule의 stateful, stateless 여부를 선택하는 칸이 있다. 커널을 아무리 튜닝해도 SYN Flood로 인해 VNIC의 conn track이 꽉 차버리면 패킷자체가 넘어오질 않는다. 서버 운영중에 SYN Flood를 당하는것 같으면 이 부분을 꼭 확인해 보자. 해당되는 경우, Observation -> Service Matrix에서 “Ingress Packets Dropped by Full Connection Tracking Table” 그래프가 꽉 차는것을 볼 수…
-
Oracle Data Modeler 에서 pdf · 인쇄시 한글깨짐
저번 주말에 서비스 아키텍쳐를 급하게 그려볼 일이 생겼다. 그나마 익숙한 Oracle의 Data Modeler로 아키텍쳐 구상을 그려보았는데, 문제가 하나 발생했다. 인쇄를 하거나 PDF로 결과물을 변환하면 한글이 깨지는(보이지 않는) 문제가 생긴 것이다. 화면이나 SVG, HTML, 이미지 파일로 변환하면 잘 나왔는데 정작 인쇄 · 출력 하거나 PDF로 변환하려니 문제가 발생하였다. 해결법 문제의 근원은 폰트 로딩에서 비롯된다. 설정을 통해 한글이 포함된 폰트를 불러오게끔 하면 해결된다. 우선, SQL Data Modeler가 설치된 폴더를 연다. 그리고 datamodeler\bin 아래로 들어간다. 해당 폴더 내에 datamodeler.conf 라는 파일이 있을 것이다. 해당 파일을 메모장등으로 연다. 파일의 중간 즈음에 다음과 같은 내용이 있을 것이다. 두번째 줄의 주석을 제거하고 맑은고딕을 불러오도록 수정한다. 아래와 같이 바꾸면 된다. 만약 해당하는 줄이 없으면 그대로 붙여넣자. 붙여넣은 후 저장을 하고 Data Modeler를 재시작 하면 적용된다. 맑은고딕 외 다른 폰트로 설정해도 된다. 몇몇 폰트는 읽어오는게 안되는것 같긴 하다. 사실 필자는 Noto Sans로 설정하고 싶었다. 하지만 아쉽게도 읽어지지 않았다. 혹시나 해서 ttf 파일을 직접…
-
GitFS 설치 및 사용
어제자 HackerNews에 GitFS에 대한 글이 올라왔었다. GitFS는 이름에서 엿볼수 있듯, Git을 파일 시스템처럼 사용할 수 있게끔 해주는 파일 시스템 구현이다. Python으로 Fuse 구현을 한 것이기 때문에 왠만한 OS에서 문제 없이 동작한다. 일반 Git도 clone을 하면 읽고 쓰기가 가능하다. 그럼에도 GitFS를 쓰는 이유는 자동 커밋, 푸시, 패치를 해 주기 때문이다. git fetch의 경우 설정한 주기마다 서버에서 읽기를 시도한다. FUSE 구현으로 통해 파일이 새로 생겼거나 수정됨을 파악하여 알아서 commit과 push까지 해 준다. (이런식으로: https://bitbucket.org/ESukmean/gitfs-test/src/master/) 사용하려면 많은곳에서 쓸 수 있을듯 하다. 여러 서버에 동일한 파일들을 배포해야 할 때나, 수정이 빈번하여 매번 git commit을 하기 귀찮은 작업장에서 사용하기 딱 좋다. 버전관리 또한 깔끔하기 때문에 작업물을 저장하는…
-
카카오톡 멀티프로필 생일 궁금증
저번달에 내 생일을 맞아서 카카오톡 생일 알림기능을 조금 살펴보았다. 나는 전화번호가 두개고, 아이폰과 안드로이드 폰을 같이 사용한다. 아래 내용은 아이폰의 카카오톡과 안드로이드의 카카오톡을 교차로 확인한 내용이다. 추가로 지인분을 통해서 한번더 검증하였다. 멀티 프로필에서도 생일 알림이 나오는가? 나온다. 멀티프로필이어도 생일임은 정상적으로 나온다. 메인 프로필 설정에서 생일 알림을 끄거나 켤 수 있고, 멀티 프로필은 메인 프로필에서의 설정을 따라간다. 멀티프로필만 따로 생일 알림을 켜거나 끌 수는 없어 보인다. 생일 알림 기능을 켜거나 끄면 즉시 반영되는가? 아니다. 의외인 부분이어서 놀랐는데, 프로필 설정에서 “생일 알림”을 켜거나 꺼도 몇시간 후에 적용이 된다. 정확히 몇시간 후에 알림이 작동하거나 꺼지는 개념은 아닌듯 하다. 아마 서버 내부에 생일자 명단이나 프로필…
-
SSL 인증서의 DNS 이름을 통한 서버 알아내기
자신의 서버 IP를 숨기기 위해 Cloudflare같은 CDN을 이용하는 경우가 종종있다.. 이러한 CDN(일종의 Proxy 시스템)을 이용하면 DNS 조회를 했을 때 실제 서버의 주소 대신 해당 CDN의 노드 IP주소가 표시된다. 서버의 실제 IP가 노출됨을 막음으로서 DDos공격이나 기본적인 해킹 시도를 줄이거나 어렵게 만들수 있다. CDN이나 표면 서버를 앞에 두면 실제 핵심(코어) 서버의 주소를 가릴수 있다. 그렇지만 서버 프로그램에 설정을 잘 못하면 모두 헛수고가 될 수도 있다. 주의를 가져야 하는 부분은 SSL 인증서의 DNS 필드이다. SSL 인증서에는 발급대상 정보와 “도메인 주소” 주소가 담겨있다. SSL 인증서만 받아낼 수 있으면 해당 서버가 어디에 소속된 서버인지 쉽게 판단할 수 있다는 말이다. 서버의 SSL 인증서는 어떻게 받아낼수…
-
통화 녹음 솔루션: 스위치
최근 KT PC제한 시스템에 대해 포스팅 하였다. 해당 글을 보면 중간에 담당 고객센터에 전화하여 몇가지 안내를 받았다고 적혀있다. 업무용 통화나 고객센터에 따지기 위해 통화 할 때는 내용을 정리하고 종합하는것이 중요하다. 최소한 되돌려 듣기는 꼭 필요하다. 이를 위해 스위치 라는 앱을 통하여 통화를 하였다. 꽤나 물건인 듯 하여, 이번 글에서 다루어 보려고 한다. 스위치 란? ‘스위치’ 란 자동으로 통화를 녹음하고 텍스트 변환등을 통해 정리해 주는 SaaS 제품이다. 요즘 스마트폰에서는 ‘통화 녹음’ 기능이 빠지는 경우가 많다. 통화 녹음 기능이 있다고 해도 어디까지나 말 그대로 ‘녹음’까지밖에 되지 않는다. 공적인 통화일수록 상대방이 무슨 말을 했고, 내가 어느 범위까지 말을 했는지 확인할 수 있는게 꼭 필요하다. 이때 스위치를 이용하면 자동으로 통화를 녹음해 줌은 물론, 텍스트 변환을 이용하여 빠르게 전화 내용을 확인 할 수 있다. 스위치를 통해 통화를 하면 해당 앱 내에서 빠르게 대화 내용을 볼 수 있다. https://connect.getswitch.app (스위치 커넥트)를 통해 PC를 비롯해서 여러 다른 기기에서 조회 할 수도 있다. 위의 캡쳐는 실제로 KT 고객센터와 통화하면서 자동 녹음 및 텍스트 변환된 내용을 스위치 커넥트 페이지에서 찍은 것이다. 필요하다면 통화마다 ‘태그‘와 메모(통화 노트)를 추가 함으로서 빠르게 통화 내용을 찾거나 요약할 할 수도 있다. 첫화면에서 ‘태그’ 기반으로 통화를 모아볼 수 있기에 통화후 테그를 붙여주는 것 만으로도 빠르게 통화 기록을 찾을수도 있다. 통화의 내용을 빠르게 공유할 수도 있다. 스위치를 처음…
-
KT PC대수 제한 경험기(?) (추가단말 검사로 인한 웹소켓 장애 체험기)
최근에 웹소켓 서비스쪽 작업중에 이상한 문제가 발생했다. 문제가 없던 웹소켓 서버에 접속이 안되는 문제가 발생한 것이다. 새로고침도 여러번 하고 브라우저도 바꾸어보아도 여전히 접속이 불가능했다. 지인분들을 통해 나에게만 발생하는 문제임을 확인했다. 그제서야 뭔가 문제가 있음을 느끼고 무슨일이 일어나고 있는지 살펴 보았다. WS 요청을 했는데 200이 온다고? 가장 먼저 개발자 도구를 열어보았다. 개발자 도구에서 네트워크 패널을 보면 브라우저가 어떻게 통신을 했는지 간단하게 볼 수 있다. 네트워크 패널을 이용하여 웹소켓 요청을 찍어봤는데, 응답 코드로 101이 아닌 200이 오는것을 확인하였다. WS upgrade를 요청하면 101이 나와야 함이 정상인데 200이 온 것이다. 해당 웹소켓 서버는 내가 제작을 한 것이었는데, 기억에 분명 200을 리턴하는 코드는 작성한 적이 없었다. 혹시 특정 상황에서 내가 200을 리턴하도록 한 것이 있나? 해서 살펴 봤는데 전혀 없었다. 또한 저런 응답헤더를 찍어내는 코드는 전혀 없었다. 웹소켓 백엔드 서버에서 발생하는 문제는 아닌것으로 판단하고, 그 앞단을 살펴 보기로 했다. 이 서버는 [유저 -> CDN -> WS서버] 의 접속 구조를 가지고 있다. WS서버의 문제는 아닌것을 확인했으니 CDN을 파 보아야 할 차례였다. 빠르게 해당 CDN을 경유하여 WS를 접속하는 다른 사이트를 찾아보았다. 결과는 정상이었다. 몇번을 시도해 보았고, 수신지 IP가 동일함 까지 확인해 보았다. 테스트 도중 위의 요청 헤더가 이상함을 한번 더 확인하였다. CDN 에서 요청을 내려줬으면 CDN 특유의 헤더가 찍혀야 하는데, 그런것이 전혀 없다. 일단 Response가 나온다는거면 아무리 CDN이 꼬여도 특정 헤더 하나정도는 찍혀야 마땅하다. 즉, 하나 정도는 묻혀 나와야 할 헤더가 없던 것이다. (예를 들어, Cloudflare라면 server: cloudflare 등의 헤더가 있어야 한다) 사실 처음에는 CDN 내부에서 오류가 발생했거나, GET / 요청이 캐싱되어서 GET…