[카테고리:] 서버·인프라

리눅스, CentOS, Nginx, Apache, WordPress 서버, 클라우드 운영과 장애 대응을 다루는 카테고리입니다. 설치·설정·보안·성능 개선을 실무 관점에서 정리합니다.

  • Ubuntu 방화벽 iptables 설치 및 활성화

    방화벽은 서버 보안에서 중요한 단계로 iptables 설치 및 활성화를 다룹니다. 방화벽 관리의 대부분은 네트워크에 트래픽 제한을 적용할 개별 규칙 및 정책을 결정하는 것입니다. 

    1.  iptables 방화벽 이해 및 사전 준비

    Ubuntu는 기본 방화벽으로 ufw를 제공하고 있으나 iptables을 사용하면 규칙이 적용되는 구조적 프레임워크를 상세하게 관리할 수 있습니다.

    우선 ufw 방화벽 사용을 중지하고 iptables 패키지를 활용하여 방화벽을 구성하는 방법으로 진행됩니다. iptables은 합리적인 기본값을 제공하고 확장성을 장려하는 프레임워크를 설정하는 데 중점을 두고 있습니다.

     1) 사전 준비

    ufw 방화벽 상태를 확인하고 방화벽을 중지합니다. Ubuntu 설치부터 함께 따라왔다면 ufw 방화벽을 active(활성화) 되어 있습니다. 이때 sudo ufw status 명령을 입력하면 inactive(비활성화)로  나옵니다. iptables을 설치하는데 ufw 방화벽을 비활성화하지 않는다면 충돌이 발생합니다. 서비스를 관리하는 명령어는 systemctl 또는 [서비스명.service]의 형태로 관리할 수 있습니다.

    2) ufw 상태 확인

    sudo systemctl status ufw
    [Step1] ufw 상태 확인

    3) ufw 중지 및 비활성화

    서비스를 중지는 stop 명령어를 활용할 수 있지만 stop은 시작 활성화에 영향을 미치지 않습니다. 반면 disable 명령은 시작 시 서비스를 비활성화시키며 –now 명령어를 추가면 즉시 반영됩니다. 아래 명령어로 ufw 서비스를 비활성화하고 reboot 명령으로 재시작 합니다.

    sudo systemctl disable --now ufw
    reboot
    [Step2] ufw 비활성화
    sudo systemctl status ufw
    [Step3] ufw 상태 확인

    2.  iptables 설치 및 활성화 문제 확인

    1) iptables 설치(iptables-persistent)

    ufw를 중지했다면 iptables 패키지를 설치합니다. Iptables 설치 후 규칙 세트를 저장하고 부팅 시 자동으로 적용되도록 할 수 있습니다.

    sudo apt install iptables-persistent
    [Step4] Y를 입력하여 계속 진행
    [Step5] IPv4 rules에 대해 YES 선택 후 Enter
    [Step6] IPv6 rules에 대해 YES 선택 후 Enter

    2) iptables 시작 시 활성화(enable)

    • Iptables 상태 확인
    sudo systemctl status iptables
    [Step7] iptables 상태 확인
    • Iptables 상태 시작 시 활성화
    sudo systemctl enable iptables
    reboot
    [Step8] iptables 활성화 명령어 및 재시작

    3) iptables 활성화 문제 확인(시작 시 자동 활성화 안됨)

    • Iptables 상태 확인

    ubuntu 20에서는 정상적으로 활성화되지만 ubuntu 22에서는 활성화가 안되어 있습니다. iptables의 상태를 확인하면 별칭(alias)이 등록되어 있지 않기 때문에 별칭을 등록해야 합니다.

    sudo systemctl status iptables
    [Step9] iptables 상태 확인

    3.  iptables 별칭 등록 및 시작 시 활성화

    1) Iptables 시작 활성화를 위한 별칭(alias) 등록

    iptables.service의 위치는 상태에서 확인이 가능하고 nano 편집기로 파일을 불러옵니다. vi 편집기를 사용해도 무방합니다. 파일 아래쪽 [install] 하단에 별칭을 등록해 줍니다. 여기서는 Alias=iptables.service로 등록합니다.

    sudo nano /lib/systemd/system/iptables.service
    [Step10] iptables 서비스 alias 등록
    [Step11] 편집기를 활용하여 내용 추가(Alias=iptables.service)

    Iptables를 비활성화 후 다시 활성화를 진행합니다. 이때 –now 명령을 추가하면 활성화와 함께 서비스가 함께 실행됩니다.

    sudo systemctl disable iptables
    sudo systemctl enable iptables

    2) 재시작 후 서비스 활성화 확인

    서버를 재시작하여 서비스가 시작 시 활성화 되는지 확인합니다. 아래 이미지처럼 netfilter-persistent.service와 dependency 충돌이 발생하면 netfilter-persistent.service를 재시작합니다. systemctl 명령어로 iptables 서비스가 정상적으로 활성화 된 것을 확인할 수 있습니다.

    reboot
    sudo systemctl status iptables
    sudo systemctl restart netfilter-persistent.service
    [Step12] 재시작 후 iptables 자동 활성화 확인

    3.  iptables 모든 연결 차단

    앞의 설정은 INPUT, FORWARD, OUTPUT가 모두 허용된 설정입니다. INPUT, FORWARD는 모두 닫아 주도록 하겠습니다. 구성을 출력하면 INPUT, FORWARD가 닫힘으로 표시되어 있습니다. 앞으로 서비스를 추가하면 관련 서비스에 대한 포트만 오픈하여 실행되도록 하겠습니다.

    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -S
    [Step13] INPUT, FORWARD DROP

    변경된 설정을 저장하고 reload 합니다. reload는 재시작하지 않고 규칙을 적용하기 위한 명령입니다. 다음 코드를 실행하지 않으면 변경한 정보가 ubuntu 재시작시 적용되지 않습니다.

    sudo netfilter-persistent save
    sudo netfilter-persistent reload

    함께 읽으면 좋은 글

  • ubuntu update 및 upgrade

    ubuntu update 및 upgrade

    1. Update와 Upgrade

    Ubuntu를 최신 상태로 유지하기 위해서 update 또는 upgrade 명령어를 사용합니다. Update와 upgrade가 같을 수도 있지만 차이가 있습니다. update 명령어는 패키지가 최신 버전으로 변경되는 것이 아니라 시스템에서 사용할 수 있는 최신 버전에 대한 정보를 가져오는 것입니다.

    즉, 패키지를 다운로드 하거나 설치하는 것은 아닙니다. 패키지를 다운로드하고 설치하려면 upgrade 명령어를 사용해야 합니다. 시스템은 사용 가능한 패키지 데이터베이스에서 작동합니다.

    데이터베이스에는 패키지가 포함되지 않고 패키지의 메타데이터(버전, 리포지토리, 종속성 등)만 포함됩니다. 따라서 데이터베이스를 업데이트하지 않으면 시스템은 사용 가능한 최신 패키지가 있는지 여부를 알 수 없습니다.

    Update와 upgrade는 관리 명령으로 root 권한으로 실행해야 합니다. sudo를 사용하면 Ubuntu 루트로 명령을 실행할 수 있습니다. 따라서 두 명령 모두에 root로 로그인하거나 sudo를 사용합니다. 

    1) apt update

    apt update 명령으로 패키지에서 업데이트된 메타 데이터를 가져옵니다. 로컬 패키지 캐시가 업데이트 되며 업그레이드할 수 있는 패키지를 확인할 수 있습니다.

    apt update: 패키지 캐시를 업데이트 합니다(설치하거나 업그레이드할 수 있는 패키지 버전을 파악)

    • 패키지 업데이트
    sudo apt update

    패키지 캐시를 업데이트 할 때 apt와 apt-get 명령어를 사용할 수 있습니다. 두 명령어는 동일하지만 차이가 있다면 apt 명령어는 업그레이드 가능한 패키지의 개수를 표시해 줍니다. 여기서는 59개의 업그레이드 가능한 패키지가 있는 것으로 표시되고 있습니다.

    sudo apt update
    [Step 1] 업그레이드 이전 패키지 캐시 업데이트

    2) apt upgrade

    sudo apt upgrade로 모든 (업그레이드 가능한) 패키지를 업그레이드할 수 있습니다. Enter 또는 Y 키를 눌러 업그레이드를 진행하거나 N을 눌러 취소할 수 있습니다.

    apt upgrade: 패키지를 새 버전으로 업그레이드

    • 패키지 업그레이드 목록 보기
    sudo apt list --upgradeable

    sudo get upgrade 명령으로 전체 패키지를 업그레이드 할 수도 있지만 그전에 업그레이드가 가능한 패키지가 무엇인지 리스트를 확인할 수 있습니다.

    sudo apt list --upgradeable
    [Step 1] 업그레이드 가능한 목록 확인 명령어
    sudo apt upgrade
    [Step 2] 업그레이드 가능한 패키지 목록 출력 결과
    • 패키지 업그레이드
    sudo apt upgrade

    업그레이드를 시작 전에 계속 여부를 묻습니다. 업그레이드를 진행하려면 Y, 취소하려면 n를 입력하고 enter를 누릅니다. 여기서는 업그레이드 진행을 위해 Y를 입력하고 계속 진행합니다.

    sudo apt upgrade
    [Step 3] 업그레이드 실행 명령어
    sudo apt upgrade
    [Step 4] 업그레이드 진행

    업그레이드가 완료되면 서비스 재시작을 묻는 창이 표시됩니다. 여기서는 OK를 선택하고 계속합니다. 업그레이드가 완료되면 재시작된 서비스를 확인할 수 있습니다.

    sudo apt upgrade
    [Step 5] 업그레이드 완료 및 서비스 재시작

    sudo apt update 명령어를 다시 입력해보면 업그레이드 가능한 패키지가 없는 것을 확인할 수 있습니다.

    sudo apt upgrade
    [Step 6] 패키지 캐시 업데이트 및 업그레이드 가능 패키지 확인

    함께 읽으면 좋은 글

  • Ubuntu 22.04.1 설치(VirtualBox)

    Ubuntu 22.04.1 설치(VirtualBox)

    1. 가상 PC(이하 ubuntu 서버) 실행

    ubuntu 설치는 설정된 가상 환경을 실행하여 진행합니다. Ubuntu 22.04 버전은 설치 시에 한글 설치가 불가능하기 때문에 설치를 완료하고 한글 입력기를 추가로 설치해야 한글을 사용할 수 있습니다.

    • VirtualBox 관리자를 실행하고 상단 메뉴에서 시작을 클릭합니다.
    ubuntu 설치
    [Step1] VirtualBox 관리자 화면 실행
    ubuntu 설치
    [Step2] VirtualBox 시작 메뉴 클릭

    2. Ubuntu 설치

    • IDE 컨트롤러에 장착된 ubuntu iso 이미지를 로딩하여 설치 화면으로 연결됩니다.
    ubuntu 설치
    [Step1] ubuntu 설치 초기 화면
    • 언어 설정에서 한글이 없어 영어로 설치합니다.
    ubuntu 설치
    [Step2] ubuntu 설치 언어 설정
    • Installer는 업데이트 없이 계속합니다.
    ubuntu 설치
    [Step3] 업데이트 없이 계속
    • 키보드 언어는 English를 선택하고 완료를 클릭합니다.
    ubuntu 설치
    [Step4] 키보드 언어 영어로 설정
    • Ubuntu 설치 타입은 Ubuntu Server를 선택하고 완료를 클릭합니다.
    ubuntu 설치
    [Step5] ubuntu server 기본 옵션 선택
    • 네트워크 설정은 기본 설정으로 진행합니다. 자동으로 설정된 IP주소는 Virtualbox에서 할당된 주소입니다.
    ubuntu 설치
    [Step6] 네트워크 설정
    • Proxy 설정의 proxy 주소는 입력하지 않고 완료를 클릭합니다.
    ubuntu 설치
    [Step7] proxy address 설정
    • Ubuntu archive mirror은 기본 설정을 선택하고 완료를 클릭합니다.
    ubuntu 설치
    [Step8] ubuntu archive mrrior address 설정
    • 스토리지 설정은 구성에 따라 사용자 스토리지 레이아웃으로 설정해도 되지만 여기서는 신규 디스크를 사용하기 때문에 기본 설정으로 선택하고 완료를 클릭합니다.
    ubuntu 설치
    [Step9] Storage 설정
    • 기본으로 구성된 파티션이 보여지는데 root 파티션과 boot 파티션이 20G 구성되어 있고 비어 있는 공간(free space)가 20G 있는 걸 확인할 수 있습니다.
    ubuntu 설치
    [Step10] 파티션 구성 확인
    • 할당되지 않은 공간을 /home 디렉토리로 구성하기 위해 Create Logical Volume를 선택합니다.
    ubuntu 설치
    [Step11] 논리 볼륨 생성
    • 아래와 같이 home으로 이름을 작성하고 최대 공간을 할당합니다. 비워두면 자동으로 최대 공간으로 할당됩니다. Format 방식은 ext4, Mount는 /home으로 선택하고 Create를 클릭합니다.
    ubuntu 설치
    [Step12] /home 디렉토리 설정
    • 파티션 구성 정보에서 /home 디렉토리가 추가된 것을 확인할 수 있습니다. 완료를 클릭합니다.
    ubuntu 설치
    [Step13] 변경된 파티션 확인
    • 확인 창에서 Continue를 선택하고 클릭합니다.
    ubuntu 설치
    [Step14] 설정 저장 및 계속 진행
    • Ubuntu의 이름과 서버 이름을 입력합니다. 추가로 사용자 이름과 패스워드도 함께 입력합니다. 여기서 입력된 사용자 이름과 패스워드는 로그인 아이디와 패스워드로 사용됩니다.
    ubuntu 설치
    [Step15] 이름 설정 및 사용자 등록
    • OpenSSH Server는 외부에서 SSH 프로그램을 활용해서 접속을 위한 패키지 입니다. 터미널 접속을 위해서 OpenSSH server는 선택하고 완료를 클릭합니다.
    ubuntu 설치
    [Step16] OpenSSH 설치
    • 추가로 구성할 Server Snaps를 선택합니다. 여기서는 설치하지 않고 완료를 클릭합니다.
    ubuntu 설치
    [Step17] 추가 서버 패키지 설치
    • 설치가 시작되며 설치 내용을 보고 싶으면 view full log를 클릭하면 됩니다.
    ubuntu 설치
    [Step18] 설치 진행
    • 설치가 완료되면 Cancel update and reboot 메뉴가 보이며 클릭하여 서버를 재시작 합니다.
    ubuntu 설치
    [Step19] 설치 완료 및 재부팅
    • 재시작이 완료되면 로그인 터미널이 나타나면 [Step 15]에서 입력한 username과 password로 로그인하면 됩니다.
    ubuntu 설치
    [Step20] 설치 완료 및 사용자 로그인
    • 로그인이 완료되면 ‘사용자명@호스트명:~’의 터미널을 입력 명령 줄이 나타나며 설치가 완료되었습니다.

    함께 읽으면 좋은 글

  • ubuntu 다운로드 및 ubuntu 설정(virtualbox)

    ubuntu 다운로드 및 ubuntu 설정(virtualbox)

    1. Ubuntu 소개 및 다운로드

    1) Ubuntu란?

    Ubuntu 설정은 ubuntu 22.04.1 LTS 버전으로 진행합니다. Ubuntu는 인터넷의 백본으로 설계 및 엔지니어링된 Linux 배포용 오픈 소스 운영 체제입니다. Ubuntu Server는 공개 또는 비공개 데이터 센터에 경제적 및 기술적 확장성을 제공합니다. 특히 OpenStack 클라우드, Kubernetes 클러스터 또는 50,000노드 렌더 팜을 배포하려는 경우 Ubuntu Server는 사용 가능한 최고의 가치 확장 성능을 제공합니다. ubuntu 설치는 22.04.1 LTS 버전으로 진행합니다.

    Ubuntu에는 코어, 서버 및 데스크톱을 포함하여 다양한 유형의 시스템에서 실행할 수 있는 여러 에디션이 있습니다. 각각의 에디션은 개인용 컴퓨터, 서버, 슈퍼컴퓨터, 클라우드 컴퓨팅 등에서 사용할 수 있습니다.

    Ubuntu는 안전하고 사용하기 쉬운 무료 오픈 소스 솔루션으로 사용자에게 매력적 운영체제입니다. 또한 사용자 친화적이고 사용자 정의가 가능하며 OS 내에서 향상된 보안을 제공합니다.

    2) Ubuntu 서버와 데스크탑의 차이

    Ubuntu Server Edition 및 Ubuntu Desktop Edition 은 동일한 apt 리포지토리를 사용하므로 Server Edition에서와 마찬가지로 Desktop Edition에 서버 응용 프로그램을 쉽게 설치할 수 있습니다.

    한 가지 주요 차이점은 Desktop Edition에 사용되는 그래픽 환경이 서버용으로 설치되지 않는다는 것입니다. 여기에는 그래픽 서버 자체, 그래픽 유틸리티 및 응용 프로그램, 데스크탑 사용자에게 필요한 다양한 사용자 지원 서비스가 포함됩니다.

    3) Ubuntu 설치 시스템 요구사항

    Ubuntu Server Edition은 파일/인쇄 서비스, 웹 호스팅, 이메일 호스팅 등과 같은 다양한 서버 응용 프로그램을 위한 공통적이고 미니멀한 기반을 제공합니다. Ubuntu Server Edition 버전은 4개의 64비트 아키텍처를 지원합니다.

    • amd64(인텔/AMD 64비트)
    • arm64(64비트 ARM)
    • ppc64el(POWER8 및 POWER9)
    • s390x(IBM Z 및 LinuxONE)
    • CPU: 1GHz 이상
    • RAM: 1GB 이상
    • 디스크: 최소 2.5GB

    4) Ubuntu 설치 준비

    Ubuntu Server Edition을 설치하기 전에 시스템의 모든 데이터가 백업되었는지 확인해야 합니다. 컴퓨터에 운영 체제를 처음 설치한 것이 아니라면 Ubuntu를 위한 공간을 만들기 위해 디스크를 다시 분할해야 할 수 있습니다.

    Ubuntu 다운로드 및 설치, 가상 머신 ubuntu 설정
    [Step 1] 사이트 접속
    Ubuntu 다운로드 및 설치, 가상 머신 ubuntu 설정
    [Step 2] 다운로드 메뉴로 이동
    Ubuntu 다운로드 및 설치, 가상 머신 ubuntu 설정
    [Step 3] 초록색 다운로드 버튼 클릭(Download Ubuntu Server 22.04.1 LTS)
    Ubuntu 다운로드 및 설치, 가상 머신 ubuntu 설정
    [Step 4] 다운로드 시작

    2. Virtualbox에 가상 머신 ubuntu 설정

    1) Ubuntu 설정

    가상 머신 Ubuntu 설정은 자신의 호스트 컴퓨터 사양에 따라서 적절한 수준으로 진행하면 됩니다.

    가상 머신 ubuntu 설정
    [Step 1] virtualbox 관리자 실행

    가상 머신의 이름, 저장 폴더, 다운받은 ubuntu iso 이미지를 선택합니다.

    가상 머신 ubuntu 설정
    [Step 2] virtualbox 관리자 메뉴에서 새로 만들기 클릭

    호스트 컴퓨터 사양을 고려하여 가상 머신에서 사용할 기본 메모리와 Processors의 개수를 설정합니다.

    가상 머신 ubuntu 설정
    [Step 2] virtualbox 관리자 메뉴에서 새로 만들기 클릭

    기존 가상 디스크를 사용할 수도 있지만 여기서는 가상 디스크를 생성합니다.

    가상 머신 ubuntu 설정
    [Step 2] virtualbox 관리자 메뉴에서 새로 만들기 클릭
    가상 머신 ubuntu 설정

    설정이 완료되면 VirtualBox 관리자 메뉴에서 가상 PC의 하드웨어 구성을 확인할 수 있습니다.

    가상 머신 ubuntu 설정

    함께 읽으면 좋은 글

  • VirtualBox 버추얼박스 가상머신 다운로드 및 설치

    VirtualBox 버추얼박스 가상머신 다운로드 및 설치

    1. 가상 머신(Virtual Machine)이란?

    VirtualBox(버추얼박스)는 무료 소프트웨어로 누구나 사용할 수 있는 Virtual Machine입니다. 가상 머신()은 물리적 하드웨어 시스템에 생성된 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지가 있는 가상 환경입니다. KVM(커널 기반 가상 머신)과 같은 하이퍼 바이저가 장착된 물리적 머신을 호스트 머신, 호스트 컴퓨터, 호스트 운영 체제 또는 간단히 호스트라고 합니다.

    하이퍼 바이저는 CPU, 메모리 및 스토리지와 같은 컴퓨팅 리소스를 기존 게스트 간에 또는 새 가상 머신으로 쉽게 재배치할 수 있습니다. 가상머신은 리소스를 많이 사용하는 3D, 그래픽, 물리엔진 등에 활용하기에는 적합하지 않습니다.

    가상머신은 MacOS, Linux, Windows 등 다양한 운영 체제를 설치할 수 있으며 각각의 운영체제는 물리적 환경과 유사하게 구성됩니다.

    1) 가상 머신 종류

    가상 머신은 호스트 PC의 운영체제에 따라 다양한 소프트웨어가 있습니다. 다음은 무료로 사용할 수 있는 가상 머신 소프트웨어 입니다. 여기서는 VirtualBox 소프트웨어를 활용하여 가상환경을 구축하겠습니다.

    • Virtualization Manager
    • VM Monitor
    • VMware Fusion (Mac)
    • Parallels
    • VMware Workstation Player
    • Hyper-V
    • VirtualBox
    • QEMU
    • Gnome Boxes
    • Red Hat Virtualization

    2. VirtualBox(버추얼박스) 이해

    1) VirtualBox 특징

    VirtualBox는 무료 소프트웨어로 누구나 사용할 수 있습니다. VirtualBox는 원래 Innotek GmbH에 의해 만들어졌으며 2008 년 Sun Microsystems에 인수되었으며 2010 년 Oracle에 인수되었습니다.

    VirtualBox는 엔터프라이즈 시각화, 가정용으로 다양한 가상 환경에서 개발이 요구되는 개발자에게 가장 적합한 소프트웨어입니다. VirtualBox는 x86 컴퓨터를 위한 오픈 소스 하이퍼 바이저로 가상 머신의 생성 및 관리를 지원하는 최고의 VM 소프트웨어 중 하나입니다.

    VirtualBox는 윈도우, 리눅스, BSD 및 기타 OS를 설치하고 실행할 수 있습니다. VirtualBox의 주목할 만한 점은 한 호스트에서 다른 호스트로 가상 머신을 전송하는 기능입니다.

    2) VirtualBox 가상화

    VirtualBox의 사용자는 단일 호스트 운영 체제 (호스트 OS)에서 여러 게스트 OS를로드 할 수 있습니다. 각 게스트는 자체 가상 머신 내에서 독립적으로 시작, 일시 중지 및 중지할 수 있습니다.

    사용자는 각 가상 머신을 독립적으로 구성하고 기본 호스트 하드웨어가 지원하는 경우 소프트웨어 기반 가상화 또는 하드웨어 지원 가상화 중에서 선택하여 실행할 수 있습니다.

    호스트 OS와 게스트 OS 및 애플리케이션은 공통 클립보드 및 가상화된 네트워크 기능을 포함한 여러 메커니즘을 통해 서로 통신할 수 있습니다. 게스트 가상 머신은 서로 직접 통신하도록 구성된 경우 통신할 수도 있습니다. 

    3) VirtualBox 기능

    • 창 크기를 조정할 수 있습니다.
    • 다중 화면 해상도를 지원합니다.
    • Windows 10은 드래그 앤 드롭 기능을 지원합니다.
    • PC에서 모든 응용 프로그램을 실행할 수 있는 유연성을 제공합니다.
    • 동일한 컴퓨터에서 여러 게스트 창을 동시에 실행할 수 있습니다.
    • 원활한 모드를 사용하면 macOS 및 Windows 응용 프로그램을 나란히 실행할 수 있습니다.
    • Linux, Mac, Windows, Solaris 및 OpenSolaris 플랫폼을 지원합니다.

    4) 가상화 지원 OS

    • 윈도우 7 이상
    • 윈도우 서버 2012 이상
    • 리눅스 배포판
    • 버전 10.13 하이 시에라에서 10.15 카탈리나까지의 macOS(Intel 기반 Mac에만 해당)
    • 오라클 솔라리스

    5) VirtualBox 링크

    3. VirtualBox(버추얼박스) 설치

    Virtualbox Download
    Virtualbox Download

    2) VirtualBox 설치(Windows hosts 설치)

    Virtualbox Setup
    Virtualbox Setup
    Virtualbox Setup
    Virtualbox Setup
    Virtualbox Setup
    Virtualbox Setup
    Virtualbox Setup

    3) VirtualBox 관리자 실행

    VirtualBox 버추얼박스 execute

    함께 읽으면 좋은 글

  • firewall(방화벽) 설정

    firewall(방화벽) 설정

    1. firewall(방화벽) 이해 및 업데이트

    firewalld은 centos 운영체제에서 기본으로 제공되는 방화벽 관리 도구다. firewalld는 IPv4 및 IPv6 네트워크를 모두 지원하며 프로필 영역에서 정의된 대로 작동하며 신뢰도가 높다.

    • block : 시스템 내에서 시작된 네트워크만 연결하고 그 외의 모든 연결은 거부
    • dmz : 허용된 port의 연결만 허용하며 들어오는 포트에 대한 연결을 제공
    • drop: 들어오는 모든 연결은 차단하며 나가는 네트워크 연결만 허용
    • public: 네트워크 내의 다른 서버나 컴퓨터는 신뢰하지 않으며 필요한 포트와 서비스만 허용
    • trusted: 모든 영역에 대해서 연결 허용
    • home: 로컬 네트워크의 신뢰하는 PC와 연결하며 선택된 TCP/IP 포트만 허용

    friewall을 사용해서 트래픽을 허용하거나 차단할 수 있다. Centos 8 에서는 동적인 인터페이스와 함께 사용자 정의 기반의 방화벽이 함께 제공된다.

    firewall은 시스템과 외부 소스 사이에 장벽을 형성하여 외부에서 발생한 피해가 확산하여 소중한 내부 데이터를 손상시키지 못하도록 차단한다. 따라서 방화벽은 반드시 사용해야 하며 서비스가 잘 안된다 하여 중지하면 안된다.

    1. Centos 8 의 모든 영역 확인
    sudo firewall-cmd --get-zones
    centos firewall
    2. firewall(방화벽) 버전 확인
    sudo firewall-cmd --version
    centos firewall

    firewall(방화벽) 설정

    1. firewall(방화벽) 상태 확인
    sudo systemctl status firewall
    3. firewall(방화벽) 시작
    sudo systemctl start firewall
    4. firewall(방화벽) 중지
    sudo systemctl stop firewall
    5. firewall(방화벽) 재시작
    sudo systemctl restart firewall
    6. firewall(방화벽) 서비스 등록
    sudo systemctl enable firewall
    7. firewall(방화벽) 서비스 비활성화
    sudo systemctl disable firewall
    8. firewall(방화벽) 갱신
    sudo firewall-cmd --reload
    9. firewall(방화벽) 설정 파일
    /etc/firewalld/firewalld.conf

    firewall 방화벽 port 설정

    * firewall(방화벽) 목록 확인
    sudo firewall-cmd --list-all
    * 사용되는 서비스 확인
    sudo firewall-cmd --list-services

    OR

    sudo firewall-cmd --list-services --zone=public
    *centos 8 cockpit 제거(리눅스 관리자 tool – cockpit 활성화)
    sudo firewall-cmd --remove-service=cockpit --permanent
    * dhcpv6 클라이언트 서비스 제거
    sudo firewall-cmd --remove-service=dhcpv6-client --permanent
    * firewall(방화벽)에서 지원하는 서비스 목록

    port를 직접 지정해도 되지만 서비스 명을 활용해서 운용할 수 있다.

    sudo firewall-cmd --get-services
    sudo firewall-cmd --get-services | grep [찾을 서비스명 : http or mysql]
    

    서비스의 포트 정보는 아래 링크의 xml 파일을 통해 확인할 수 있다.

    sudo ls -l /usr/lib/firewalld/services/
    sudo cat /usr/lib/firewalld/services/ssh.xml
    * firewall(방화벽) 서비스 및 포트 추가(예 : http port)

    다음은 public zone에 http 포트를 영구히 추가하는 명령어다. 뒤에 –permanent를 삭제하고 입력하면 일시적으로 추가되며 재부팅 후 사라진다. 서비스 및 port를 등록하면 reload를 반드시 해준다.

    sudo firewall-cmd --zone=public --add-service=http --permanent

    OR

    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    centos firewall
    sudo firewall-cmd --reload
    * firewall(방화벽) 서비스 및 포트 삭제(예 : http port)

    다음은 public zone에 http 포트를 영구히 삭제하는 명령어다. 뒤에 –permanent를 삭제하고 입력하면 일시적으로 삭제되며 재부팅 후 유지된다. 서비스 및 port를 삭제하면 reload를 반드시 해준다.

    sudo firewall-cmd --zone=public --remove-service=http --permanent

    OR

    sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
    centos firewall
    sudo firewall-cmd --reload

    firewall은 git을 통해 업데이트 할 수 있다. https://firewalld.org/

    함께 읽으면 좋은 글

  • Nginx 웹 서버 설치(Centos 8)

    Nginx 웹 서버 설치(Centos 8)

    1. 리눅스 Nginx 웹 서버 vs apache 웹 서버

    리눅스에서 설치되는 웹 서버는 Nginx 웹 서버와 apache 웹 서버로 나눠지며 다음과 같은 차이점을 갖고 있다.

    • 아파치는 오픈 소스 HTTP 서버인 반면 Nginx는 오픈 소스, 고성능 비동기 웹 서버 및 역방향 프록시 서버이다.
    • 아파치 HTTP 서버의 개발 및 발전은 전 세계 사용자 커뮤니티(Apache Software Foundation)에서 관리 및 유지되지만 Nginx는 2011년에 설립된 동일한 이름의 회사에서 유지 및 관리 된다.
    • Apache는 클라이언트 요청 및 웹 트래픽을 처리하는 다양한 다중 처리 모듈을 제공하지만 Nginx는 최소한의 하드웨어 리소스로 여러 클라이언트 요청을 동시에 처리하도록 설계되었다.
    • 아파치에서 단일 스레드는 하나의 연결과 연결되지만 Nginx의 단일 스레드는 여러 연결을 처리할 수 있다. 이 프로세스는 메모리를 적게 소모하여 성능이 향상시킨다.
    • 아파치 HTTP Server에는 확장성이 없는 다중 스레드 아키텍처지만 Nginx는 여러 클라이언트 요청을 처리하기 위한 비동기 이벤트 기반 접근 방식을 따마란다.
    • 아파치 서버는 기존의 메서드를 사용하여 정적 콘텐츠를 제공하고 웹 서버 자체 내에서 기본적으로 동적 콘텐츠를 처리한다. 반면 Nginx는 동적 콘텐츠를 내부적으로 처리할 수 없고 위해 외부 프로세스에 의존합니다.

    2. nginx 웹 서버 설치

    1) 업데이트

    sudo dnf update

    2) nginx 검색 및 버전 확인

    sudo dnf list install nginx
    nginx 웹 서버

    3) nginx 설치

    sudo dnf install -y nginx.x86_64
    nginx 웹 서버

    4) nginx 상태 확인

    sudo systemctl status nginx
    nginx 웹 서버

    5) nginx 시작

    Ctrl+c 키를 눌러 빠져 나온 후 nginx를 시작한다.

    sudo systemctl start nginx
    nginx 웹 서버

    부팅시 자동 실행 되도록 enable 시켜준다. 다음 명령어를 실행하지 않으면 부팅시 running 상태가 아닌 dead 상태로 구동된다.

    sudo systemctl enable nginx

    3. firewall 방화벽 설정

    1) 방화벽 상태 확인

    sudo firewall-cmd --state

    2) firewall 목록 확인

    sudo firewall-cmd --zone=public --list-all
    nginx 웹 서버

    3) http(80) 포트 추가

    sudo firewall-cmd --permanent --zone=public --add-port=80/tcp

    4) 방화벽 갱신

    sudo firewall-cmd --reload

    다음 명령어로 확인하면 ports의 80/tcp 항목이 추가된 걸 확인할 수 있다.

    sudo firewall-cmd --state
    nginx 웹 서버

    만약 포트를 삭제하려 한다면 다음 명령어를 활용해서 열린 port를 삭제할 수 잇다.

    firewall-cmd --permanent --zone=public --remove-port=80/tcp

    5) 웹 접속 확인

    웹 브라우져에서 ip주소를 입력해서 다음과 같은 화면이 나오면 된다.

    nginx 웹 서버

    웹 브라우저에서 에러가 나온다면 nginx의 status를 확인해서 정상적으로 작동되는 지를 확인한다. 그 다음 방화벽이 작동하고 있으며 80번 port가 열려 있는지를 확인한다.

    함께 읽으면 좋은 글

  • Centos 8 RHEL & REMI Repository 활성화

    Centos 8 RHEL & REMI Repository 활성화

    Centos 8 RHEL & REMI Repository 활성화

    RHEL은 Enterprise linux를 위한 추가 패키지를 의미하며 Centos 8 서버에 사용할 수는 Repository를 제공한다. RHEL 저장소를 사용하기 위해서는 인터넷에 연결되어 있어야 하고 root 또는 sudo 관리자 권한을 갖고 있어야 한다.

    RHEL 8은 설치, 코딩, tool 선택 및 설정을 포함하여 응용 프로그램 개발을 가속화하는 새로운 기능이 포함되어 있다. CentOS 8에서 RHEL Repository를 사용하도록 설정하는 것은 매우 간단하며 설치시 웹서버에 활용될 php 패키지가 포함된 REMI도 함께 설치한다.
    REMI는 PHP 스택을 중심으로 자유롭고 안정적인 dnf(yum) repository로 최신 버전의 PHP에 대한 패키지가 포함되어 있다. 

    RHEL 활성화

    1. RHEL 검색 및 설치
    sudo dnf search epel
    sudo dnf info epel-release
    Centos 8 RHEL & REMI Repository
    2. RHEL 설치
    sudo dnf -y install epel-release
    Centos 8 RHEL & REMI Repository
    sudo dnf update

    REMI 활성화

    1. REMI 설치

    다음 명령을 실행하여 REMI repository를 설치할 수 있다.

    sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    
    sudo dnf update

    이전 포스트

    함께 읽으면 좋은 글

  • 리눅스 관리자 tool – cockpit 활성화

    리눅스 관리자 tool – cockpit 활성화

    Red Hat은 관리자의 관리 효율성을 높이고자 서버 관리 도구로 cockpit을 지원하고 있다. cockpit는 사용자 친화적인 인터페이스를 제공하며 CentOS에서도 지원하고 있다.

    cockpit 기능

    • cockpit은 모듈식으로 추가 모듈을 설치해서 확장할 수 있다.
    • 하나의 cockpit 대시보드에 여러 서버를 추가로 설정할 수 있다.
    • cockpit은 소켓 방식을 사용하며 사용 중에 메모리를 사용하지 않는다.
    • cockpit은 sudoer 권한이 있는 사용자로 접속이 가능하며 root 권한으로 접속이 불가능하다.

    cockpit 활성화

    설치 방법과 접속 방법은 매우 간단하다. CentOS 8 설치 후 재부팅 하면 로그인 페이지 상단에 cockpit 활성화 명령어가 제시되어 있다.

    로그인 후 터미널에 다음 코드를 입력한다.

    centos cockpit
    sudo systemctl enable --now cockpit.socket

    활성화 후 재부팅을 진행한다.

    sudo reboot

    cockpit 접속

    재부팅 하면 접속 링크가 상단에 초기에 표시된다.

    centos cockpit

    웹 브라우저에서 https://localhost:9090/ 또는 https://[ip]:9090/로 접속한다.
    비공개로 표시되는데 고급을 눌러 ‘안전하지 않음’으로 이동하고 접속하면 된다.

    centos cockpit
    centos cockpit

    이전 포스팅
    https://www.thinknote.co.kr/cent-os-8-%ec%84%a4%ec%b9%98/

    함께 읽으면 좋은 글

  • 리눅스 사용자 관리 useradd usermod userdel

    리눅스 사용자 관리 useradd usermod userdel

    리눅스는 그룹 및 사용자별로 관리된다. 사용자 계정은 생성/수정/삭제 할 수 있다.
    사용자 계정에 대한 정보는 /etc/passwd에 저장된다.


    사용자 리스트 확인

    sudo cat /etc/passwd

    사용자 추가 및 패스워드 등록

    adduser 명령어로 사용자를 등록할 수 있다.

    • -m or –create-home : 신규 사용자의 홈 디렉토리를 추가한다.
      -s or –shell : 사용자별로 shell을 다르게 설정할 수 있다.
      -u or –uid : 특정 사용자 ID(UID)를 지정한다.
      -c or –comment : GECOS 필드
    sudo adduser [사용자명]

    사용자의 기본 설정은 /etc/defaults/useradd 에서 확인할 수 있다.

    sudo cat /etc/default/useradd
    useradd default
    • passwd [사용자명] 명령어로 사용자의 패스워드를 등록한다. 기존 사용자의 경우 패스워드를 변경할 수 있다.
    sudo passwd [사용자명]

    사용자 정보 수정

    이미 존재하는 사용자 계정에 대해 사용자 이름의 변경, shell 변경, 또는 계정을 잠그거나 해제할 수 있다.

    • -c or –comment : GECOS 필드 수정
      -d or –home : 홈 디렉토리 정보 수정
      -e or –expiredate : 계정 만료 설정
      -l(소문자 L) or –login :사용자 이름 수정
    • -L or –lock : 사용자 계정 잠금
    • -U or –unlock : 사용자 잠금 해제
    sudo usermod [option] [사용자명]

    사용자 삭제

    필요 없는 사용자 계정을 userdel 명령어로 삭제할 수 있다.

    • -f or –force : 사용자가 로그인된 상태에서도 계정 삭제
      -r or –remove : 메일 및 홈 디렉터리를 포함하여 계정 삭제
    sudo userdel [사용자명]

    함께 읽으면 좋은 글

  • CentOS 8 설치 방법: 다운로드와 기본 서버 설정 가이드

    CentOS 8 설치 방법: 다운로드와 기본 서버 설정 가이드

    리눅스의 장점

    Linux는 Windows와 같은 운영 체제다. 리눅스는 모듈식 설계로 다양한 배포 버전이 있다.
    리눅스는 여러 장점이 있는데 그 중에 가장 큰 장점은 오픈 소스 운영체제로 누구나 무료로 사용할 수 있다.
    집에 잠자고 있는 오래된 PC나 노트북이 있으면 웹서버로 운영하기에 탁월한 서버를 구축할 수 있다.


    리눅스 종류

    리눅스는 여러 종류의 배포판이 존재하며 그 수는 수백개에 달한다. Google에서 개발한 Android도 리눅스 배포판의 하나다. 대표적인 배포판은 CentoOS, Debian, Fedora, Ubuntu 등이 있다.

    • Ubuntu는 windows와 Mac OS에 이어 가장 많이 사용되는 Desktop 운영체제로 Debian 배포판을 기반으로 개발되었다.
    • Centos는 엔터프라이즈 및 웹 서버에 주로 사용되며 무료 엔터프라이즈 급 운영체제인 Red Hat Enterprise Distro를 기반으로 개발되었다.
    Linux/배포판 - 나무위키

    Red Hat Enterprise Linux(RHEL) 기반으로 개발된 CentOS Linux는 2021년에 지원이 끝나고 CentOS Stream으로 변경되었다. CentOS Stream은 RHEL의 Upstream(development) 운영체제로 볼 수 있다.

    centos stream

    Centos 8 다운로드

    Centos 다운로드 페이지에 접속하면 Centos Linux와 CentOS Stream 2개로 나눠진다.
    https://www.centos.org/download/

    centos download

    Architectures에 따라서 다운로드 링크가 다르다. 차이점은 프로세서 제조에 사용되는 기술에 있는데 스마트 폰 시스템 은 ARM 기술을 사용 하고 컴퓨터는 x86 기술을 사용한다. PC에 설치하기 위해선 CentOS 8 Stream의 x86_64를 다운 받는다.


    Refus로 부팅 디스크 만들기

    다운 받은 usb로 부팅 디스크를 생성한다.

    refus centos

    Centos 설치 시작

    1. 설치 시작하기
    centos
    2. 한국어를 선택하고 계속 진행한다.
    centos
    3. 설치 위한 디스크, root 비밀번호를 설정한다.
    centos
    • 디스크 설정에서 파티션을 설정할 때 마운트 위치에 따라 디스크 용량을 설정하거나 자동으로 파티션을 생성할 수 있다.
    • / : 루트 디렉터리며 리눅스에서 가장 최상위 디렉터리
    • /home : 시스템의 일반 사용자 디렉터리로 관리자가 사용자를 생성하면 이 디렉터리 아래에 생성된다.
    • /var : 반드시 분할해야 하는 디렉터리로 스풀링 파일(spool), 메일 파일(mail), 로그 파일(log) 등이 있다.
    • SWAP : 리눅스를 설치하는 시스템의 실제 메모리보다 더 많은 메모리를 사용할 수 있는 가상 메모리 기능이다. 보통 설치된 메모리의 2배를 설정한다.
    4. 소프트웨어 선택

    소프트웨어 선택은 두 번째 서버를 선택하고 추가 소프트웨어는 선택하지 않는다.

    centos
    5. 사용자 생성

    사용자를 생성할 때는 root에 접근할 수 있도록 ‘이 사용자를 관리자로 설정합니다.’에 체크한다.

    centos
    6. 설치 시작

    설치 준비가 완료되면 ‘설치 시작’ 버튼이 활성화되고 클릭하면 설치가 시작된다.

    centos
    centos
    7. 설치완료

    사용자로 등록한 ID/PW를 입력하면 된다.

    centos

    다음 포스팅

    함께 읽으면 좋은 글