반응형

오늘 오전 4시경부터 메일로 cron 작업이 실패했음을 알리는 알람 메일이 계속해서 수신되었다.

아침에 일어나서 이걸 확인하고 우선은 메일서버를 내린뒤 원인을 파악해보았다.

 

1. crontab 에 내가 등록하지 않은 watchdog 작업이 추가됨

2. 예전에 제거했던걸로 알고 있었던 사용자가 아직 살아있음

3. 그 제거했던 사용자로 crontab이 생성되어 계속 실행됨

 

#1. userdel 시도

- 해당 사용자가 프로세스에서 사용중이라며 제거가 되지 않았음

 

#2. pkill ID

해당 사용자가 사용하는 프로세스 강제종료. 그리고 userdel 을 실행하니 제거 되었음

 

#3. crontab 제거

/var/spool/cron/crontab 에 들어가 root 에서 설정한 작업 외의 cron 을 모두 점검하고 의심되는 cron 스케쥴은 모두 제거하였음.

 

#4. 실패한 crontab 작업만 메일 전송

MAILTO="" 을 선언해두기도 했지만, 기존 cron 작업 들의 뒤에 아래 부분을 붙여 실패한 경우에만 메일이 오도록 처리 추가.

 > /dev/null 2>&1
반응형
반응형

kakao sdk.js 는 로드되었을지 몰라도 latlng method 가 로드되기 전에 호출될 경우 발생하는 문제이다.

다음과 같이 수정하여 해결하였다.

 

sdk.js 호출시 파라미터에 autoload=false 를 추가해주었다.

<script
  async
  src={`https://dapi.kakao.com/v2/maps/sdk.js?appkey=${KAKAO_JAVASCRIPT_APP_KEY}&autoload=false`}
></script>

 

그다음 latlng 메소드가 호출되는 부분을 kakao.maps.load callback 처리해주었다.

 

useEffect(() => {
    if (kakao) {
      kakao.maps.load(() => {
        var container = document.getElementById('map'); //지도를 담을 영역의 DOM 레퍼런스
        var options = {
          //지도를 생성할 때 필요한 기본 옵션
          center: new kakao.maps.LatLng(Number(lat), Number(lng)), //지도의 중심좌표.
          level: 3, //지도의 레벨(확대, 축소 정도)
        };

        var map = new kakao.maps.Map(container as HTMLDivElement, options);
        var markerPosition = new kakao.maps.LatLng(Number(lat), Number(lng));

        // 마커를 생성합니다
        var marker = new kakao.maps.Marker({
          position: markerPosition,
        });

        // 마커가 지도 위에 표시되도록 설정합니다
        marker.setMap(map);
      });
    }
  }, [lat, lng]);
반응형
반응형

 

구매처: AliExpress

구매가격: 60,864원 (무료배송)

링크: https://ko.aliexpress.com/item/4001052636749.html?spm=a2g0o.order_list.order_list_main.47.2e74140fxgIh5h&gatewayAdapt=glo2kor

 

58975.0₩ 20% OFF|Xiaomi Mi AX3000 무선 라우터 메시 WIFI VPN 이중 주파수 256MB 5G 풀 기가비트 OFDMA 리피터

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

 

장점: 잘 동작한다. 기존 5Ghz wifi 가 사각지대를 가면 끊김 현상이 있었는데, wifi 6에 들어오고부터 음영지대가 해소되어 정말 좋아졌다.

단점: 중국 직구 버전을 구매시 중국어 버전으로 오기때문에, global version 인지 구매할때 확인이 필요해 보인다. 위에 링크를 드린건 중국어 버전이다. Chrome에서 자동번역을 켜두어서 쓰면되어서 문제가 되진 않았다. 

반응형
반응형

nginx 에서 proxy_pass 를 선언하였을때, api 서버에서 bridge 역할을 하는 서버의 IP를 client ip 로 인식하는 문제가 생겼다.

backend에서 client  ip 를 필요로 하는 상황이라, nginx conf 를 아래와 같이 변경해주었다.

 

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

 

하지만 이렇게 설정 하였을때에도 클라이언트에서 IP변조가 일어날 수 있는 가능성이 있다는건 인지해야한다.

 

반응형
반응형

현재 23년 12월, 유튜브 우회결제시 구글 계정에 결제국가가 고정 되어버려 문제가 생길 수 있다. 

평소 구글계정을 통해 앱 내 결제등을 하실 일이 없다면 해당이 안되겠지만, 내 구글 계정의 소속 국가가 우회하는 국가가 되므로 해외 우회결제시에는 별도의 구글 계정을 생성해 서브계정으로 사용하기를 권장한다.

 

아래 순서대로 진행하면 된다.

1. 구글 우회결제용 계정 별도 생성

2. Proxy VPN 앱 등을 설치 (저는 tunnelbear 를 사용했습니다.)

3. 유튜브에서 요금제 이전 화면까지만 접속해둔다.

4. VPN앱에서 아르헨티나, 또는 인도 접속

5. 결제창 접속, 카드정보 입력 (해외결제 가능한)

6. 완료

 

중간에 생길 수 있는 일

a-1. 5. 에서 해외결제가 차단될 수 있다. 신용카드 홈페이지를 가면 결제 주소지를 기준으로 결제 예외승인이 가능한데, 이를 추가해둔다. 

a-2. 5. 에서 차단되는걸 예외승인 하기 위해서는 구글 계정의 내 집 주소지를 a-1. 신용카드사 홈페이지에서 입력하는 정보와 동일하게 작성해야 한다. 구글맵 등을 통해 아르헨티나나 인도 현지 주소를 미리 뽑아놓고, 이를 구글계정에 입력해둔다음, 내가 사용할 신용카드사 홈페이지에도 동일하게 정보를 입력해주자.

a-3. 초대받을 가족도 동일한 국가여야 한다.... 가족요금제가 우리나라에는 허용이 안되어있어서 우리나라로 등록된 구글 계정은 초대받을 수 없다. 초대받을 사람도 별도 구글 계정을 생성하고, 해당 국가로 VPN접속을 해둔 상태에서 가족 초대를 수락해야 한다. 

a-4. 5. 를 자주 시도하다보면 시도한 카드가 구글로부터 일시 결제 정지 (특정 기간 정해지지 않았음. 보통 한달내 해제)가 된다. 그러므로 해외결제가 가능한 2~3개의 카드가 있으면 좋겠다.

 

난 현재 유튜브는 아르헨티나로 우회해 사용하고 있지만, 넷플릭스는 특정 시세가 저렴한 국가들에서 결제하는걸 "달러"로 바꿔버려 우회결제가 소용이 없게 되었다(;;;) 그래서... 넷플릭스만 국내 결제를 통해 제일 비싸게 주고 쓰고있다... 

반응형
반응형

메일로 notification 알람이 너무 많이와서, 그냥 netdata 를 제거하기로 했다.

그런데, apt-get remove netdata 가 먹히질 않았다. 

그래서 제거하는 방법을 찾아보았다.

 

#sudo systemctl stop netdata

#sudo systemctl disable netdata

#find / -name netdata-uninstaller.sh

#경로를 찾아보니 /usr/libexec/netdata/ 에 있었다.

# cd /usr/libexec/netdata

# ./netdata-uninstaller.sh --yes
반응형
반응형

오래된 사이트를 호스팅 하는 서버들은 항상 보안에 취약하고, 공격을 당하게 되어있다.

그렇게 공격을 당하면 서버에 해킹 스크립트, 홈페이지 등이 심어져 리소스를 갈취당하게 되는데

현재까지 몇년간 서버를 운영하며 당한 공격

 

1. 좀비서버화 및 DDOS 

스크립트가 심어져 내 서버로 공격을 해서 IDC상황실에서 리포트가 왔다.

서버 송신이 차단되고 포맷을 할수밖에 없었다.

 

2. 메일서버 relay 

내 메일서버를 통해 다량의 스팸메일을 뿌려댄다. 

덕분에 내 서버에서 postfix 를 지울수밖에 없었다.

 

3. /var/www/html 에 살림을 차린다.

모든 리눅스 서버의 웹서버는 보통 /var/www/html 을 기본으로 호스팅하는데, 그 경로에다가 php파일과 zip, tar.gz, sh 등 잡다한 파일들을 잔-뜩 올려놓는다.. 웹서버를 깔면 무조건 임의의 경로로 바꿔놓기를 추천.

 

4. crontab 으로 백도어를 구성한다.

이런 파일들을 찾아 제거해도 crontab 으로 스크립트를 실행해 다시 침투한다.

반응형
반응형

더치커피 메이커를 구매해서 내려 보았다.

원두통 안에 필터 한장을 깔고 그 위에 원두를 넣고 평탄하게 한다음 필터를 깔아주고

그리고 물은 300 ~ 450 ml 을 넣어봤는데, 계속 커피가 연하게 내려지는 것이었다.

 

문제점은 두가지였다.

 

1. 물길이 생겨 원두 전체가 내려지지 않았다

> 처음에 원두 전체에 물을 적셔 주거나, 뜨거운 물을 조금 부은뒤 저어 주고 그다음 평탄 작업 (집에 마늘 빻던 방망이로 누름 ㅎ)을 해주었다.

 

2. 물이 내려오는 속도가 빨랐다.

> 1초에 1방울 내려오는게 아니라 거의 10초에 1방울 내려오는걸로 했다. 15~20시간에 250~350 ml 정도 내리는것으로 조절했다.

 

이렇게 하니 아주 새까맣게 내려오기 시작했다. 특히 1번이 제일 포인트다. 아깝게 원두를 너무 많이 버렸다.. 

반응형

+ Recent posts