
무지성으로 어떤 웹 혹은 앱을 만들지는 생각하지도 않았고 그냥 업무에서도 많이 쓰는 netstat과 docker를 일단 설치하였다.
그리고 ssh로 붙어서 vscode 내에서 작업할 생각이었기 때문에 vs code에서는 remote-ssh 플러그인을 설치 후 서버 내에서는 ssh pem 키를 생성하여 매 번 비밀번호로 붙는 것이 아닌 해당 파일로 붙게끔 설정하였다.
# 서버 내
ssh-keygen -t rsa -b 2048 -m PEM -f ~/.ssh/ssh_access_key.pem
cd ~/.ssh
cat ssh_access_key.pem.pub >> authorized_keys
# 내 pc .ssh 디렉토리로 ssh_access_key.pem 파일 복사
# vs code 내 remote-ssh 내 config 설정
Host pearl-sv
HostName { server ip }
User { username }
Port { port }
IdentityFile ~/.ssh/ssh_access_key.pem
해당 작업들을 하다가 히스토리를 찍을 때 명령어만 보이는데 해당 명령어를 언제 사용했는지 추적하기가 어려울 것 같아 아래와 같이 전역적으로 설정해 두었다.
# 48 [2025-09-13 10:59:45] history
# root에서 /etc/profile 에 설정
export HISTTIMEFORMAT="[%F %T] "
설정을 하다 보니 초까지는 나오나 ms 단위까지는 불가하다고 한다.
히스토리에 대한 감사 대시보드나 감사정보를 저장할 수 있는 무언가가 필요할 것 같다고 생각했다.
레알로다가 쓸데없을 수도 있는데 막상 흥미를 느꼈다.
.bash_history는 모든 유저들이 들고 있기 때문에 해당 .bash_history를 한 곳으로 모아 매일 자정 같은 시간에 스케쥴러를 돌려 모든 사용자의 명령어를 수집하는 것. 물론 수집된 데이터에 대해서는 root 유저 외 관리자 급의 사용자만 볼 수 있다.
찾아보니 ubuntu 24.04.3 LTS 버전에서 auditd와 pam_tty_audit, sudo I/O, aureport/ausearch, elastic으로 로그 조합 및 요약, 집계 그리고 대시보드까지 구성할 수 있다고 한다.
해당 것들을 도커 모듈로 구성하여 해보는 것도 재밌을 것 같다는 생각이다.
되는 것에는 적용하고 안 되는 것에는 깔끔히 포기하여 그냥 감사정보 저장 및 대시보드 구성으로 해보고 싶었다.
여러 가지 하던 도중 서버 내 date 가 UTC 기준이어 KST로 변경하였다.
date # UTC
ls -al /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
date # KST
기본적으로 docker는 root 권한이 필요하다. 하지만 나는 일반 사용자 계정인 내 계정으로 docker를 사용하고 싶기 때문에 아래와 같이 설정을 하여 해결했다.
$ docker ps
# permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/containers/json": dial unix /var/run/docker.sock: connect: permission denied
$ sudo usermod -aG docker { 일반 사용자 }
$ sudo chown root:docker /var/run/docker.sock
$ sudo systemctl restart docker.service
$ sudo systemctl daemon-reload
$ sudo newgrp docker # (새로운 셸에서 즉시 적용되어 docker ps 명령어 사용 가능)
다시 돌아와서 auditd와 auditbeat를 같이 활성화하여 사용하면 오류가 난다는 말들이 있다.
그래서 auditd, pam_tty_audit, sudo I/O의 로그를 filebeat를 사용하여 es로 적재하고 kibana를 통해 대시보드 구성을 할 생각이다.
audit.rules 에 룰을 추가할 수 있다고 하는데 룰에 어떤 걸 추가할 지도 생각해 봐야겠다.
일단 해당 로그들의 경로를 /var/log 가 아닌 /data/logs/{auditd, pam_audit, sudoIO} 등으로 경로를 변경할 생각이다. 최상위 ( / ) 디렉토리의 저장공간이 20G 밖에 안 된다는 점을 고려하면 /data 디렉토리에 넣는 게 서버 관리 면에서 좋을 것이라고 생각한다.
'끄적끄적' 카테고리의 다른 글
노트북에 ubuntu server 올리기 - 1 (0) | 2025.09.12 |
---|
많은 생각들을 가지고 있고 사람들과 대화를 하는 것이 즐거운 펄의 스페이스입니다.
즐거운 하루 되셨으면 좋겠습니다😊