무료로 Ubuntu Pro 를 활성화 하여 안전한 OS 사용하는 방법

HYEONG HWAN, MUN/ 7월 31, 2023/ 미분류/ 0 comments

이 글을 통해 Ubuntu LTS OS를 온전히 10년간 사용하도록 조치해 보자. * 이 글은 짝수년도 4월달에 출시하는 LTS 버전에 대해서만 다룹니다. 모든 Ubuntu LTS OS 사용자에게 권장됨. 내용을 읽어보고, 무조건 따라해 보세요. 당신이 개인 사용자 (Private User) 또는 5인스턴스 미만의 사용자라면, 이 글 내용대로 따라하기 당신이 기업 사용자 (Business User) 라면, 이 글 내용대로 따라하거나 또는 기본지원기간(5년)마다 OS 업데이트 하기   1. Ubuntu OS 의 생명 주기 (Ubuntu LifeCycle) 소프트웨어 또한 하드웨어처럼 수명이 있습니다. 한번 작성한 프로그램을 무한정 유지보수 하지는 않습니다. 참고 : https://wiki.ubuntu.com/Releases 간혹 End of Standard Support 와 End of Life 를 헷갈려하는 분들이 있던데, OS의 수명은 10년이니까 누군가 다른 말을 한다면 무시하시면 됩니다. Ubuntu LTS 버전 : 10년의 동작을 보장함. (5년의 일반 지원과, 5년의 기본OS 업데이트 지원,…

미래에셋증권 현금성자산 금리

HYEONG HWAN, MUN/ 7월 7, 2023/ 미분류/ 0 comments

미래에셋증권 퇴직연금 부담금납입이 되면 미래에셋증권현금성자산 으로 분류가 됩니다. 따로 상품을 매수하지 않으면 현금성 자산으로 남아 있습니다. 미래에셋증권 현금성자산 금리는 연 3.50% 입니다. (2023년 7월 7일 기준)   미래에셋증권앱 > 관리하기 > 계좌별종합잔고 메뉴에서 현금성 자산의 금액을 확인 가능합니다. 매일 이자가 붙기 때문에, D2 – D1 계산을 통해서 이율을 확인할 수 있습니다.    

direct 기가랜 연결후기

HYEONG HWAN, MUN/ 4월 18, 2023/ 미분류/ 0 comments

PC간에 파일 복사를 해야하는데, 최고 속도로 하고 싶어서 direct 기가랜으로 두 컴퓨터를 연결했다. 요즘엔 NVME SSD 를 사용하기 때문에 (예전 SATA 시절과는 달리) 디스크를 옮겨꼽기도 엄청 번거롭고 여의치 않더라.   아무튼 Network 로 옮겨야겠다고 결정함.   처음에는 로컬 기가공유기를 사용해서 통신했는데, 만족할 만한 속도가 나오지 않아서 PC-PC 끼리 다이렉트로 연결해 보았다. 네트워크 설계(VPC 설계) 할 수 있으면 적절한 값을 입력하여 두대의 PC를 연결할 수 있다. 어차피 IP Direct 연결이라서, Gateway 구성은 필요치 않고 서브넷만 잘 설정해주면 서로 통신할 수 있다.   1. 처음에는 1Gbps 속도로 전송했음. (그래봤자 120MB/s 속도임) 2. 타겟컴퓨터가 NVME SSD 이었음에도 불구하고 write 속도가 55MB/s (450Mbps) 로 줄어듬. (이 타겟 컴퓨터의 벤치마킹 프로그램 상으로 write 속도는 967MB/s 이었음.) SSD 의 남은 용량이 10% 미만이면 속도저하가 있다더니 그…

s3 tip

HYEONG HWAN, MUN/ 4월 5, 2023/ 미분류/ 0 comments

우선순위 규칙에서, 경로가 일치하더라도, 상위의 허용된 verb가 매칭되지 않으면, 다음순위의 handler 가 받아서 처리한다. 같은 경로이더라도 verb 에 따라서, 여러 origin 설정이 가능하게 되어있나보다. 복잡한 인프라 구성이 가능할 듯 함.

php max_execution_time 및 mysql 등 시간제어

HYEONG HWAN, MUN/ 2월 13, 2023/ 미분류/ 0 comments

관련 정의는 다음과 같다. https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time   max_execution_time int This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0. On non Windows systems, the maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details. Your web server can have other timeout configurations that may also interrupt PHP execution. Apache has a Timeout directive and IIS has a CGI timeout function. Both default to 300 seconds. See your web server documentation for specific details.…

rds cluster zerotime patch

HYEONG HWAN, MUN/ 2월 9, 2023/ 미분류/ 0 comments

    3) tc-domains2022 클러스터 February 09, 2023, 01:20 (UTC+09:00) Database cluster has been patched 2) tc-domains2022-instance-1 인스턴스 February 09, 2023, 01:15 (UTC+09:00) Attempt to upgrade the database with zero downtime finished. The process took 0 ms, 5 connections preserved, 0 connections dropped. See the database error log for details. 1) tc-domains2022-instance-1 인스턴스 February 09, 2023, 01:15 (UTC+09:00) Attempting to upgrade the database with zero downtime.   키워드 문구는 볼드 처리함. 신기하네. zero downtime. 아마 minor 한 부분 패치 후 reload 한것 같음.

미래의 유망한 사업 분야

HYEONG HWAN, MUN/ 2월 5, 2023/ 미분류/ 0 comments

AI에게 “미래의 유망한 사업 분야” 에 대해 질문하였고, 아래와 같은 답변을 받았다.   There are several promising business sectors for the future, including: Renewable Energy: With the increasing awareness about climate change and the need to reduce carbon emissions, the demand for renewable energy sources is expected to grow rapidly. Artificial Intelligence: AI is being increasingly adopted across industries, and its applications are vast, including automation, predictive maintenance, and personalized customer experiences. Healthcare: With an aging population and increasing demand for better healthcare services, the healthcare sector is poised for growth, particularly in areas such as telemedicine, genomics, and personalized medicine. E-commerce: Online shopping continues to grow in popularity and the trend is expected to continue. The market for e-commerce…

CloudFront Lambda 함수 삭제

HYEONG HWAN, MUN/ 11월 18, 2022/ 미분류/ 0 comments

1. 트리거는 표시가 부정확하다. 트리거에 안보여도 사용중일수 있음. 별로 신뢰하지 않음. 트리거에 보이다가도 몇번 수정작업 하다보면 사라져있는것을 볼 수 있음.     2. 삭제 해서 지워지면 안쓰고 있는것. CloudFront 에서 함수를 사용하면 replicated 상태가 된다. (어찌보면 당연한 동작임) 이러한 replicated 상태인 lambda는 삭제가 되지 않는다. CF 들어가서 모두 해제하면 삭제가능하게 바뀜.     https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-edge-delete-replicas.html      

올바른 비밀번호 암호화 알고리즘 선택하기 (안전하게 패스워드 저장하기)

HYEONG HWAN, MUN/ 11월 8, 2022/ 미분류/ 2 comments

    암호화에 대한 마음에 드는 설명글이 없어서 내가 하나 작성해 보려고 한다. 암호화(暗號化)란? 먼저 “암호화“의 단어의 뜻에 대해 알아보도록 하자. 많은 사람들이 암호화를 제대로 구현하지 못하는 이유는, 단어의 뜻을 올바르게 이해하지 않고 구현하기 때문이다. 암(暗) : 어두울 암 호(號) : 부를 호 어둡게 부르는 것을 암호라고 한다.   몇가지 암호화의 예제를 알아보자. 원본 메세지(original message) : HELLO 암호화 메세지 : H1E1L1L1O1 암호화 방식 : 각 문자 뒤에 1 문자를 삽입. 단점 : 암호화 방식(1을 제거)을 알면 손쉽게 원본을 알 수 있음 원본 메세지(original message) : HELLO 암호화 메세지 : HLL 암호화 방식 : 원본 메세지에서 모음(AEIOU) 알파벳을 제거. 단점 : 원본 메세지가 손실됨. HOLLA 같은 메세지와 동일한 암호화 결과를 만들어내는 충돌(collision)문제가 있음. 원본 메세지(original message) : HELLO 암호화 메세지…

developer tool 막는코드

HYEONG HWAN, MUN/ 10월 30, 2022/ 미분류/ 0 comments

debugger를 걸고 시간을 체크해서 막는다. 같은 라인으로 설정해서 never pause here 도 막는다. 난독화된 막는코드 <script type=”text/javascript”> (function(_0x58753b,_0x16ff52){var _0x135e8f=_0x5dcf,_0xde025=_0x58753b();while(!![]){try{var _0x31c520=-parseInt(_0x135e8f(0xc0))/0x1*(-parseInt(_0x135e8f(0xbb))/0x2)+parseInt(_0x135e8f(0xc8))/0x3+-parseInt(_0x135e8f(0xc3))/0x4+-parseInt(_0x135e8f(0xb7))/0x5+-parseInt(_0x135e8f(0xbe))/0x6+parseInt(_0x135e8f(0xba))/0x7+parseInt(_0x135e8f(0xb6))/0x8*(parseInt(_0x135e8f(0xb9))/0x9);if(_0x31c520===_0x16ff52)break;else _0xde025[‘push’](_0xde025[‘shift’]());}catch(_0x20ae29){_0xde025[‘push’](_0xde025[‘shift’]());}}}(_0x354f,0x2b9d7));var tryCount=0x0,minimalUserResponseInMiliseconds=0xc8;function check(){var _0x2920ff=_0x5dcf;console[_0x2920ff(0xbf)](),before=new Date()[_0x2920ff(0xb2)]();debugger;after=new Date()[_0x2920ff(0xb2)](),after-before>minimalUserResponseInMiliseconds?(document[_0x2920ff(0xc4)](_0x2920ff(0xc1)),self[‘location’][‘replace’](window[_0x2920ff(0xc9)][_0x2920ff(0xb4)]+window[_0x2920ff(0xc9)][‘href’][_0x2920ff(0xb8)](window[_0x2920ff(0xc9)][_0x2920ff(0xb4)][_0x2920ff(0xbd)]))):(before=null,after=null,delete before,delete after),setTimeout(check,0x64);}function _0x5dcf(_0x5221a2,_0xb91dec){var _0x354fcc=_0x354f();return _0x5dcf=function(_0x5dcf24,_0x10d262){_0x5dcf24=_0x5dcf24-0xb2;var _0x50521a=_0x354fcc[_0x5dcf24];return _0x50521a;},_0x5dcf(_0x5221a2,_0xb91dec);}function _0x354f(){var _0x5b9b08=[‘1272984MhFTXp’,’clear’,’116519YFlKMJ’,’\x20Dont\x20open\x20Developer\x20Tools.\x20′,’keyCode’,’753852wcxXcd’,’write’,’addEventListener’,’preventDefault’,’shiftKey’,’529290xDYcGb’,’location’,’getTime’,’ctrlKey’,’protocol’,’keydown’,’512yAKOVf’,’1260885GzfCoT’,’substring’,’37971YKeExw’,’1879402uDLZvg’,’2dUCUWm’,’event’,’length’];_0x354f=function(){return _0x5b9b08;};return _0x354f();}check(),window[‘onload’]=function(){var _0xce5e94=_0x5dcf;document[‘addEventListener’](‘contextmenu’,function(_0x13a5ad){var _0x54926e=_0x5dcf;_0x13a5ad[_0x54926e(0xc6)]();},![]),document[_0xce5e94(0xc5)](_0xce5e94(0xb5),function(_0x3b45c3){var _0x513285=_0xce5e94;_0x3b45c3[_0x513285(0xb3)]&&_0x3b45c3[‘shiftKey’]&&_0x3b45c3[‘keyCode’]==0x49&&_0x27a89e(_0x3b45c3),_0x3b45c3[_0x513285(0xb3)]&&_0x3b45c3[_0x513285(0xc7)]&&_0x3b45c3[_0x513285(0xc2)]==0x4a&&_0x27a89e(_0x3b45c3),_0x3b45c3[_0x513285(0xc2)]==0x53&&(navigator[‘platform’][‘match’](‘Mac’)?_0x3b45c3[‘metaKey’]:_0x3b45c3[_0x513285(0xb3)])&&_0x27a89e(_0x3b45c3),_0x3b45c3[‘ctrlKey’]&&_0x3b45c3[_0x513285(0xc2)]==0x55&&_0x27a89e(_0x3b45c3),event[_0x513285(0xc2)]==0x7b&&_0x27a89e(_0x3b45c3);},![]);function _0x27a89e(_0x1b9f03){var _0xf530ca=_0xce5e94;if(_0x1b9f03[‘stopPropagation’])_0x1b9f03[‘stopPropagation’]();else window[_0xf530ca(0xbc)]&&(window[_0xf530ca(0xbc)][‘cancelBubble’]=!![]);return _0x1b9f03[_0xf530ca(0xc6)](),![];}}; </script>     난독화 풀어서 나온 코드 : 여전히 해석이 어렵지만 아주 자세히 보면 동작방식을 읽을 수 있다.   <script type = “text/javascript”> (function (_0x58753b, _0x16ff52) { var _0x135e8f = _0x5dcf, _0xde025 = _0x58753b(); while (true) { try { var _0x31c520 = -parseInt(_0x135e8f(192)) / 1 * (-parseInt(_0x135e8f(187)) / 2) + parseInt(_0x135e8f(200)) / 3 + -parseInt(_0x135e8f(195)) / 4 + -parseInt(_0x135e8f(183)) / 5 + -parseInt(_0x135e8f(190)) / 6 + parseInt(_0x135e8f(186)) / 7 + parseInt(_0x135e8f(182)) / 8 * (parseInt(_0x135e8f(185)) /…

ERROR 2026 SSL connection error: SSL routines:ssl_choose_client_version:unsupported protocol

HYEONG HWAN, MUN/ 10월 26, 2022/ 미분류/ 0 comments

MySQL 8.0 Client 부터 SSL 연결이 기본으로 바뀌었다. ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol   command 마지막 파라미터에 -ssl-mode=disabled 를 추가한다. –ssl-mode=disabled   mysql client <=> mysql server 간에 network망이 신뢰가 되어 있어야 한다. (로드밸런서와 <=> Private Subnet Instance 처럼)   또는 SSL(TLSv1.2) 은 사용하지만 ssl_verify 는 하지 않고 사용하는 방법도 있다. 본인이 사용하고 있는 네트워크망을 얼마나 신뢰할수 있느냐의 차이인듯하다. 적절히 선택해서 쓰면 된다.   mysqldump -hdb-stage1.laeltest12345.com -uroot -p mydbname1 > mydbname1.221214.sql –ssl-mode=disabled –column-statistics=0  

nsurlsessiond data download 모니터링

HYEONG HWAN, MUN/ 10월 20, 2022/ 미분류/ 0 comments

nsurlsessiond 가 엄청나게 많은 데이터를 다운받고 있었다.   원인 및 해결책 소프트웨어 업데이트 자동 다운로드 기능 때문임. Settings > Software Update > Advanced > uncheck – “Download when available”   체크를 해제하면 즉시 Mac에서의 불필요한 데이터 통신이 사라집니다.  

DevOps 짧은 후기

HYEONG HWAN, MUN/ 10월 6, 2022/ 미분류/ 1 comments

DevOps 란? 일반적으로는 Build, Test, Deploy 하는것을 데브옵스라고 한다. 막상 해보면 별거 없다. 모두 자동으로 동작하고, test를 제외하고는 규정이 정해져있기 때문에 머리 쓸 일도 많지 않다.   나는 Deploy 및 Deploy 후의 Ops 부분의 업무만 하려고 이것저것 해봤는데, Infrastructure 라는게 Dev가 뒷받침 되어 있어야 하더라. 즉!! Ops를 하려면 Dev도 잘 알아야함.   개발을 모르는 기획자와 일하면 일이 많이 힘들다. 개발을 모르는 디자이너와 일하면 일이 많이 힘들다. 인프라스트럭쳐 관리자도 개발을 알아야 하더라.   A와 B서버가 서로 통신하는 이유를 알려면, Ops 인원이 코드를 직접 봐야하고 분석해야 한다. 이미 잘 돌아가는 대충 만들어진 소프트웨어의 인프라를 개선할때에는 생각보다 엄청 고생해야 한다.   예시 소프트웨어에, 링크 주소를 입력하면 해당페이지의 meta 데이터를 읽어와서 표시해주는 기능이 있다. 이 기능 때문에 서버의 outbound 443, 80 이 열려있다. 그리고…

AWS Managed IDS/IPS

HYEONG HWAN, MUN/ 9월 13, 2022/ 미분류/ 0 comments

오늘 보안리포트 검토하다가 발견한것.   어떻게 감지하는 것인지는 모르겠지만, SSH Brute Force 를 감지했다.   클라우드를 관리하다보면 내가 생성하지 않은 리소스도 관리해야할 경우가 종종 있다. 저 리소스를 확인결과, 나보다 직급이 높은 사람이 만든 것이더라. 아무튼 검토 후 적절히 처리하였음.   클라우드 관리는 Human Error 를 잘 살펴보아야 한다. — 덧붙여서, 나는 불필요한 계정에 대해서 Read Only Access 권한을 설정했는데, 나보다 직급이 높은 분이 root 계정을 사용해서 Administrator Access 로 권한을 수정하셨더라. (Cloudtrail 및 관리툴에 기록이 나옴) 나 이외에, 리소스 생성하는 것도 아닌데 왜 이런것을 하는건지 모르겠음. 관리자급 인원이라고 최고관리자 권한을 주는건가. 따지려다가 말았음.