2018년 9월 17일에서 21일까지 5일동안 리눅스 강의를 진행하였습니다. 


강의 장소는 Skill Support 에서 진행하였으며, 교제는 우재남님의 "이것이 리눅스다" 를 사용하였습니다. 


Linux 강의 내용을 정리하자면 아래와 같습니다. 



위 이미지의 아키텍쳐를 리눅스를 이용해서 구현하는것을 실습하였습니다. 


교제는 이론 수업용으로 사용 하였으며, 설치된 각각의 App 은 server-world.info/en 사이트를 참조 하였습니다. 


세팅된 내용에 대해서 점차적으로 정리해서 올리도록 하겠습니다. 


1. WEB - apache, nginx

2. APM - apache + php + MariaDB


=======================================================================================

### Wordpress 설치

yum install httpd mariadb mariadb-server php php-common php-mysql php-gd php-xml php-mbstring php-mcrypt php-xmlrpc unzip wget -y


systemctl start httpd

systemctl start mariadb

systemctl enable httpd

systemctl enable mariadb


mysql_secure_installation


Set root password? [Y/n] n

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y


mysql -u root -p

MariaDB [(none)]>CREATE DATABASE wordpress;

MariaDB [(none)]>GRANT ALL PRIVILEGES on wordpress.* to 'user'@'localhost' identified by 'password';

MariaDB [(none)]>FLUSH PRIVILEGES;

MariaDB [(none)]>exit


mkdir /data

cd /data


wget http://wordpress.org/latest.tar.gz

tar -xzvf latest.tar.gz

cp -avr wordpress/* /var/www/html/

mkdir /var/www/html/wp-content/uploads

chown -R apache:apache /var/www/html/

chmod -R 755 /var/www/html/


cd /var/www/html/

mv wp-config-sample.php wp-config.php


vi wp-config.php


define('DB_NAME', 'wordpress');

define('DB_USER', 'user');

define('DB_PASSWORD', 'password');


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

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload



setenforce 0


vi /etc/selinux/config

SELINUX=disabled

=======================================================================================


3. DNS - Bind

=======================================================================================

# yum -y install bind bind-utils bind-libs bind-chroot


--> chroot 패키지 설치하면 chroot(가상 루트 /var/name/chroot) 폴더에 원본 파일이 생성되고 나머지는 심볼릭 링크


--> named 서비스 데몬을 실행하면  /var/named/chroot/var/named, /var/named/chroot/etc 디렉토리와 설정 파일이 자동으로 생성




# rpm -qa |grep ^bind  |sort

bind-9.8.2-0.37.rc1.el6_7.6.x86_64

bind-chroot-9.8.2-0.37.rc1.el6_7.6.x86_64

bind-libs-9.8.2-0.37.rc1.el6_7.6.x86_64

bind-utils-9.8.2-0.37.rc1.el6_7.6.x86_64


--> 설치된 패키지 확인




# vi /etc/named.conf


-> DNS 데몬 설정 파일




# vi /etc/named.conf




//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


options {

        //listen-on port 53 { 127.0.0.1; };


        listen-on port 53 { any; };


        -> DNS 서버의 port 번호 설정과 접근 할 수 있는 IP 설정 옵션


        -> DNS port 53에 대한 모든 IP가 접근 가능하도록 설정

        listen-on-v6 port 53 { ::1; };

        directory       "/var/named";


        -> zone 파일 디렉토리 설정 옵션

        dump-file       "/var/named/data/cache_dump.db";


        -> cache dump 파일이 생성되는 파일의 디렉토리 설정 옵션


        statistics-file "/var/named/data/named_stats.txt";


        -> 통계파일이 생성되는 디렉토리와 파일의 이름을 지정하는 설정 옵션

        memstatistics-file "/var/named/data/named_mem_stats.txt";


        -> memory관련 통계파일이 생성되는 디렉토리와 파일의 이름을 지정하는 설정 옵션


        allow-query     { any; };


        -> DNS 서버의 쿼리를 허용할 ip 대역 설정


        recursion yes;


        -> 외부에서 Name Server를 지정하여 허용/차단 옵션


        dnssec-enable yes;


        -> DNSSEC 서명검증 기능 설정 (공개키 암호화방식으로 데이터 위조-변조 공격을 막는 설정 )


        -> DNSSEC ( Domain Name System Security Extension ),bind 9버전 부터 적용

        dnssec-validation yes;


        -> DNSSEC 검증 확인 설정

        dnssec-lookaside auto;


        /* Path to ISC DLV key */

        bindkeys-file "/etc/named.iscdlv.key";


        managed-keys-directory "/var/named/dynamic";


         -> DLV ( DNSsec Lookaside Validator )

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


->Name Server의 실행에 있어 디버깅시에 참조 할 수 있는 log파일 생성 위치를 지정하는 설정 옵션




zone "." IN {

        type hint;

        file "named.ca";

};


-> "." 루트 도메인 지정  


​-> type : hint(루트도메인을 지정), master(1차 네임서버), slave(2차 네임서버) 


-> file   : Name Server에 대한 설정을 named.ca라는 파일에서 참조하는 설정


-> named.ca 파일은 13개의 루트 네임서버의 정보가 있다. 


-> 루트 네임서버가 13개일 경우 493Byte으로 UDP 연결이 가능하지만 


    루트 네임서버가 13개 이상일 경우 512Byte가 넘어서 TCP 연결로 해야하기 때문에 부하가 많아 생겨 13개까지 루트 네임서버가 있다.




include "/etc/named.rfc1912.zones";


-> 외부 설정파일 설정 옵션

include "/etc/named.root.key";


-> root 영역을 위한 DNSKey 파일  




# named-checkconf /etc/named.conf


-> conf 파일 정상적인지 체크




# vi /etc/named.rfc1912.zones


-> zone 관련 외부 설정 파일


-> zone 설정을 named.conf에서 설정하지 않고 named.rfc1912.zones 파일에서 설정




// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


zone "localhost.localdomain" IN {

        type master;

        file "named.localhost";

        allow-update { none; };

};


zone "localhost" IN {

        type master;

        file "named.localhost";

        allow-update { none; };

};


zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

        type master;

        file "named.loopback";

        allow-update { none; };

};


zone "1.0.0.127.in-addr.arpa" IN {

        type master;

        file "named.loopback";

        allow-update { none; };

};


zone "0.in-addr.arpa" IN {

        type master;

        file "named.empty";

        allow-update { none; };

};




zone "dongwook.com" IN {


->도메인명 (dongwook.com 도메인명으로 요청이 들어오면 dongwook.zone 파일을 참조해서 질의 응답) 

           type master; 


           -> MASTER / SLAVE 설정


           file "dongwook.zone";


           -> zone 파일 설정 (정방향)


​           allow-update { none; };     


           -> zone 파일 갱신 허용 (any or none)


};






zone "0.168.192.in-addr.arpa" IN {


->192.168.0 대역으로 요청이 들어오면 dongwook.rev 파일을 참조해서 질의 응답) 

           type master; 


           -> MASTER / SLAVE 설정


           file "dongwook.rev";


           -> zone 파일 설정 (역방향)


​           allow-update { none; };     


           -> zone 파일 갱신 허용 (any or none)


};






# named-checkconf /etc/named.rfc1912.zones


-> conf 파일 정상적인지 체크  


-> 아무런 메세지가 발생하지 않으면 OK





=======================================================================================



4. DB - MariaDB (Master, Slave Replication configue)

5. Local Cache - Redis

6. Storage - NFS, GlusterFS

7. Proxy Server(L4) - Haproxy 








'강의자료' 카테고리의 다른 글

AWS 3일 강의 (KREN)  (0) 2018.09.26

+ Recent posts