본문 바로가기

서버인프라/리눅스29

리눅스 디렉토리 구조 📁 리눅스 디렉토리 구조 / (루트) 모든 디렉토리의 최상위 경로 /bin 기본 명령어 실행 파일 저장 /boot 부팅 관련 파일 저장 /dev 장치 파일 저장 /etc 시스템 설정 파일 저장 /home 일반 사용자 홈 디렉토리 /lib 공유 라이브러리 및 커널 모듈 /mnt 외부 장치 마운트 지점 /proc 가상 시스템 정보 /root 루트 사용자 홈 디렉토리 /sbin 시스템 관리자 명령어 /tftpboot TFTP 서버 파일 (네트워크 부팅) /t.. 2025. 5. 23.
📱 휴대폰의 지문, IMEI를 해킹당하면 벌어지는 일들 스마트폰은 이제 단순한 통신 수단이 아닌, 우리의 일상과 신분, 금융 정보까지 담고 있는 개인 정보 덩어리입니다. 그런데 이 스마트폰에는 고유한 지문 같은 번호가 있다는 사실, 알고 계셨나요?그 이름은 IMEI입니다.이 글에서는 IMEI란 무엇인지, 어떻게 확인하는지, 그리고 해킹이나 위조될 경우 얼마나 위험한 상황이 발생할 수 있는지를 상세히 다뤄보겠습니다. 📌 IMEI란 무엇인가?IMEI(International Mobile Equipment Identity)는 휴대폰의 고유 식별 번호로, 전 세계 어디서든 각 기기를 유일하게 식별할 수 있도록 만들어졌습니다.15자리 숫자로 구성되어 있고,통신사, 제조사, 수사기관 등이 기기를 구분하고 추적할 때 사용합니다.✅ IMEI 번호의 구성구분설명TAC (T.. 2025. 5. 21.
🔌 Socket.IO vs WebSocket — 무엇이 다를까? 실시간 웹 애플리케이션을 개발하다 보면 반드시 마주치는 두 가지 기술: WebSocket과 Socket.IO.둘은 겉보기에 비슷하지만, 실은 전혀 다른 수준의 기술이다. 이 글에서는 두 기술의 차이를 확실하게 짚고 넘어가 본다. 📡 1. WebSocket이란?WebSocket은 HTML5 표준 중 하나로, 클라이언트와 서버 간 양방향 통신을 가능하게 해주는 저수준 프로토콜이다.기존 HTTP의 요청-응답 구조와 달리, 한번 연결되면 양방향으로 자유롭게 메시지를 주고받을 수 있다.WebSocket의 특징✅ W3C와 IETF에서 표준화된 기술✅ ws://, wss:// 스킴 사용✅ 텍스트 또는 바이너리 메시지 전송 가능✅ 브라우저에 기본 내장 (new WebSocket() 사용) ⚙️ 2. Socket.IO.. 2025. 5. 20.
📘 systemctl과 journalctl로 서비스 로그 완벽 추적하기 리눅스 시스템에서는 데몬(서비스)의 실행과 로그 관리를 효율적으로 하기 위해 systemd 기반의 systemctl과 journalctl을 사용합니다. 오늘은 시스템 서비스를 실행한 뒤, 해당 서비스의 로그를 실시간 또는 기간별로 추적하고 파일로 저장하는 방법까지 전체 과정을 정리해보겠습니다. ✅ 1. 서비스 실행서비스를 수동으로 실행하려면 다음 명령어를 사용합니다.sudo systemctl start myapp.service 서비스가 정상적으로 실행되는지 확인하려면 아래와 같이 상태를 조회합니다.sudo systemctl status myapp.service Active: active (running)이 보인다면 서비스가 정상적으로 구동 중이라는 의미입니다. ✅ 2. 실시간 로그 확인 (tail처럼 보.. 2025. 5. 19.
🛡️ 서버를 노리는 eBPF 위협, Falco로 실시간 감시하라 program_output: enabled: true program: "/usr/bin/curl -X POST -H 'Content-Type: application/json' -d @- https://your-webhook-url"json_output: true👨‍💻 서론: 이제는 로그가 아니라 "행위"를 감시해야 할 때전통적인 백신은 파일 기반 시그니처를 중심으로 동작합니다. 하지만 최신 공격자들은 파일을 남기지 않고 커널 수준에서 직접 작동하는 **"행위 기반" 공격(e.g. eBPF 활용)**을 시도합니다.특히 eBPF(Berkeley Packet Filter)는 리눅스 커널에서 원래 성능 모니터링이나 네트워크 필터링 목적으로 설계되었지만, 최근에는 악성코드나 루트킷이 이를 악용해 보안 우회.. 2025. 5. 8.
AWS 인스턴스 메인 디스크 용량을 변경해 보자 현재 80GB 의 볼륨을 90GB으로 늘릴 것이다. 다음과 같이 90GB으로 용량을 증가 시킨다. 이제 서버에서 확인이 필요하다.위와 같이 90GB로 추가 된것을 알수 있고, 하지만 현재 사용 할 수있는 용량은 80G이다.여기서 우린 90GB 변경해 주는 작업을 할 것이다. >>> growpart /dev/nvme0n1 1CHANGED: partition=1 start=24576 old: size=167747551 end=167772127 new: size=188719071 end=188743647 변경된 사항을 보실 수 있다. 이제 90GB를 사용 할 수 있도록 했다. 이제 xfs_growfs를 통해 실제 디스크 90GB를 사용 할 수 있도록 하겠다.>>> xfs_growfs -d /meta-data=.. 2024. 8. 1.
LVM추가디스크 붙이기 이번에는 추가 디스크를 붙이는 것을 해보려 합니다.기존에 "/dev/data001/lv01" 을 가지고 있습니다. 다음 정보를 가진 디스크를 같은 VG에 묶을 겁니다. Disk /dev/vdc: 32.2 GB, 32212254720 bytes, 62914560 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes pvcreate를 인식 시켜줍니다.>>> pvcreate /dev/sdx 생성한 물리볼륨을 기존 물리볼륨에 추가합니다.>>> vgextend data001 /dev/vdc 추가된 공간을 .. 2024. 5. 9.
LVM 디스크 확장하기 클라우드 환경에서 10GB의 디스크를 사용하고 있고, 20GB를 추가하였다LVM을 다시 조정해야 한다. 위 문제를 풀어보도록 하겠다.현재의 디스크 상황은 다음과 같다. vdb는 30G로 셋팅되어 있다.vdb 253:16 0 30G 0 disk└─data001-lv01 252:0 0 10G 0 lvm /data001그리고, lvdisplay 를 확인 하면 다음과 같다.>>> lvdisplay --- Logical volume --- LV Path /dev/data001/lv01 LV Name lv01 VG Name data001 LV UUID ALnz7u.. 2024. 5. 9.
casaos 넌 뭐하는 녀석이냐? CASAOS??? 뭐하는 녀석이냐?? 뭘 하려고 만든건지 일단 알아보자. https://casaos.io/ CasaOS - A simple, easy-to-use, elegant open-source personal cloud system Open-source code meets community. Build personal servers, smart projects with better collaboration and like-minded members. casaos.io 공식 사이트이다. 개인 클라우드OS 라고 하는데 저걸 어떻게 딱 정의를 하기가 쉽지 않다. 그래서 설치를 해봤다. 이렇게 페이지를 확인 할 수 있고 설치 방법은. 한줄이다 curl -fsSL https://get.casaos.io |.. 2024. 2. 12.
VSCode 확장 프로그램 리스트 백업 및 복구 개인적으로 WSL에서 VSCode를 사용하는 것을 좋아합니다. 리눅스 환경에 윈도우 구성이라 쉘 명령어를 사용 할 수 있기 때문인데요, 이번에는 어떻게 WSL에서 확장프로그램의 리스트를 추출하여 복구하는지 알아 보도록 하겠습니다. VSCode에서 extensioinlist.txt 이름으로 백업을 합니다. code --list-extensions > list.txt 위와 같이 실행하면 list.txt라는 파일이 하나 생깊니다. 이 파일을 이제 가지고 복구를 할께요 복구진행 cat extensions.list | while read extension; do code --install-extension "$extension"; done 간단하죠? 2024. 2. 5.
zshell 변경 이쁘게즘 써보자 오늘은 ZSH변경에 대해서 설치해 보려 합니다. 예전에는 콘솔에대해 그렇게 생각이 많지 않았습니다. 콘솔이 중요한 몇가지 이유중 작업자의 기분도 있고, TEST와 DEV, PRD를 구분하는 용도로 할 수도 있습니다 그렇게해서 실수를 줄이는 것이지요. 그럼 zshell을 어떻게 사용하고 어떻게 셋팅하는지 한번 알아 보도록 하겠습니다. 처음 ZSH 를 사용하시는 분들이라면, 다음을 확인하시면 됩니다. https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH Installing ZSH 🙃 A delightful community-driven (with 2,200+ contributors) framework for managing your zsh configuration.. 2024. 2. 2.
Minio ObjectStorage Minio에 대해서 쓰려 했는데 계속 망설여 지다 글을 쓰게 됩니다. Minio는 우리가 AWS에서 사용하는 S3와 같은 객체형 스토리지 입니다. 객체형 스토리지가 예전에는 생소했는데, 클라우드가 보급이 확산되며 지금은 굉장히 많이 사용 되고 있는 스토리지 중 하나 입니다. 객체형 스토리지의 주요 특징은 다음과 같습니다: 객체 단위 저장: 데이터를 객체로 저장하며, 각 객체는 고유한 식별자(주로 URL 또는 고유 키)를 가지고 있습니다. 객체는 데이터 자체와 메타데이터(예: 파일 이름, 크기, MIME 유형 등)로 구성됩니다. 확장성: 객체 스토리지 시스템은 대용량 데이터를 처리할 수 있는 확장성을 제공하며, 수백만 개 이상의 객체를 저장하고 검색할 수 있습니다. 분산 아키텍처: 객체 스토리지 시스템은 .. 2024. 1. 19.
잘 사용하지 않는 docker의 always 도커를 사용하면서 가장 불편하다는 이야기를 많이 듣는 것이 서버 재 실행 후 docker컨테이너의 재실행 여부이다. 이럴떄 사용할 수 있는것이 always 옵션을 사용하여 실행하는 방법이다. 그렇지 않다면 우리는 shell로 운영 할 수도 있다. 사용 방법은 아래와 같은데 docker run -d --restart=always nginx '--restart' 플래그에는 always 외에도 다른 옵션들이 있습니다: no: 재시작 정책이 없습니다. 컨테이너가 중지되면 자동으로 재시작되지 않습니다. on-failure: 컨테이너가 비정상 종료(즉, 종료 상태 코드가 0이 아닌 경우)로 중지된 경우에만 재시작합니다. unless-stopped: 컨테이너가 사용자에 의해 명시적으로 중지되지 않은 경우, 항상 재시.. 2023. 10. 26.
SSH Tunneling Port forwarding 제목 그대로 SSH를 통한 포트포워딩이다. 사실 어렵지 않으나 잘 사용 하지 않는 기능 이기도 하고 윈도우에서는 Putty나 MobaXterm을 사용하는 경우 별 큰 무리가 없다. 하지만 맥 사용자나 SSH 터널 프로그램이 없을시 조금.... 난감해 지긴 한다. 일단 어려운 내용은 아니지만, 자주 사용하지 않으며, 우리가 주로 프로그램에 의존하여 사용하기 때문에 명령어로하는 통신에는 사실 크게 접하지 않을 겅우가 많다. 그래도 알고 있으면 좋은거다 뭐든^^ 아주 작은 차이를 알고 있는 것이 큰 차이를 만드는 것이다 (이 얘기를 꼭 명심하셨으면 한다.) 조건 목적지 Private Zone에 있는 Windows Server에 접속하여야 한다. Public존에 있는 Linux서버는 접근이 가능하다. Publi.. 2023. 10. 12.
Ubuntu 20.04 LTS 디렉토리 구조 이번에는 리눅스 20.04 디렉토리 구조 및 용도에 대해 알아보겠다. / |-- bin |-- boot | |-- grub | `-- vmlinuz |-- dev | |-- sda | `-- tty |-- etc | |-- fstab | `-- passwd |-- home | `-- username |-- lib |-- lib64 |-- media |-- mnt |-- opt |-- proc |-- root |-- sbin |-- tmp |-- usr | |-- bin | |-- lib | `-- share `-- var |-- log |-- mail `-- www 리눅스 기본 구조는 위와 같다 대부분 비슷하다. / (Root 디렉토리) 모든 파일과 디렉토리의 시작점입니다. Linux에서는 모든 것이 파.. 2023. 8. 7.
리눅스 에서 압축과 압축 해제 기초적인것들 이지만, 자주 잊어 먹어서 항상 찾게 되는 그런 내용이다. gzip 그리고 tar 윈도우처럼 gzip이 압축하기 편하면 좋을텐데 우리가 사용하듯이 사용하기 불편한 사항들이 많다. 그래서 하나하나 알아가보자. gzip을 이용한 압축이다 아래와같이 입력하면 test.txt 파일에 대해서 압축되어 text.txt.gz 파일이 생성된다 gzip test.txt 그리고 압축 해제 방법은 다음과 같다. gunzip test.txt.gz 위와 같이 실행하면 압축이 해제 된다. 다음은 압축율을 지정해서 압축하는 것이다. -1 에서 -9 까지이고 -9로 지정시 가장 높은 압축률을 실행한다. 다만 cpu사용량이 많을 것이며, 시간이 오래 걸릴 수 있다는 단점이 있고, 용량을 줄일 수 있다는 장점이 있다. gz.. 2023. 8. 6.
ppk -> pem 변경 mac이나 리눅스에서 ppk를 사용할 수 없기 때문에 pem으로 변경 해야할 경우가 있다. 요즘은 pem, ppk 선택해서 서비스를 해주기는 하지만 ppk키 파일을 pem으로 변경 해야 할 경우 어떻게 해야 하는지 알아보자 brew install putty 위와 같이 putty를 설치해서 puttygen 을 사용 할 수 있도록 한다. 그리고 아래 test.ppk라는 파일이 있다고 가정하고 아래와 같이 puttygen을 활용하여 변경해 준다. puttygen test.ppk -O private-openssh -o test.pem 위와 같이 실행하면 test.pem파일이 생성된다. 사실 어렵지 않지만 자주 사용하지 않음으로 인하여, 자주 잊는다. 2023. 5. 8.
Ubuntu 22.04LTS 계정 보안설정 안녕하세요 이번에는 Ubuntu 22.04 계정 보안 점검에 대해서 1가지만 구성하고 가려고 합니다. Ubuntu 22.04에서는 기존에 /etc/pam.d 가 확인이 되지 않습니다 그래서 신규로 설치 하고 이후에 설정을 해줘야 하는데 왜 빠졌는지에 대해서는 아직 확인해 보지는 못했습니다. 하지만 시스템 점검 항목중에서 계정에 관한 것들이 나올때는 꼭 확인해서 수정해 줘야 하는 상황이니 참고하셔서 사용해 보시길 바랍니다. 아래와 같이 libpam-pwquality를 설치해줍니다. apt-get -y install libpam-pwquality 위와 같이 해 주시면 아래와 같이 /etc/pam.d 가 생성되고 하위에 아래와 같은 파일들 우리가 이전 20.04에서 봐왔던 파일들을 확인 하실 수 있습니다. ... 2023. 2. 21.