본문 바로가기
728x90
반응형

IT Security54

46. Linux 방화벽 제어 - firewall-cmd, rich-rule 등록 Linux firewall-cmd를 사용한 Linux 방화벽 정책 생성 및 제어의 마지막 포스팅이다. 지난 포스팅에서는 각 Zone에 간단한 객체를 추가/삭제함으로써 외부에서의 Linux 접속 허용/차단 여부를 확인해보았다. 지난 포스팅에서도 언급했듯이, firewall-cmd로 방화벽 정책을 간편하게 만들 수 있게 되었지만 조금 더 세부적으로 정책을 설정해야하는 경우 firewall-cmd의 옵션만으로는 디테일한 정책을 생성하기 어렵다. 따라서 firewall-cmd는 아키텍처 내부에 존재하는 iptables 명령어를 고스란히 사용하여 정책을 설정할 수 있도록 rich-rule이라는 옵션을 제공하는데, 이번 포스팅에서는 이 rich_rule의 사용 방법에 대해 정리해보려한다. 1. Rich-Rule 사.. 2024. 3. 27.
45. Linux 방화벽 제어 - firewall-cmd, Zone 내부 정책 생성 지난 포스팅에서는 firewall-cmd가 탄생한 배경과, firewall-cmd 정책 테이블의 구성에 대해 아주 간략하게 알아보았다. 이번 포스팅에서는 Zone 내부에 정책을 직접 설정하고 통신의 진행 여부를 확인해보려한다. 1. Zone 관련 정보 조회 정책을 생성하려면, Linux 방화벽에 어떤 Zone이 존재하고 있는지 파악하는 것이 선행되어야한다. 물론, 필자가 이전 포스팅에서 언급한대로 대부분의 Linux 기반 솔루션은 네트워크 말단에 위치하기 때문에 굳이 Zone에 Interface를 할당하지 않고 public에 필요한 서비스와 포트에 대한 정책을 만들어 사용하는 방법을 많이 사용하지만, 다른 서버와의 연동이 필요하거나, 조금 복잡한 구성을 진행해야하는 경우라면, Zone을 구분하여 정책을 .. 2024. 3. 4.
44. Linux 방화벽 제어 - firewall-cmd 개요 최근 사용하는 대부분의 Linux는 외부 통신을 제어하는 방화벽의 관리를 iptables가 아닌 firewall-cmd라는 명령어로 진행한다. * iptables 및 방화벽에 대한 기본 개념은 필자가 이전에 작성한 포스팅을 참고하자. - Linux - 리눅스 방화벽1, 방화벽 서비스 및 정책 확인 - Linux - 리눅스 방화벽2, 방화벽 정책(chain) 관련 명령어 - Linux - 리눅스 방화벽3, 방화벽 규칙(rule)관련 명령어 위의 포스팅 내용을 보셨던 분들이나, 기존에 iptables 명령어를 사용해보셨던 분들이라면 아시겠지만, iptables는 적용해야하는 옵션이 많고 작성해야하는 명령어 문구가 길기 때문에, 방화벽 규칙을 작성해서 적용하기가 상당히 까다롭다. 이러한 이유로 CentOS6에.. 2024. 3. 3.
43. Linux rpm 파일 만들기2 - spec 파일 macros 및 rpm 관리 지난 포스팅에서 spec 파일 및 테스트용 shell 파일을 사용하여 간단하게 rpm 패키지를 만들고 동작시켜보았다. 그리고 지난 포스팅의 마지막에서, rpmbuild 폴더를 여러 rpm이 공유해야한다는 문제점과, spec 폴더의 경로 관리의 어려움에 대해 간략하게나마 언급을 했었다. 이번 포스팅에서는 지난 포스팅에서 언급한 문제점을 피해 효율적으로 rpm 패키지를 관리할 수 있는 방법을 알아보려한다. 1. rpm마다 별도의 폴더로 관리하기 (rpmbuild 명령어 --define 옵션 사용하기) 지난 포스팅에서 만든 rpm 관련 파일과 폴더를 싸그리 지우고, 새로 rpm 패키지 2개를 신규로 생성해보려 한다. 하나는 일반 shell로 의미없는 문구 몇 줄을 출력하는 rpm, 다른 하나는 python 실.. 2023. 8. 14.
42. Linux rpm 파일 만들기1 - 기본 spec 파일 작성 및 rpm 생성 최근 개발 관련 프로젝트를 진행하다보니, 한 가지 개선을 했으면 하는 점이 하나 생겼다. 지금까지는 필자가 Linux 용으로 개발한 결과물을 단순히 tar 파일로 묶어 배포하는 방식을 사용해왔는데, 이 방식을 사용하면, 필자의 프로그램이 참고하는 config 파일과 log 파일 등을 Linux에서 권장하는 경로에 위치시키려면 설치 과정이 복잡해진다는 단점이 나타난 것이다(보통 Linux에 설치되는 프로그램의 설정파일은 /etc 폴더에, 로그 파일은 /var/log 폴더에 위치하고 있음을 생각해보자) 물론 tar 파일 내에 config나 log파일을 저장하는 폴더를 만들고 필자의 프로그램이 그 폴더들을 참고하게 만드는 것도 나쁘지 않지만, 개인적으로 사용하는 프로그램이면 모를까... 필자가 만든 프로그램을.. 2023. 8. 10.
[Docker & Kubernetes] 8. Docker 네트워크 1 - 기본 구조 이번 포스팅에서는 Docker 컨테이너가 어떻게 외부와 통신이 가능한지에 대해 알아보려한다. 지난 포스팅에서 기본적인 명령어 사용의 몇몇 예시 중, nginx와 같이 웹 서비스를 제공하는 컨테이너를 구동해 웹 브라우저에서 서비스가 잘 이루어지는 것을 확인해보기도 했다. nginx는 웹 서비스인만큼 기본 통신 포트가 80번으로 지정되어 있고, 필자는 이를 --publish라는 옵션을 통해 HostOS의 포트와 컨테이너 포트(80)을 맵핑하여 컨테이너를 구동했다. 그런데, 여기서 의문점이 하나 생긴다. nginx 컨테이너를 두 개 올렸다고 가정해보자. 두 컨테이너 모두 기본 포트인 80번을 서비스 포트로 사용한다. 1번 nginx는 HostOS의 8001번으로, 2번 nginx는 HostOS의 8002번으로.. 2022. 6. 1.
[Docker & Kubernetes] 7. Docker 매우 기본적인 명령어 사용법3 지난 두 개의 포스팅으로, Docker에서 가장 기본적으로 사용하는 명령어에 대해 알아보았다. 오늘은 기본 명령어에 대한 마지막 포스팅으로 docker 이미지 pull + 컨테이너 생성/구동을 한 번에 진행해주는 docker run 명령어와, 이미지를 Registry로 올리는 docker push 명령어에 대해 정리를 해보려 한다. 사실 지금까지 3개의 포스팅에서 작성한 내용은, docker를 사용하면 절대 사용하지 않을 일이 없는 명령어들이다. 지금까지의 명령어 외에도 추가로 알아봐야 할 명령어가 많지만, 그 내용을 모조리 포스팅으로 작성했다가 필자가 돌아버릴 수도 있기 때문에 중간중간 필요할 때마다 언급하면서 넘어가려 한다. 뻘소리를 조금 했다. 바로 시작해보자. 1. 이미지 Pull + 컨테이너 생.. 2022. 5. 25.
[Docker & Kubernetes] 6. Docker 매우 기본적인 명령어 사용법2 지난 포스팅에 이어, 계속 Docker의 기본 명령어 사용법에 대해 작성하려 한다. 지난 번에는 Docker 이미지를 공식 저장소에서 다운로드받고, 컨테이너 생성과 실행을 진행하며, 컨테이너와 이미지에 대한 모니터링 값이 어떻게 변하는지 확인해봤다. 이번 포스팅에서는 실행한 컨테이너의 중단, 재시작, 삭제, 이미지 삭제까지 진행해보려 한다. 1. 실행중인 컨테이너 중단 - docker stop {실행중인컨테이너이름 or ID} 지난 번 ubuntu 이미지를 컨테이너로 생성하고 실행할 때 컨테이너 이름을 ubuntu_test2로 지정한 것이 있다. 이제 필자는 구동중인 ubuntu_test2 컨테이너를 중단시킬 것이다. ubuntu_test2 컨테이너를 삭제하면, docker ps에서 나타난 2개의 컨테이.. 2022. 5. 24.
[Docker & Kubernetes] 5. Docker 매우 기본적인 명령어 사용법1 지난 포스팅에서 도커는 이미지를 기반으로 특정 환경을 동적으로 구현하는 컨테이너를 만들며, 이 이미지는 Dockerfile의 build로 형성할 수 있음을 알아보았다. 추가로 이미지를 Dockerfile로부터 build하는 과정에 들어가는 시간과 노력을 최소화하기 위해 Docker의 공식 Registry에서는 사용자들이 주로 사용하는 Docker 이미지를 제공하고 있다는 것까지 알아보았다. 이제 막 Docker 설치가 끝난 리눅스라면 컨테이너를 형성할 이미지가 없어 아무것도 구동을 할 수 없는 상태다. 따라서 이번 포스팅에서는 이 이미지들을 Registry에서 다운로드 받고, 컨테이너를 실행하고, 컨테이너 상태를 모니터링하고 다시 컨테이너와 이미지를 삭제하는, 기본적인 과정에 대해서만 다루어보려 한다. .. 2022. 5. 22.
[Docker & Kubernetes] 4. Docker의 동작 구조 이번 포스팅에서는 Docker라는 녀석이 어떤 구조를 가지고 있는지 알아보려한다. 도대체 dockerfile이라는 것은 무엇이기에 Docker Image(이미지)를 생성할 수 있는 것인지, 그리고 Docker Image는 무엇이기에 Docker Container를 생성하여 구동할 수 있는 것인지, 그리고 Docker Registry는 무엇인지, 그리고 앞서 설명한 이 요인들의 관계가 어떻게 되는지 하나씩 보려 한다. 새로운 시스템을 접하면, 그 시스템이 전체적으로 어떻게 구성되어 있는지 알고 있어야 세부적인 부분이 보인다. 따라서 필자는 Docker가 돌아가는 방식에 대해 큰 그림부터 먼저 제시하려 한다. 1. Docker의 구조 아래의 그림을 참고하자. 리눅스(필자는 CentOS에 docker를 설치했.. 2022. 5. 18.
[Docker & Kubernetes] 3. Linux에 Docker 패키지 설치하기 컨테이너를 사용하여 프로세스 격리 및 가상화를 테스트하기 위해, 필자의 테스트 리눅스에 Docker를 설치해보려 한다. 필자가 사용하는 리눅스는 CentOS 7.9 버전이며, VMWare에 최소 설치 프로그램만 사용하여 설치한 리눅스다. Django 등등 별의별 테스트를 진행하면서 이것저것 프로그램이 추가된 상태이긴 하지만 Docker 설치와 크게 연관은 없어 바로 진행하려 한다. 아래의 Docker 설치 절차를 따라하기 전, VM이나 물리 PC에 리눅스 설치를 진행해야한다. 필자가 이 내용은 따로 포스팅하지 않았지만, VM이나 PC에 리눅스를 설치하는 포스팅은 워낙 널리고 널려 있으니 검색한 포스팅으로 설치를 진행해주시면 된다. 1. Docker 설치 전 확인사항 Docker 역시 이 때까지 필자가 L.. 2022. 5. 8.
[Docker & Kubernetes] 2. 도대체 Kubernetes는 뭘 하는 녀석일까? 지난 포스팅에서 리눅스 컨테이너(LXC) 기술을 기반으로 동작하는 Docker 플랫폼의 탄생 배경과 기능에 대해 간략하게 알아보았다. 요점만 정리하자면, 하나의 서버에서 여러 어플리케이션(서비스)를 구동하기 위한 환경을 OS 수준의 가상화로 구현할 수 있는 기술인 LXC를 조금 더 쉽게 사용하도록 만들어 놓은 플랫폼이 Docker다. Docker와 함께 요즘 자주 볼 수 있는 단어로 Kubernetes(쿠버네티스)가 있다. Docker와 Kubernetes는 마치 바늘과 실처럼 한 쌍을 이루어 언급되는 경우가 거의 대부분이다. 그럼 여기서 의문이 생긴다. 도대체 Kubernetes는 무엇이며, Docker와의 관계는 어떻게 되는 것일까? 1. Kubernetes의 등장 배경 Docker를 사용하여 제공하.. 2022. 5. 8.
728x90
반응형