본문 바로가기

Old Posts/Linux105

[Linux] ssh 터널링(ssh port forwarding) - Local / Remote / Dynamic Tunneling sh는 Secure SHell의 줄임말로 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜이다. 당연하게도 ssh는 원격 호스트로 접속하기 위해 가장 많이 사용된다. 그런데 ssh는 원격 호스트로의 접속과 더불어 ‘SSH Tunneling’ 혹은 ‘ssh port forwarding’이라는 재미있는 기능을 제공한다. SSH Tunneling(SSH Port Forwarding) 편의상 이후에는 그냥 SSH 터널링이라고 부르겠다. SSH 터널링은 프록시와 비슷한 역할을 한다. SSH 터널링을 사용할 수 있는 상황에 대한 예를 들어보겠다. Host A에서 Host B로 접근할 일을 생각해보자. Host A에 있는 어떤 앱의 클라이언트는 Host B에 있는 서버에 접속해야한다. 하지만 언제나 그렇듯 보안상 .. 2022. 6. 7.
[Linux] sar 명령어 사용법 - 디스크 IO 모니터링 sar 명령어는 System Activity Report의 약자로 시스템의 CPU, 메모리, 입출력 사용량 정보를 수집하고 리포팅하는 명령어다. 시스템의 리소스 사용 이력을 모니터링하고 파일에 저장한 후 리포팅 할 때 많이 사용한다. sar 설치 sar는 sysstat 패키지를 통해 설치할 수 있다. sysstat 패키지에는 sar를 비롯해 iostat, pidstat, mpstat 명령어가 포함되어 있다. $ sudo apt install sysstat $ sudo yum install sysstat sar 명령어 사용법 sar 명령어는 다음과 같은 문법으로 사용한다 $ sar [옵션] [인터벌] [횟수] 인터벌과 횟수 정보를 입력하지 않으면 시스템에서 기본적으로 수집하고 있는 지표를 보여준다. $ s.. 2022. 6. 5.
[Linux] iotop 명령어 사용법 - 디스크 사용량 모니터링 리눅스 시스템에서 디스크 입출력을 어떤 프로세스가 많이 유발하는지 모니터링해야 할 경우가 있다. 이 때, iotop 명령어를 사용하면 된다. iotop 설치 $ sudo yum install iotop iotop 명령어 사용법 iotop 명령어는보안 문제때문에 root 권한 혹은 NET_ADMIN capability를 필요로 한다. top 명령어를 실행하면 각 프로세스의 CPU 사용량과 메모리 사용량을 모니터링할 수 있는 것처럼 iotop 명령어를 실행하면 각 프로세스들의 디스크 입출력 정보를 모니터링할 수 있다. $ sudo iotop Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s Current DISK READ: 0.00 B/s | Current D.. 2022. 6. 4.
[Linux] apt와 apt-get 차이점 apt는 Advanced Packaging Tool의 약자로 우분투 같은 데비안 계열의 리눅스에서 사용하는 패키지 관리자다. 우분투 같은 데비안 계열의 리눅스에서 패키지를 설치할 때 apt install 혹은 apt-get install 을 사용한다. 어떤 글에서는 apt install을 사용하도록 설명되어 있고, 또 다른 글에서는 apt-get install을 사용하라고 설명되어 있다. apt와 apt-get은 어떤 차이일까? apt vs. apt-get 결론적으로 말하면 apt와 apt-get은 큰 차이가 없다. 그냥 내키는 대로 사용하면 된다. 원래 우분투를 비롯한 데비안 계열의 리눅스에서는 apt-get이나 apt-cache 같은 툴이 사용되어왔다. 오랜기간 사용되다보니 다양한 기능들이 추가되어 .. 2022. 6. 2.
[Linux] CentOS Failed to download metadata for repo ‘appstream’ 해결방법 CentOS에서 패키지 관리자인 yum이나 dnf를 사용하다가 'Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist'를 만나게 되는 경우가 있다. $ sudo yum update -y CentOS Linux 8 - AppStream 35 B/s | 38 B 00:01 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist CentOS를 위한 패키지 저장소의 주소가 잘 못되었거나 주소에 접속할 수 없기 때문.. 2022. 5. 26.
[Linux] CentOS 6,7,8 지원 종료 및 CentOS Stream 소개 CentOS는 'Community Enterprise Operating System'의 약자로 RHEL(RedHat Enterprise Linux)를 완벽하게 호환하는 오픈소스 리눅스 프로젝트다. RHEL의 안정성을 그대로 가져오면서도 무료로 사용할 수 있어 수 많은 개발환경과 서비스 환경에 설치되어 사용되고 있다. CentOS는 독립적인 오픈소스 프로젝트로 운영되어 오다가 2014년 RedHat에 인수된다. 상용 리눅스 RHEL을 만드는 RedHat에 인수되면서 CentOS가 언젠가는 서비스 종료되는게 아니냐는 우려가 있었는데 결국 2020년 CentOS의 서비스 정책이 변경되었다. 이제 CentOS 6, CentOS 7, CentOS 8 같은 버전들의 배포판은 사라지고 CentOS Stream이라는 .. 2022. 5. 25.
[Linux] OOM Killer 소개 및 사용법 OOM은 Out Of Memory의 약자로 직역하면 메모리 부족이다. 애플리케이션이 서버에서 동작하면서 대량의 메모리를 이용하게 될 경우 시스템 메모리가 부족해질 수 있다. 그러면 운영체제의 설정에 따라 대량의 메모리를 사용하는 애플리케이션이 강제로 종료될 수 있다. OOM Killer 시스템 메모리가 부족해지면 리눅스 커널은 시스템의 정상적인 동작을 보장하기 위해 메모리를 흥청망청쓰는 애플리케이션을 강제 종료하게 된다. 리눅스 커널이 메모리를 확보하기 위해 실행하는게 OOM Killer다 OOM Killer는 점수를 매겨 가장 높은 점수를 받은 프로세스부터 강제 종료한다. 이를 OOM Scoring이라고 한다. 특정 프로세스의 OOM Killer 점수는 /proc/${pid}/oom_score 파일을 .. 2022. 5. 23.
[Linux] rlogin 명령어 설치 및 사용법 rlogin은 Remote Login의 약자로 호스트에 원격으로 로그인할 때 사용하는 명령이다. 호스트로 로그인 할 때, 아이디와 패스워드 등을 이용하는게 아닌 IP나 도메인 이름을 이용해 신뢰 관계를 맺는다. 특정 호스트에서 편하게 원격 로그인을 할 수 있지만 ip spoofing에 취약하다. rlogin을 비롯한 rsh, rcp 같은 r-계열의 명령에서는 두 호스트가 신뢰하고 있다는 것을 /etc/hosts.equiv, $HOME/.rhosts 등에 정보를 기록해 두는 것으로 표현한다. (/etc/hosts.equiv는 시스템 전체에 영향을 주는 파일이고, $HOME/.rhost 는 각 사용자별로 설정하는 파일이다) rlogin, rsh 설치 및 설정 $ sudo yum install rsh-serv.. 2022. 5. 13.
[Linux] numfmt 명령어 사용법 리눅스에서 쉘 스크립트를 작성할 때, 파일 사이즈 같은 숫자 데이터를 다루는 경우가 많다. 이 때, 숫자의 자리수가 많으면 가독성이 매우 떨어진다. 예를 들어 13631488 바이트라고 하면 정확히 어느정도의 양인지 딱 와닿지 않는다. 13MB라고 단위를 뒤쪽에 써줘야 숫자에 대한 감이 온다. numfmt 명령어 numfmt 명령어는 숫자를 사람이 읽을 수 있는 문자 형태로 변환해주는 명령어다. numfmt [OPTION] ... [NUMBER] 1MB 같은 문자가 몇 바이트인지 숫자로 풀어서 출력해주거나 1048567 바이트가 몇 MB인지 해석해서 출력해주는 기능을 제공한다. 예를 들어 $ numfmt --from=si 1M # 1M를 si 단위로 풀어서 출력 1000000 $ numfmt --from.. 2022. 5. 2.