CentOS 8 - 설치 및 기본설정

    CentOS 8.X 64BIT - Install and basic setup

    CentOS란?

    Linux 플랫폼을 기반으로 오픈 소스 생태계를 제공하는 데 중점을 둔 커뮤니티 중심의 무료 소프트웨어 프로젝트

    현재는 상용화된 레드 햇 엔터프라이즈 리눅스(RHEL)에서 파생되었으며 거의 완벽에 가까운 복제품이라고 해도 될 정도로 안정적이고 관리 가능한 플랫폼으로 발전되었습니다. 실제로 많은 기업들이 리눅스 CentOS 무료 배포 오픈 소스를 이용해 많은 서비스를 제공하고 이익을 얻고 있습니다.

    최신 릴리즈 및 테스트 : [2020-06-07]

    [설치환경 및 준비물]

    VMware Workstation 15.5 [포스팅 참고]

    CentOS-8.1.1911-x86_64-dvd1.iso 데몬 파일

     

    공식 사이트 : [CentOS]

     

    CentOS Project

    The CentOS Project The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem around a Linux platform. We offer two Linux distros: – CentOS Linux is a consistent, manageable platform that suits a wi

    www.centos.org

    다운로드 경로 : [클릭]

    링크다운 : [다운 1]/ [다운 2] / [다운 3]

    [다운로드 경로를 통해 직접 다운받으시기 바랍니다]

    전부 같은 파일이며 다운로드 속도가 빠른 하나만 다운로드하시면 됩니다.

    또한 릴리즈 버전이 자주 업데이트되므로 링크다운이 바로 안되시면 다운로드 경로를 통해 직접 다운로드하시기 하시면 됩니다. 주기적으로 확인하여 업데이트하도록 하겠습니다.

     

    설치 시작


    스크린샷 순서대로 따라가면 되며, 실무 위주로 설명하겠습니다.

    익숙해지면 원하는 서버 용도에 따라 설치 진행하시면 됩니다. [기본 세팅으로 진행]

     

     

    [참고사항]]
    그래픽 인터페이스인 GUI 사용으로 안 하고 최소 설치하는 이유는 대부분의 서버호스팅의 업체는 최소사양으로 최대의 성능을 내기 위해 필요한 소스만 설치하고 운영합니다. 아무리 가볍다고 하지만 그래픽 인터페이스를 사용한다는 건 그만큼 무거워진다는 뜻입니다. 예를 들어 윈도의 경우도 처음 설치할 때는 빠르지만 사용할수록 리소스가 많아지면서 부팅이 늦게 뜨는 것과 비슷합니다. GUI 설치는 나중에 따로 포스팅하도록 하겠습니다.

    [참고사항]

    SWAP은 일종의 메모리 확보라고 생각하시면 될듯합니다. 하드디스크의 일부를 마치 메모리처럼 사용할 수 있게 해주는 기술입니다. RAM 메모리가 부족할 때 대신 SWAP 파티션을 잡아두었던 메모리를 사용합니다. 일반적으로 RAM 사용량의 2배 이상 권고 설정이라고 알고 있는 분들도 있으시겠지만 서버의 용도나 실서버 하드웨어에 들어가는 RAM 용량이 얼마냐에 따라 튜닝 작업을 해야 합니다. 하지만 저희는 테스트이며 기본적으로 1~2GB RAM으로 세팅하므로 위 동일하게 하시고 넘어가면 됩니다. 하드디스크의 용량을 사용하기 때문에 충분히 용량을 확인하고 설정하시기 바랍니다.

    [참고사항]

    파일 시스템 : EXT4 , 장치 유형 LVM으로 설정하는 이유는 속도나 좀 더 효율적으로 디스크를 사용 및 관리하기 위해서입니다. 이제 가상화 솔루션에서도 많이 안정화되었으며 여러모로 특징이 많으므로 기본적으로 사용하는 게 좋습니다. 나중에 좀 더 자세하게 다루도록 하겠습니다.

    다음은 설치 후 처음 몇 가지 미리 세팅해야 할 것을 알려드리도록 하겠습니다.

     

    1. /etc/resolv.conf

    네임서버 및 도메인 지정 역할을 해주는 설정 파일입니다. 현재 네트워크는 연결되어있지만 YUM(자동) 설치 즉 외부 도메인 미러사이트를 찾기 위해 특정 ISP(인터넷을 제공하는 개인이나 기업)에 미리 지정해주는 게 좋습니다. 저는 KT네임서버를 지정

    [root@localhost ~]#vi /etc/resolv.conf

     

    # Generated by NetworkManager  
    search localdomain  
    nameserver 192.168.220.2  
    nameserver 168.126.63.1     ←[추가]

    2. yum update

    해당 명령어는 현재 설치되어있는 전체 패키지와 커널을 업그레이드합니다. 이것도 보안을 위해 하는 부분으로 아무것도 설치되어 있지 않는 상태에서 하는 것을 권고합니다. 만약 이미 돌아가고 있는 서버에서 하게 되면 운이 없을 경우 부팅이 안되거나 장애를 일으킬 수 있기 때문입니다. 설치가 완료될 경우 새로 설치된 것과 업데이트한 패키지가 리스트에 나오게 됩니다.

    [root@localhost ~]#yum update
    마지막 메타 데이터 만료 확인 : 0:20:10 전에 2020년 06월 07일 (일) 오전 11시 49분 01초. 
    Dependencies resolved.

    Installing: 
     kernel                  x86_64 4.18.0-147.8.1.el8_1            BaseOS    1.5 M 
     kernel-core             x86_64 4.18.0-147.8.1.el8_1            BaseOS     25 M 
     kernel-devel            x86_64 4.18.0-147.8.1.el8_1            BaseOS     13 M 
     kernel-modules          x86_64 4.18.0-147.8.1.el8_1            BaseOS     22 M 
    Upgrading: 
     fribidi                 x86_64 1.0.4-7.el8_1                   AppStream  89 k 
     git                     x86_64 2.18.2-2.el8_1                  AppStream 186 k 
     git-core                x86_64 2.18.2-2.el8_1                  AppStream 5.0 M 
     git-core-doc            noarch 2.18.2-2.el8_1                  AppStream 2.3 M
    .
    [중략]
    .
    Transaction Summary 
    설치          5 Packages 
    업그레이드  119 Packages 

    Total download size: 191 M 
    Is this ok [y/N]: y
    .
    [중략]
    .
    합계  40 MB/s | 191 MB     00:04 
    CentOS-8 - Base  1.6 MB/s | 1.6 kB     00:00 
    GPG키 0x8483C65D를 불러옵니다: 
    사용자 : "CentOS (CentOS Official Signing Key)" 
    GPG 지문: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D

    출처 : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 
    Is this ok [y/N]:y
    .
    [중략]
    .
    설치됨: 
    kernel-4.18.0-147.8.1.el8_1.x86_64  kernel-core-4.18.0-147.8.1.el8_1.x86_64  kernel-devel-4.18.0-147.8.1.el8_1.x86_64 

    kernel-modules-4.18.0-147.8.1.el8_1.x86_64 grub2-tools-efi-1:2.02-78.el8_1.1.x86_64 

    완료되었습니다!

    3. /etc/sysconfig/selinux

    일종의 보안정책으로 모든 프로세스나 특정 객체에 대하여 관리규정을 지을 수 있습니다. 기본적으로 활성 (enforcing) 되어있기 때문에 앞으로 서버 운영하다 보면 네트워크 방화벽 및 특정 프로세스가 막히거나 구동이 되지 않는 상황이 많이 발생합니다. 그래서 비활성(disabled) 을 많이 합니다. [적용 후 재부팅 필요]

    [root@localhost ~]# vi /etc/sysconfig/selinux

     

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted

    4. IPTABLES 방화벽 사용

    CentOS 7부터는 5,6에서 사용하던 iptables를 사용하지 않고 firewalld 방화벽이라는 새로운 방식을 도입합니다. 그렇기에 기존 경로에 /etc/sysconfig/iptables 파일이 존재하지 않습니다. 저는 아직 적용방법이 익숙하지 않아 기존 iptables를 사용하려고 합니다. 그리고 systemd 기반으로 작동되기 때문에 명령어 또한 systemctl를 이용해야 합니다. 다음 아래와 같이 순서대로 진행해주시기 바랍니다.

    Firewalld 방화벽 중지
    [root@localhost ~]# systemctl stop firewalld


    Firewalld 재시작 방지 중지
    [root@localhost ~]# systemctl mask firewalld
    Created symlink /etc/systemd/system/firewalld.service → /dev/null.


    Iptables 서비스 관련 패키지 설치
    [root@localhost ~]#  yum install -y iptables-services

    .

    [중략]

    설치됨:
      iptables-services-1.8.2-16.el8.x86_64

    완료되었습니다!

     

     

    기본 사용 설정

    [root@localhost ~]# systemctl enable iptables

    Created symlink /etc/systemd/system/basic.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.

     

    서비스 시작
    [root@localhost ~]# systemctl start iptables

     

    작동 확인
    [root@localhost ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

     

    경로 확인[CentOS 5,6처럼 동일하게 사용 가능]
    [root@localhost ~]# vi /etc/sysconfig/iptables


    # sample configuration for iptables service
    # you can edit this manually or use system-config-firewall
    # please do not ask us to add additional ports/services to this default configuration
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT

     

    이후 동일하게 service 명령어 이용 가능
    [root@localhost ~]# service iptables stop
    Redirecting to /bin/systemctl stop  iptables.service

    [root@localhost ~]# service iptables start
    Redirecting to /bin/systemctl start  iptables.service

    Designed by JB FACTORY