웹사이트 검색

완벽한 서버 – Apache, Postfix, Dovecot, Pure-FTPD, BIND 및 ISPConfig 3.1이 포함된 CentOS 7.4


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 센트OS 7

이 페이지에서

  1. 1 요구 사항\n
  2. 2 서문
  3. 3 서버 준비
  4. 4 추가 저장소 활성화 및 일부 소프트웨어 설치\n
  5. 5 할당량\n
    1. /(루트) 파티션에서 할당량 활성화\n
    2. 별도의 /var 파티션에서 할당량 활성화\n

    이 가이드에서는 CentOS 7.4(64Bit) 서버에 ISPConfig 3.1을 설치하는 방법을 보여줍니다. ISPConfig는 웹 브라우저를 통해 Apache 웹 서버, Postfix 메일 서버, MySQL, BIND 네임 서버, PureFTPd, SpamAssassin, ClamAV, Mailman 등의 서비스를 구성할 수 있는 웹 호스팅 제어판입니다.

    1 요구 사항

    이러한 시스템을 설치하려면 다음이 필요합니다.

    • Centos 7.4 최소 서버 시스템. 이는 Centos 7 최소 서버 자습서에 설명된 대로 처음부터 새로 설치한 서버이거나 최소 Centos 7.4 설정이 설치된 호스팅 회사의 가상 서버 또는 루트 서버일 수 있습니다.\n
    • 빠른 인터넷 연결.

    2 서문

    이 자습서에서는 호스트 이름 server1.example.com을 IP 주소 192.168.0.100 및 게이트웨이 192.168.0.1과 함께 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다.

    HHVM 및 XMPP는 아직 CentOS 플랫폼용 ISPConfig에서 지원되지 않습니다. ISPConfig 내에서 XMPP 채팅 서버를 관리하거나 ISPConfig 웹사이트에서 HHVM(Hip Hop Virtual Machine)을 사용하려면 서버 OS로 CentOS 7.4 대신 Debian 또는 Ubuntu 16.04를 사용하세요.

    3 서버 준비

    키보드 레이아웃 설정

    서버의 키보드 레이아웃이 키보드와 일치하지 않는 경우 올바른 키보드로 전환할 수 있습니다(제 경우에는 localectl 명령을 사용하여 독일어 키보드 레이아웃의 경우 "de").

    localectl set-keymap de

    사용 가능한 모든 키맵 목록을 얻으려면 다음을 실행하십시오.

    localectl list-keymaps

    이 튜토리얼의 끝에서 ISPConfig를 설치하고 싶습니다. ISPConfig는 방화벽으로 사용할 Bastille 방화벽 스크립트와 함께 제공되므로 지금 기본 CentOS 방화벽을 사용 중지합니다. 물론 CentOS 방화벽을 켜둔 상태로 두고 필요에 따라 구성할 수 있습니다(그러나 CentOS 방화벽을 방해할 가능성이 높으므로 나중에 다른 방화벽을 사용해서는 안 됩니다).

    달리다...

    yum -y install net-tools
    systemctl stop firewalld.service
    systemctl disable firewalld.service

    CentOS 방화벽을 중지하고 비활성화합니다. 여기에서 오류가 발생해도 괜찮습니다. 이는 방화벽이 설치되지 않았음을 나타냅니다.

    그런 다음 방화벽이 실제로 비활성화되었는지 확인해야 합니다. 이렇게 하려면 다음 명령을 실행합니다.

    iptables -L

    출력은 다음과 같아야 합니다.

    [ ~]# iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    Chain FORWARD (policy ACCEPT)
    target prot opt source destination
    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    또는 firewall-cmd 명령을 사용합니다.

    firewall-cmd --state
    [ ~]#

    이제 다음 단계에서 구성 파일을 수정하는 데 사용할 네트워크 구성 편집기와 셸 기반 편집기 "nano"를 설치하겠습니다.

    yum -y install nano wget NetworkManager-tui

    설치하는 동안 네트워크 카드를 구성하지 않은 경우 지금 구성할 수 있습니다. 달리다...

    nmtui

    ... 연결 편집으로 이동합니다.

    네트워크 인터페이스 선택:

    그런 다음 네트워크 세부 정보를 입력합니다. DHCP를 비활성화하고 고정 IP 주소, 넷마스크, 게이트웨이 및 하나 또는 두 개의 이름 서버를 입력한 다음 확인을 누릅니다.

    그런 다음 확인을 선택하여 네트워크 설정에서 변경한 사항을 확인합니다.

    및 종료하여 nmtui 네트워크 구성 도구를 닫습니다.

    당신은 실행해야

    ifconfig

    이제 설치 프로그램이 귀하의 IP 주소를 제대로 받았는지 확인하려면 다음을 수행하십시오.

    [ ~]#

    네트워크 카드가 여기에 표시되지 않으면 부팅 시 활성화되지 않은 것입니다. 이 경우 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 엽니다.

    nano /etc/sysconfig/network-scripts/ifcfg-ens33

    ONBOOT를 yes로 설정합니다.

    [...]
    ONBOOT=yes
    [...]

    서버를 재부팅합니다.

    이전에 구성한 모든 이름 서버가 나열되어 있는지 /etc/resolv.conf를 확인하십시오.

    cat /etc/resolv.conf

    네임서버가 없으면 다음을 실행하십시오.

    nmtui

    누락된 네임서버를 다시 추가합니다.

    이제 구성으로...

    /etc/hosts 및 /etc/hostname 조정

    다음으로 /etc/hosts를 편집합니다. 다음과 같이 만드십시오.

    nano /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    192.168.1.100 server1.example.com server1

    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

    /etc/hostname 파일에서 호스트 이름을 설정합니다. 파일에는 "server1"과 같은 짧은 이름이 아니라 정규화된 도메인 이름(예: 제 경우에는 server1.example.com)이 포함되어야 합니다. nano 편집기로 파일을 엽니다.

    nano /etc/hostname

    그리고 파일에 호스트 이름을 설정하십시오.

    server1.example.com

    파일을 저장하고 nano를 종료합니다.

    SELinux 비활성화

    SELinux는 확장된 보안을 제공해야 하는 CentOS의 보안 확장입니다. 제 생각에는 보안 시스템을 구성하는 데 필요하지 않으며 일반적으로 이점보다 더 많은 문제를 야기합니다(일부 서비스가 예상대로 작동하지 않았기 때문에 일주일 동안 문제 해결을 수행한 후 생각해 보십시오. SELinux만 문제를 일으켰습니다.) 따라서 비활성화합니다(나중에 ISPConfig를 설치하려면 필수입니다).

    /etc/selinux/config를 편집하고 SELINUX=disabled로 설정합니다.

    nano /etc/selinux/config
    # 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 these two values:
    #     targeted - Targeted processes are protected,
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    

    그런 다음 시스템을 재부팅해야 합니다.

    reboot

    4 추가 저장소 활성화 및 일부 소프트웨어 설치

    먼저 소프트웨어 패키지의 GPG 키를 가져옵니다.

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

    그런 다음 이 튜토리얼 과정에서 설치할 많은 패키지가 공식 CentOS 7 리포지토리에서 사용할 수 없으므로 CentOS 시스템에서 EPEL 리포지토리를 활성화합니다.

    yum -y install epel-release
    yum -y install yum-priorities

    편집 /etc/yum.repos.d/epel.repo...

    nano /etc/yum.repos.d/epel.repo

    ... 그리고 [epel] 섹션에 priority=10 행을 추가합니다.

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
    failovermethod=priority
    enabled=1
    priority=10
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    [...]

    그런 다음 시스템에서 기존 패키지를 업데이트합니다.

    yum -y update

    이제 나중에 필요한 일부 소프트웨어 패키지를 설치합니다.

    yum -y groupinstall 'Development Tools'

    5 할당량

    (저와 다른 파티션 구성표를 선택한 경우 할당량이 필요한 파티션에 적용되도록 이 장을 조정해야 합니다.)

    할당량을 설치하려면 다음 명령을 실행합니다.

    yum -y install quota

    이제 웹사이트(/var/www) 및 maildir 데이터(var/vmail)가 저장된 파일 시스템에 할당량이 이미 활성화되어 있는지 확인합니다. 이 예제 설정에서는 하나의 큰 루트 파티션이 있으므로 /를 검색합니다.

    mount | grep ' / '
    [ ~]#

    별도의 /var 파티션이 있는 경우 다음을 사용합니다.

    mount | grep ' /var '

    대신에. 행에 "noquota"라는 단어가 포함되어 있으면 다음 단계를 진행하여 할당량을 활성화하십시오.

    /(루트) 파티션에서 할당량 활성화

    일반적으로 /etc/fstab 파일에서 할당량을 활성화하지만 파일 시스템이 루트 파일 시스템 "/"인 경우 할당량은 Linux 커널의 부팅 매개변수로 활성화해야 합니다.

    grub 구성 파일을 편집합니다.

    nano /etc/default/grub

    GRUB_CMDLINE_LINUX로 시작하는 줄을 검색하고 명령줄 매개변수에 rootflags=uquota,gquota를 추가하면 결과 줄이 다음과 같이 표시됩니다.

    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"

    다음 명령을 실행하여 변경 사항을 적용합니다.

    cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
    grub2-mkconfig -o /boot/grub2/grub.cfg

    서버를 재부팅합니다.

    reboot

    이제 할당량이 활성화되었는지 확인합니다.

    mount | grep ' / '
    [ ~]#

    할당량이 활성화되면 마운트 옵션 목록에서 "usrquota,grpquota"를 볼 수 있습니다.

    별도의 /var 파티션에서 할당량 활성화

    별도의 /var 파티션이 있는 경우 /etc/fstab을 편집하고 ,uquota,gquota를/파티션(/dev/mapper/centos-var)에 추가합니다.

    nano /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Sun Sep 21 16:33:45 2014
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos-root / xfs defaults 1 1
    /dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
    UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
    /dev/mapper/centos-swap swap swap defaults 0 0

    그런 다음 실행

    mount -o remount /var
    quotacheck -avugm
    quotaon -avug

    할당량을 활성화합니다. 할당량이 활성화된 파티션이 없다는 오류가 발생하면 계속 진행하기 전에 서버를 재부팅하십시오.

    6 아파치, MySQL, phpMyAdmin 설치

    단일 명령으로 필요한 패키지를 설치할 수 있습니다.

    yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

    서버가 HTTPOXY 취약점을 통해 공격받을 수 없도록 하기 위해 전역적으로 apache에서 HTTP_PROXY 헤더를 비활성화합니다.

    httpd.conf 파일 끝에 apache 헤더 규칙을 추가합니다.

    echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

    구성 변경 사항을 적용하려면 httpd를 다시 시작하십시오.

    service httpd restart