웹사이트 검색

완벽한 서버 – Apache2, Postfix, Dovecot, Pure-FTPD, BIND 및 ISPConfig 3이 포함된 CentOS 7.1


이 가이드에서는 CentOS 7.1(64Bit) 서버에 ISPConfig 3를 설치하는 방법을 보여줍니다. ISPConfig 3는 웹 브라우저를 통해 Apache 웹 서버, Postfix 메일 서버, MySQL, BIND 네임 서버, PureFTPd, SpamAssassin, ClamAV, Mailman 등의 서비스를 구성할 수 있는 웹 호스팅 제어판입니다. 버전 3.0.4부터 ISPConfig는 Apache 외에도 nginx 웹 서버를 완벽하게 지원합니다. 이 튜토리얼에서는 nginx가 아닌 Apache를 사용하는 서버 설정을 다룹니다.

1 요구 사항

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

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

2 서문

이 튜토리얼에서는 IP 주소가 192.168.1.100이고 게이트웨이가 192.168.1.254인 호스트 이름 server1.example.com을 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다.

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 주소를 올바르게 받았는지 확인하려면 다음을 수행하십시오.

[ ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

네트워크 카드가 여기에 표시되지 않으면 부팅 시 활성화되지 않은 것입니다. 이 경우 /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

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

이제 구성으로...

4 /etc/hosts 조정

다음으로 /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

5 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

6 추가 리포지토리 활성화 및 일부 소프트웨어 설치

먼저 소프트웨어 패키지용 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 update

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

yum -y groupinstall 'Development Tools'

7 할당량

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

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

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="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us 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

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

8 Apache, MySQL, phpMyAdmin 설치

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

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