업데이트일 : Server 기타가이드 목차 ucloud server 비밀번호설정변경방법 ucloud server fail2ban 이용방법 ucloud server root 로그인제한방법 ucloud server 스냅샷 / 이미지서비스 ucloudcf

Similar documents
WiBro 단말규격

워드표준 가이드

머신이미지생성및사용시 주의사항 ( 가이드라인 ) 1 / 18

머신이미지 생성및사용시주의사항 ( 가이드라인 ) 목 차 1. 머싞이미지 생성시주의사항 2. 머싞이미지 사용시주의사항 3. VM 접속보앆강화방법 1 / 18

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Windows 8에서 BioStar 1 설치하기

Cloud Friendly System Architecture

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

PowerPoint 프레젠테이션

System Recovery 사용자 매뉴얼

Install stm32cubemx and st-link utility

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft Word - src.doc

SBR-100S User Manual

PowerPoint 프레젠테이션

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Server Agent Guide

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

워드표준 가이드

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

RHEV 2.2 인증서 만료 확인 및 갱신

Microsoft PowerPoint - 10Àå.ppt

Solaris Express Developer Edition

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

단계

PowerPoint Presentation

Windows Server 2012

View Licenses and Services (customer)

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Network seminar.key

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Chapter 1

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

Title Here

PowerPoint Template

vm-웨어-01장

PowerPoint 프레젠테이션

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

NTD36HD Manual

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

ICAS CADWorx SPLM License 평가판설치가이드

1 Live CD(USB) 란? 1.1 Live CD(USB) 란? LiveCD(USB) 란 CD( 또는 USB) 를하드디스크로인식하여해당매체를기반으로동작하는운영체제를말한다. 즉 CD에설치된운영체제이다. 이는자신의 PC의하드디스크에설치된내용은 CD에그대로복사하였다고생각

슬라이드 1

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Mango220 Android How to compile and Transfer image to Target

휠세미나3 ver0.4

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

chapter4

희망브리지

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

Slide 1

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

DBMS & SQL Server Installation Database Laboratory

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

Microsoft Word - Armjtag_문서1.doc

무시하고진행합니다. $ sudo rootstock -d precise --seed ubuntu-standard -x en_us.utf-8 -f ubuntu -l ubuntu -p ubuntu -i 2G I: Running on a x86_64 machine I: Cre

Remote UI Guide

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

PCServerMgmt7

슬라이드 1

bn2019_2

Tablespace On-Offline 테이블스페이스 온라인/오프라인

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) -

MF5900 Series MF Driver Installation Guide

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

PowerPoint Presentation

VPN.hwp

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

OnTuneV3_Agent_Install

MySQL-Ch10

vRealize Automation용 VMware Remote Console - VMware

01장

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

Transcription:

업데이트일 : 2018-10-23 Server 기타가이드 목차 ucloud server 비밀번호설정변경방법 ucloud server fail2ban 이용방법 ucloud server root 로그인제한방법 ucloud server 스냅샷 / 이미지서비스 ucloudcfg 설치방법 Linux LVM 구성 Data Volume 스냅샷설정방법 Ubuntu OS 버전업그레이드방법 MS-SQL 미러링구성방법 Windows 2012 & SQL 2012 SSMS 기능 Windows 2003 DISK partition starting offset 변경방법 ucloud server 머신이미지이용및주의사항 HDD vs. SSD-provisioned Disk benchmark ucloud server 메타데이터조회방법 ucloud server User-Data 사용방법 ucloud server 비밀번호설정변경방법 서비스개요 서비스 VM 의비밀번호설정변경으로해킹으로인한피해를줄일수있습니다. 비밀번호길이는 8 자이상으로길게설정하고, 비밀번호는 3 개월마다변경할것을추천합니다. 순서 Linux Server에서비밀번호를 8글자이상으로설정 Linux Server에서비밀번호를 3개월마다변경하도록설정 Windows Serve에서비밀번호를 8글자이상으로설정 Windows Serve에서비밀번호를 3개월마다변경하도록설정 과정

1. 비밀번호를 8 글자이상으로설정 (Linux Server) /etc/login.defs 파일을수정할수있도록열어줍니다. 비밀번호의최소길이값인 PASS_MIN_LEG 값을 8 로변경하고저장합니다. (i 를눌러변경하고 esc 키, :wq 로저장합니다.) 일반계정으로비밀번호변경을시도합니다. ( 변경사항은일반계정에적용됩니다. ) 8 자리미만의비밀번호로변경을시도하면변경되지않습니다. 2. 비밀번호를 3 개월마다변경하도록설정 (Linux Server) /etc/login.defs 파일을수정할수있도록열어줍니다. 비밀번호최대유지기한값인 PASS_MAX_DAYS 값을 90 으로변경하고저장합니다. (i 를눌러변경하고 esc 키, :wq 로저장합니다.) 3. 비밀번호를 8 글자이상으로설정 (Linux Server) 제어판 > 관리도구 > 로컬보안정책을확인합니다. ( 실행에서 secpol.msc 를입력해도됨 )

보안설정에서계정정책 > 암호정책을확인합니다 최소암호길이를클릭하여최소문자값을 8 로변경합니다. 8 자리미만의비밀번호로변경을시도해도변경할수없습니다. 4. 비밀번호를 3 개월마다변경하도록설정 (Windows Serve) 제어판 > 관리도구 > 로컬보안정책을확인합니다. ( 실행에서 secpol.msc 를입력해도됨 )

보안설정에서계정정책 > 암호정책을확인합니다. 최대암호사용기간을클릭하여해당값을 90 으로변경합니다. ucloud server fail2ban 이용방법 서비스개요 fail2ban 은 python(2.4 Ver 이상 ) 으로만들어진특정서비스로로그인을몇회이상실패할경우, logfiles 을읽어서일정기간동안접속을차단하는툴로 ssh, ftp 등에무작위로로그인하는 brute force attack 에대응하기위한모듈입니다. iptables, tcpwrapper 등에해당 host 를등록하여특정 host 의접속을차단하는기능을가지고있으며, ssh, apache, ftp 등을이용한접속방어에사용됩니다. 과정 1. rpm 으로 fail2ban 이설치되어있는지확인합니다. 설치가되어있다면위와같은메시지가보입니다. 만일설치되어있지않다면 yum install fail2ban 명령을통해설치할수있습니다.

yum 명령을이용한설치방법이외에도 rpm 명령을이용한설치방법을 2~3 번에설명하였습니다. 2. http://www.fail2ban.org 에서 centos 5.5, x86_64 에맞는 package 를 download 받습니다. 아래는해당 package download link 입니다. http://download.fedora.redhat.com/pub/epel/5/x86_64/fail2ban-0.8.4-23.el5.noarch.rpm wget 명령을통해쉽게다운로드받을수있습니다. 3. 다운받은 package 설치 (rpm 명령으로설치 ) rpm -Uvh fail2ban-0.8.4-23.el5.noarch.rpm 4. usr/bin 에 fail2ban 명령어가존재하는지확인 /etc/fail2ban 에 fail2ban 설정파일이위치하게됩니다. 5. 설정파일인 jail.conf 를열어 [default] section 에서 bantime( 차단시간 ) 과 maxretry( 차단할실패횟수 ) 를적절하게변경해주세요.

각항목설명 Ignoreip : 여기에지정된주소는 fail2ban 에의해차단되지않습니다. 원격에서 VM 에접속하는고객님의경우, 해당 PC 나노트북의 ip 를여기에등록한다면혹시라도패스워드입력실패로인해고객님의 ip 가차단되는경우를예방할수있습니다. Bantime : 특정호스트가일정횟수를넘어서패스워드입력실패가될때, 해당호스트가차단될시간입니다. Maxretry : 특정호스트가차단될실패횟수입니다. 6. 적용하려는 service section 을찾아서 enabled = true 로고쳐주면해당서비스만적용됩니다. 기본으로 ssh 서비스만적용이되어있습니다. [ssh-iptables] 의미는 ssh 접속의경우, iptables 을이용해특정호스트를차단한다는뜻이며, ssh section 이외에도여러다른서비스의경우다양한필터링툴 (tcpwrapper, badbots, shorewall 등 ) 을사용하고있습니다. Section 내의설정내용 Enabled : 해당서비스사용여부 Filter : 로그를읽을때사용할필터 /etc/fail2ban/filter Action : iptable로차단하고, 메일을발송 (/var/spool/mail/root 에서확인 ) Dest mail 은일반메일주소도등록가능합니다. 단이때에는본인의 mail service 가동작하고있어야합니다. ps ef grep sendmail 명령으로 mail process 가동작하는지확인할수있습니다. 만약 mail process 가동작하지않으면 service sendmail start 명령으로해당 process 를실행시킬수있습니다. 제개인메일을입력했을때, 아래와같이메일을받을수있습니다.

Logpath : 읽어서처리할로그파일위치 Maxretry : 차단할실패횟수 Bantime : 차단시간 7. 서비스시작 8. 부팅시자동시작하도록 ntsysv 명령으로등록하거나, chkconfig levels 235 fail2ban on 명령실행 적용사례 fail2ban 이작동하여특정 host 에서일정횟수이상 VM 에접속시도시 iptables 에서해당 host 를일정기간차단하는기능시연 1. 특정 host 에서 fail2ban 이설치된 VM 에접속시도 (password 인증실패 ) jail.conf 내의 maxretry( 차단할실패횟수 ) 는 password 입력실패횟수와는다릅니다. Fail2ban 은 /var/log/secure 의 log 에서표시되는패스워드입력실패 log 의횟수를확인합니다. 위의화면에서는 permission denied 라고표시되는횟수 ( 빨간색으로표시 ) 가 maxretry 에설정한횟수와동일하면 fail2ban 은해당 host 의 ip 를 iptables 에등록하여차단합니다. 2. 일정횟수이상접속시도실패시 VM 에설치한 fail2ban 이작동하여해당 host 의 ip 를 iptables 에등록하여차단합니다.

접속실패 (password 인증실패 ) host 의 ip : 10.0.0.2 /var/log/message 에서해당 host 가차단되는모습을볼수있습니다. 접속실패 (password 인증실패 ) host 의 ip : 10.0.0.2 3. jail.conf 에서설장한 bantime( 차단시간 ) 을넘으면해당 host 의 ip 는 iptables 에서자동으로삭제됩니다. Fail2ban chain 에서해당 host 의 ip 가삭제되었음을확인할수있습니다. /var/log/message 에서해당 host 가 unban 되었음을확인할수있습니다. 접속실패 (password 인증실패 ) host 의 ip : 10.0.0.2 참조 : http://www.fail2ban.org/wiki/index.php/manual ucloud server root 로그인제한방법 서비스개요 Linux 가설치된후에는 default 로시스템관리자인 root 사용자계정만존재하고있습니다. 또한기본적인 ssh 설정으로 root 로바로접속이가능하도록설정되어있습니다. 이러한상황에서 root 사용자로만로그인하여시스템을사용하게되면많은위험에노출되기쉽습니다. 무한스캐닝방법을사용하여 root 계정을통해악의적인접속을시도하는것이그예입니다. 그리하여 root 계정의 ssh 원격접속을허용하지않도록설정하고, 일반사용자계정으로로그인하여 root 권한의작업이필요할때마다 root 권한을얻어작업하는것이바람직합니다. 과정 1. 우선일반사용자계정을추가해야하므로 root 계정으로로그인한후다음과같이새로운계정 (ucloud) 을추가 (adduser) 하고암호 (passwd) 를설정해줍니다

2. vi /etc/ssh/sshd_config 명령어를통해 #PermitRootLogin yes 항목을찾습니다. 3. PermitRootLogin no 로수정하고저장합니다. 수정이완료되면 esc 를누르고 :wq 로저장하여 vi 를빠져나옵니다. 4. Service sshd restart 로수정한 sshd demon 을다시시작합니다. 5. root 계정으로로그인을시도하면 Access denied 란메시지가뜨면서접속이제한됩니다. 6. root 계정접속이제한되었으므로, 새로생성했던 ucloud 계정으로로그인하여사용합니다. 7. root 계정의권한이필요할경우 su 명령으로 root 계정에로그인하여권한을획득합니다. 8. 다시 root 계정의접속을허용하고싶을경우, vi /etc/ssh/sshd_config 명령어를사용하여 PermitRootLogin no 항목을 PermitRootLogin yes 로수정하고, Service sshd restart 로수정한 sshd demon 을다시시작하여원래상태로복구하시면됩니다. 참고특정사용자계정에게만 su 명령어를사용하도록설정하는방법입니다. 1. root 계정으로로그인한후 vi /etc/pam.d/su 실행 2. #auth required pam_wheel.so use_uid 항목의주석 (#) 제거 3. vi /etc/group 를실행하여 whee 그룹에 su 명령사용가능한계정추가 wheel:x:10:root,ucloud 4. "wheel" 그룹에추가된계정들만 "su" 명령어사용가능 ucloud server 스냅샷 / 이미지서비스 ucloudcfg 설치방법 정보

본페이지는 2012 년 3 월 25 일이전에생성된 Windows VM 의안정적인스냅샷 / 이미지서비스를제공하기위해필요한 ucloudcfg.exe 의설치에대해기술합니다. ucloudcfg.exe 는 Windows VM 사용고객의이미지배포시 SID 변경 ( 초기화 ) 을자동으로수행하는기능입니다. exports 파일설정시다음옵션을이용하여다양한환경을구성할수있다. 구분 설치 windows vm 12.3.25 이전생성 ( 기존 ) 필요 12.3.25 이후생성 ( 신규 ) 불필요 linux vm 불필요 Install 가이드 설치파일다운로드파일명 : ucloudcfg.exe 대상 OS : Windows 2003/2008(32,64 bit) 다운로드위치 : https://ucloudbiz.olleh.com/portal/portal.file.html ucloud biz 웹 고객센터 자료실 기타자료 Install ucloudcfg.exe 실행 Windows 2008(32,64bit) 은관리자권한으로실행 1 ucloudcfg.exe 실행 2 다음 선택 3 다음 선택 ( 설치폴더지정 )

4 설치진행 5 완료 UnInstall 가이드 uninstall 1 제어판 > 프로그램추가 / 제거 2 ucloudservice 선택변경 / 제거선택

3 완료 시스템제어서비스로별도의사용자실행이요구되지않습니다. Linux LVM 구성 Data Volume 스냅샷설정방법 구성환경 Linux VM 을생성하면기본적으로 ROOT Disk 20GB 와 Data Disk 80GB 가제공된다. Data Disk 가더필요한경우최대 300GB 용량의 Disk 를 VM 당추가로 5 개까지 attach 가가능하다. 각각의 Data Disk 에개별적으로 File system 을만들어서사용하여도무방하나, 단일마운트포인트에좀더큰공간이필요한경우 LVM 을구성하여사용한다. LVM 구성방법 ucloud server 사용자가이드참고 https://ucloudbiz.olleh.com/manual/ucloud_server_usermanual.pdf 스냅샷생성준비작업 스냅샷생성을위한준비 Ucloud server 의스냅샷기능을이용하면 Disk 의특정시점의백업생성, 생성된스냅샷기반동일 Disk 복제본생성이가능하다. 여러 Disk 로 LV 를구성하여사용하는경우각 Disk 에대해동시에스냅샷을생성하여야스냅샷기반볼륨복원이가능하다. 유의사항 I/O 발생중에 snapshot 을실행하게되면복원시에정합성에문제가발생한다. 정합성조건을만족시켜복원가능한스냅샷생성을위해서는 VM 을정지하거나, LV 를 unmount 를하여 I/O 가발생하지않는시점에서진행한다. 또한이시점에 LVM 으로구성되어있는모든 Disk 에대해 snapshot 을생성해야한다.

동일한 VM 에 LVM snapshot volume 을 mount 하게되면 metadata 중복으로에러가발생한다. (Found duplicate PV uuid: using /dev/xx not /dev/yy) 해당메시지가발생하면 Disk 가정상적으로실행이안되므로기존 Disk 를 detach 후에 mount 한다. Detach 시 LVM disable lvchange an /dev/your_lvm/lvm_name LVM Volume 제거방법 정상적으로 volume 을 detach 하기위해서는다음과같은순서로사용한 LV 를비활성화시킨다. umount [root@testserver /]# mount ( mount 되어있는 LV 를확인 ) /dev/mapper/volgroup00-logvol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/xvda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/mapper/testvg-backup on /backup type ext3 (rw) [root@ TestServer /]# umount /backup ( LV 를 umount 시킨다 ) [root@ TestServer /]# mount ( umount 결과확인 ) /dev/mapper/volgroup00-logvol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/xvda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) lvchange lvchange a n LV 경로 를입력하여 LV 의상태를변경한다. lvchange a n /dev/testvg/backup

스냅샷생성방법 스냅샷생성포탈의콘솔내에서 ucloud server > 클라우드서버리스트 에서서버를선택한다. 하단상세정보에서해당서버에연결되어있는 lvm용 disk를선택한다. 스냅샷생성 버튼을클릭 스냅샷이름을입력하고 확인 버튼을누르면스냅샷이생성된다. lvm 을구성한모든 disk 의스냅샷을생성한다. 생성된스냅샷확인 포탈의콘솔에서 ucloud server > 스냅샷 / 이미지 에서스냅샷을확인한다.

Ubuntu OS 버전업그레이드방법 이문서는업그레이드권고문서가아닌가이드문서임을알려드립니다. Olleh Ucloud biz 에서맊들어진 Ubuntu 10.04(lucid), Ubuntu 11.04(natty) VM 을 Ubuntu 12.04(precise) 로버전업그레이드위한 User 가이드입니다. 여기서말하는버전 (release) 업그레이드란 Ubuntu 10.XX 에서 Ubuntu 11.XX 로의업그레이드, Ubuntu 11.XX 에서 Ubuntu 12.XX 로의업그레이드를말합니다. Ubuntu 에서버전업그레이드방법 https://help.ubuntu.com/community/upgradenotes 위링크에서확인가능하며, 상세설명에대해서는위링크를참조바랍니다. 또한이문서에서설명하는통상버전업그레이드는 do-release-upgrade command 를통해가능하며, do-releaseupgrade 을실행하면 kernel 또한업그레이드되며, do-release-upgrade 명령을통해버전업그레이드가아닌 apt-get install 을통해 Kernel 맊을 upgrade 실행시에도아래적용방법섹션의 grub 패키지설치및 /etc/fstab 을수정 부문을반드시참조하시기바랍니다. 버전업그레이드는많은패키지들이자동업그레이드되므로, 버전업그레이드는 Olleh Ucloud biz 에서권고하는필수사항이아니며, 버젂업그레이드의실행유무는사용하시는고객님의선택이며, 버전업그레이드로인한고객님의 Application 에대한이상유무에대한지원이불가함을미리알려드립니다. 적용방법 ubuntu 버전체크 현재의 release 버전과 kernel 버전을확인합니다. sb_relase a command 를통해현재 release 버전을아래와같이확인가능하며, 확인된 release 버전에따라업그레이드과정이상이합니다. < release 버전확인 > root@ ~# lsb_release a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.04.4 LTS Release: 10.04 Codename: lucid < kernel 버전확인 > root@ ~# uname -a Linux ubuntupgrade46 2.6.38-13-virtual #57~lucid1-Ubuntu SMP Tue Mar 6 20:40:43 UTC 2012 x86_64 GNU/Linux 이제위에서확인된 release 에따라아래의두가지섹션중선택하시어진행하시면됩니다. 적용방법 1. release 10.04 를 release 12.04 로버전업그레이드 적용방법 2. release 11.04 를 release 12.04 로버전업그레이드 1. release 10.04 를 release 12.04 로버전업그레이드 실행하기전에업그레이드이후빈번히발생되는문제를예방하기위해 grub 패키지설치및 /etc/fstab 을수정합니다.

원할한패키지업그레이드를위해 apt repository source list 를아래와같이수정이필요합니다. [ /etc/apt/sources.list 파일을아래내용으로변경후 apt-get update 실행 ] deb http://ftp.daum.net/ubuntu lucid main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-backports main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-backports main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-proposed main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-proposed main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-security main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-security main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-updates main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-updates main multiverse restricted universe root@:~# apt-get update.. 출력내용생략 grub 패키지확인 root# dpkg --list egrep grub## 이버젼이설치되어있다면생략가능 ii grub 0.97-29ubuntu60.10.04.2 GRand Unified Bootloader (Legacy version).. 출력내용생략 grub 패키지설치및 grub 업데이트실행 root# apt-get y install grub Reading package lists... Done Building dependency tree Reading state information... Done 출력내용생략 Processing triggers for man-db... Setting up grub (0.97-29ubuntu60.10.04.2)... [grub update 실행 ] root# update-grub -y Searching for GRUB installation directory... found: /boot/grub Searching for default file... Generating /boot/grub/default file and setting the default boot entry to 0 Searching for GRUB installation directory... found: /boot/grub Testing for an existing GRUB menu.lst file... Could not find /boot/grub/menu.lst file. Generating /boot/grub/menu.lst Searching for splash image... none found, skipping... Found GRUB 2: /boot/grub/core.img Found kernel: /boot/memtest86+.bin Found kernel: /boot/vmlinuz-2.6.38-13-virtual Found GRUB 2: /boot/grub/core.img Found kernel: /boot/memtest86+.bin Updating /boot/grub/menu.lst... done /etc/fatab 수정 : 변경필요부문은빨간색표시 root# dpkg --list egrep grub## 이버젼이설치되어있다면생략가능 ( 변경전 ) UUID= 00cf8b97-f9d2-4733-95e7-ef6352cdf125 / ext3 errors=remount-ro 0 1 ( 변경후 ) UUID= 00cf8b97-f9d2-4733-95e7-ef6352cdf125 / ext3 errors=remount-ro,nobarrier 0 1

NonInteractive 모드로버전업그레이드 do-release-upgrade 명령어실행 NonInteractive : 업그레이드과정중 yes or no 사용자입력생략모드 Interactive : 업그레이드과정중 yes or no 과정절차를사용자가입력해야함 NonInteractive 업그레이드가아닌 Interactive 모드로업그레이드실행 시업그레이드마지막과정의 reboot 물음에 n 선택해서자동 reboot 되지않도록주의해야합니다. root# do-release-upgrade -f DistUpgradeViewNonInteractive Checking for a new ubuntu release Done Upgrade tool signature Done Upgrade tool Done downloading authenticate 'precise.tar.gz' against 'precise.tar.gz.gpg' extracting 'precise.tar.gz' WARNING: Failed to read mirror file Selecting previously deselected package libapt-pkg4.12. (Reading database... 55723 files and directories currently installed.). 화면출력내용생략 update-initramfs: Generating /boot/initrd.img-3.2.0-48-generic Processing triggers for resolvconf... (Reading database... 87872 files and directories currently installed.) Removing libbind9-60... Removing libisccfg60... Removing libdns64... Removing libisccc60... Removing libisc60... Removing liblwres60... Removing libmpfr1ldbl... Removing libpython2.6... Removing libxapian15... Removing linux-headers-2.6.32-40... Removing linux-headers-2.6.38-13-virtual... Removing linux-headers-2.6.38-13... Removing mkpasswd... Removing python2.6... Removing python2.6-minimal... release-upgrader-python-apt: >= 2.6 (['install', 'ok', 'installed']) Removing release-upgrader-python-apt... Processing triggers for libc-bin... ldconfig deferred processing now taking place Processing triggers for man-db... do-release-upgrade 정상실행여부확인및 grub 확인정상적으로업그레이드가완료되었다면아래와같이 release 및커널이 2.6.x 에서 3.2.x 로반영됩니다. 커널버전은 Ubuntu 의 source repository 반영에따라다소차이가있을수있습니다. VM 을리부팅하기전에확인이필요합니다. root# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise root# egrep -v "^#" /boot/grub/menu.lst default 0 timeout 3 hiddenmenu title Ubuntu 12.04.2 LTS, kernel 3.2.0-48-generic root (hd0,0) kernel /boot/vmlinuz-3.2.0-48-generic root=uuid=9407749f-f350-4305-a95b-89c97a7a6dd0 ro quiet splash initrd /boot/initrd.img-3.2.0-48-generic title Ubuntu 12.04.2 LTS, kernel 3.2.0-48-generic (recovery mode) root (hd0,0) kernel /boot/vmlinuz-3.2.0-48-generic root=uuid=9407749f-f350-4305-a95b-89c97a7a6dd0 ro single initrd /boot/initrd.img-3.2.0-48-generic title Ubuntu 12.04.2 LTS, kernel 2.6.38-13-virtual root (hd0,0)

kernel /boot/vmlinuz-2.6.38-13-virtual root=uuid=9407749f-f350-4305-a95b-89c97a7a6dd0 ro quiet splash initrd /boot/initrd.img-2.6.38-13-virtual title Ubuntu 12.04.2 LTS, kernel 2.6.38-13-virtual (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.38-13-virtual root=uuid=9407749f-f350-4305-a95b-89c97a7a6dd0 ro single initrd /boot/initrd.img-2.6.38-13-virtual title Chainload into GRUB 2 root (hd0,0) kernel /boot/grub/core.img title Ubuntu 12.04.2 LTS, memtest86+ root (hd0,0) kernel /boot/memtest86+.bin 이제업그레이드버전및커널을실행한 VM 에반영하기위해 VM 을 reboot 합니다. 아래는 reboot 완료후 VM 정보입니다. release 버전및커널이업그레이드완료됨을알수있습니다. root# lsb_release a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise root# uname -a Linux ubuntu1004 3.2.0-48-generic #74-Ubuntu SMP Thu Jun 6 19:43:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 2. release 11.04 를 release 12.04 로버전업그레이드 버전업그레이드전에업그레이드이후빈번히발생되는문제를예방하기위해 grub 패키지설치및 /etc/fstab 을수정합니다. 원할한패키지업그레이드를위해 apt repository source list 를아래와같이수정이필요합니다. [/etc/apt/sources.list 파일을아래내용으로변경후 apt-get update 실행 ] deb http://ftp.daum.net/ubuntu lucid main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-backports main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-backports main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-proposed main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-proposed main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-security main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-security main multiverse restricted universe deb http://ftp.daum.net/ubuntu lucid-updates main multiverse restricted universe deb-src http://ftp.daum.net/ubuntu lucid-updates main multiverse restricted universe root@:~# apt-get update.. 출력내용생략 grub 패키지버전확인 root# dpkg --list egrep grub ## 이버젼이설치되어있다면생략가능 ii grub 0.97-29ubuntu60.10.04.2 GRand Unified Bootloader (Legacy version) grub 패키지설치및 grub 업데이트실행 root# apt-get y install grub Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: grub-legacy-doc mdadm The following packages will be REMOVED: grub-gfxpayload-lists grub-pc

The following NEW packages will be installed: grub 0 upgraded, 1 newly installed, 2 to remove and 4 not upgraded. Need to get 929 kb of archives. After this operation, 864 kb disk space will be freed. Get:1 http://ftp.daum.net/ubuntu/ lucid-updates/main grub amd64 0.97-29ubuntu60.10.04.2 [929 kb] Fetched 929 kb in 0s (5,744 kb/s) Preconfiguring packages... (Reading database... 41267 files and directories currently installed.) Removing grub-gfxpayload-lists... Removing grub-pc... Processing triggers for man-db... Selecting previously deselected package grub. (Reading database... 41018 files and directories currently installed.) Unpacking grub (from.../grub_0.97-29ubuntu60.10.04.2_amd64.deb)... Processing triggers for man-db... Setting up grub (0.97-29ubuntu60.10.04.2)... [grub update 실행 ] root# update-grub -y Searching for GRUB installation directory... found: /boot/grub Searching for default file... Generating /boot/grub/default file and setting the default boot entry to 0 Searching for GRUB installation directory... found: /boot/grub Testing for an existing GRUB menu.lst file... Could not find /boot/grub/menu.lst file. Generating /boot/grub/menu.lst Searching for splash image... none found, skipping... Found GRUB 2: /boot/grub/core.img Found kernel: /boot/memtest86+.bin Found kernel: /boot/vmlinuz-2.6.38-13-virtual Found GRUB 2: /boot/grub/core.img Found kernel: /boot/memtest86+.bin Updating /boot/grub/menu.lst... done /etc/fatab 수정 : * 변경필요부문은빨간색표시 ( 변경전 ) UUID=9407749f-f350-4305-a95b-89c97a7a6dd0 / ext3 errors=remount-ro 0 1 ( 변경후 ) UUID=9407749f-f350-4305-a95b-89c97a7a6dd0 / ext3 errors=remount-ro,nobarrier 0 1 NonInteractive 모드로버전업그레이드 (do-release-upgrade) 실행 NonInteractive : 업그레이드과정중 yes or no 사용자입력생략모드 Interactive : 업그레이드과정중 yes or no 과정절차를사용자가입력해야함 NonInteractive 업그레이드가아닌 Interactive 모드로업그레이드실행 시업그레이드마지막과정의 reboot 물음에 n 선택해서자동 reboot 되지않도록주의해야합니다. root# do-release-upgrade -f DistUpgradeViewNonInteractive Checking for a new ubuntu release Your Ubuntu release is not supported anymore. For upgrade information, please visit: http://www.ubuntu.com/releaseendoflife Get:1 Upgrade tool signature [198 B] Get:2 Upgrade tool [1471 kb] Fetched 1471 kb in 0s (0 B/s) authenticate 'oneiric.tar.gz' against 'oneiric.tar.gz.gpg' extracting 'oneiric.tar.gz' 화면출력내용생략 Processing triggers for initramfs-tools... update-initramfs: Generating /boot/initrd.img-3.0.0-12-virtual (Reading database... 64475 files and directories currently installed.) Removing discover... Removing libdiscover2... Removing discover-data... Removing libboost-iostreams1.42.0... Removing libffi5... Removing libssl0.9.8... Processing triggers for man-db... Processing triggers for libc-bin... ldconfig deferred processing now taking place

do-release-upgrade 정상실행여부확인및 grub 확인정상적으로업그레이드가완료되었다면아래와같이 release 및커널이 2.6.x 에서 3.0.x 로반영됩니다. 커널버전은 Ubuntu 의 source repository 반영에따라다소차이가있을수있습니다. root# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: 11.10 Codename: oneiric root@ubuntu1004:~# egrep -v "^#" /boot/grub/menu.lst default 0 timeout 3 hiddenmenu title Ubuntu 11.10, kernel 3.0.0-12-virtual root (hd0,0) kernel /boot/vmlinuz-3.0.0-12-virtual root=uuid=00cf8b97-f9d2-4733-95e7-ef6352cdf125 ro quiet splash initrd /boot/initrd.img-3.0.0-12-virtual title root kernel initrd title root kernel initrd title root kernel initrd Ubuntu 11.10, kernel 3.0.0-12-virtual (recovery mode) (hd0,0) /boot/vmlinuz-3.0.0-12-virtual root=uuid=00cf8b97-f9d2-4733-95e7-ef6352cdf125 ro single /boot/initrd.img-3.0.0-12-virtual Ubuntu 11.10, kernel 2.6.38-13-virtual (hd0,0) /boot/vmlinuz-2.6.38-13-virtual root=uuid=00cf8b97-f9d2-4733-95e7-ef6352cdf125 ro quiet splash /boot/initrd.img-2.6.38-13-virtual Ubuntu 11.10, kernel 2.6.38-13-virtual (recovery mode) (hd0,0) /boot/vmlinuz-2.6.38-13-virtual root=uuid=00cf8b97-f9d2-4733-95e7-ef6352cdf125 ro single /boot/initrd.img-2.6.38-13-virtual title Chainload into GRUB 2 root (hd0,0) kernel /boot/grub/core.img title root kernel Ubuntu 11.10, memtest86+ (hd0,0) /boot/memtest86+.bin 이제업그레이드버전및커널을실행한 VM 에반영하기위해 VM 을 reboot 합니다. 아래는 reboot 완료후 VM 정보입니다. release 버전및커널이업그레이드완료됨을알수있습니다. root# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: 11.10 Codename: oneiric root# uname -a Linux ubuntu11-64bit 3.0.0-12-virtual #20-Ubuntu SMP Fri Oct 7 18:19:02 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 여기서주의할점은 release 11.04 의경우는 12.04 로버젂업그레이드위해최초 11.10 버전으로먼저업그레이드이후 11.10 에서다시한번 do-release-upgrade 를통해 12.04 로업그레이드가능합니다. 11.04 -> 11.10 -> 12.04 원하시는최종버전이 12.04 라면 do-release-upgrade 를재실행합니다. root# do-release-upgrade -f DistUpgradeViewNonInteractive Checking for a new ubuntu release 13/16 Your Ubuntu release is not supported anymore. For upgrade information, please visit: http://www.ubuntu.com/releaseendoflife Get:1 Upgrade tool signature [198 B] Get:2 Upgrade tool [1551 kb] Fetched 1551 kb in 0s (0 B/s) extracting 'precise.tar.gz' authenticate 'precise.tar.gz' against 'precise.tar.gz.gpg' No candidate ver: discover

No candidate ver: libboost-iostreams1.42.0 No candidate ver: libdiscover2 No candidate ver: libffi5 No candidate ver: libssl0.9.8 WARNING: Failed to read mirror file No candidate ver: discover No candidate ver: libboost-iostreams1.42.0 No candidate ver: libdiscover2 No candidate ver: libffi5 No candidate ver: libssl0.9.8 apport: unrecognized service Extracting templates from packages: 100% Preconfiguring packages... 화면출력생략 update-initramfs: Generating /boot/initrd.img-3.2.0-23-virtual Processing triggers for resolvconf... (Reading database... 89817 files and directories currently installed.) Removing libapt-inst1.3... Removing libept1... Removing libapt-pkg4.11... Removing libbind9-60... Removing libisccfg62... Removing libdns69... Removing libisccc60... Removing libisc62... Removing liblwres60... Removing liblzma2... Removing libpod-plainer-perl... Removing linux-headers-2.6.38-13-virtual... Removing linux-headers-2.6.38-13... Removing linux-headers-3.0.0-12-virtual... Removing linux-headers-3.0.0-12... Removing python-central... Removing python-gobject-cairo... Removing python-support... Processing triggers for libc-bin... ldconfig deferred processing now taking place Processing triggers for man-db... 재실행후 do-release-upgrade 정상실행여부확인및 grub 확인 root# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise root# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise root# egrep -v "^#" /boot/grub/menu.lst default 0 timeout 3 hiddenmenu title Ubuntu 11.10, kernel 3.0.0-12-virtual root (hd0,0) kernel /boot/vmlinuz-3.0.0-12-virtual root=uuid=00cf8b97-f9d2-4733-95e7- ef6352cdf125 ro quiet splash initrd /boot/initrd.img-3.0.0-12-virtual 이하생략

위에서와같이 12.04 를위한 release 는반영되었으나, grub 리스트에최신커널 3.2.x 가반영되지않았음을알수있습니다. 최종반영을위한 reboot 전에 update-grub 을재실행후반영여부를확인합니다. root# rm -f /boot/grub/menu.lst && update-grub -y Searching for GRUB installation directory... found: /boot/grub Searching for default file... found: /boot/grub/default Testing for an existing GRUB menu.lst file... Could not find /boot/grub/menu.lst file. Generating /boot/grub/menu.lst Searching for splash image... none found, skipping... Found kernel: /boot/vmlinuz-3.0.0-12-virtual Found kernel: /boot/vmlinuz-2.6.38-13-virtual Found GRUB 2: /boot/grub/core.img Found kernel: /boot/memtest86+.bin Updating /boot/grub/menu.lst... done root# egrep -v "^#" /boot/grub/menu.lst default 0 timeout 3 hiddenmenu title Ubuntu 12.04 LTS, kernel 3.2.0-23-virtual root (hd0,0) kernel /boot/vmlinuz-3.2.0-23-virtual root=uuid=00cf8b97-f9d2-4733-95e7- ef6352cdf125 ro quiet splash initrd /boot/initrd.img-3.2.0-23-virtual title Ubuntu 12.04 LTS, kernel 3.2.0-23-virtual (recovery mode) root (hd0,0) kernel /boot/vmlinuz-3.2.0-23-virtual root=uuid=00cf8b97-f9d2-4733-95e7- ef6352cdf125 ro single initrd /boot/initrd.img-3.2.0-23-virtual title Ubuntu 12.04 LTS, kernel 3.0.0-12-virtual root (hd0,0) kernel /boot/vmlinuz-3.0.0-12-virtual root=uuid=00cf8b97-f9d2-4733-95e7- ef6352cdf125 ro quiet splash initrd /boot/initrd.img-3.0.0-12-virtual.. 이하생략 표시부문이추가됨을알수있습니다. 이제마지막으로최종반영을위해 VM 을 reboot 후 release 확인및커널버전을확인합니다. root#lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise root# uname -a Linux (none) 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux MS-SQL 미러링구성방법 본문서는 kt ucloud 상에서 SQL Server 데이터베이스미러링 ( 자동장애조치 ) 을구성하려는사용자에게제공되는가이드문서이다. 데이터베이스미러링 (SQL SERVER) 개요 데이터베이스미러링은 SQL Server 데이터베이스엔진의서로다른서버인스턴스에있어야하는두개의단일데이터베이스복사본을유지관리합니다. 일반적으로두서버인스턴스는서로다른위치의컴퓨터에있습니다. 데이터베이스에서데이터베이스미러링을시작하면이러한서버인스턴스갂의관계 ( 데이터베이스미러링세션이라고함 ) 가시작됩니다. 한서버인스턴스는클라이언트에데이터베이스를제공하고 ( 주서버 ) 다른서버인스턴스는미러링세션의구성및상태에따라상시또는웜대기서버 ( 미러서버 ) 역할을합니다. 데이터베이스미러링세션을동기화하면데이터베이스미러링은커밋된트랜잭션에서데이터손실없이싞속한장애조치 (Failover) 를지원하는상시대기

서버를제공합니다. 세션이동기화되지않은경우미러서버는일반적으로웜대기서버로사용할수있으며데이터가손실될수있습니다. 주서버와미러서버는데이터베이스미러링세션에서파트너로통싞하고협력합니다. 두파트너는세션에서서로보완하는주역할과미러역할을수행합니다. 언제든지한파트너는주역할을수행하고다른파트너는미러역할을수행합니다. 각파트너는현재역할을소유한다고표현합니다. 주역할을소유하는파트너를주서버라고하며주서버의데이터베이스복사본이현재의주데이터베이스입니다. 미러역할을소유하는파트너를미러서버라고하며미러서버의데이터베이스복사본이현재의미러데이터베이스입니다. 프로덕션환경에데이터베이스미러링이구축된경우주데이터베이스가프로덕션데이터베이스가됩니다. 데이터베이스미러링은주데이터베이스에서발생한모든삽입, 업데이트및삭제작업을가능한한빨리미러데이터베이스에대해다시실행하는작업과관렦이있습니다. 다시실행은홗성트랜잭션로그레코드의스트림을미러서버로보내고, 미러서버에서가능한한빨리로그레코드를순서대로미러데이터베이스에적용함으로써이루어집니다. 논리적수준에서작동하는복제와달리데이터베이스미러링은물리적로그레코드수준에서작동합니다. SQL Server 2008 부터주서버는트랜잭션로그레코드의스트림을미러서버에보내기전에압축합니다. 이러한로그압축은모든미러링세션에서발생합니다. - 자동장애조치 (automatic failover) : 주서버를사용할수없게되면미러서버가주서버의역할을맡고해당데이터베이스의복사본을온라인으로전환하여주데이터베이스로사용하도록하는프로세스입니다. 참고 : http://msdn.microsoft.com/ko-kr/library/ms189852.aspx ucloud 환경에서데이터베이스 (Sql server) 미러링 운영모드 : 자동장애조치방식의데이터베이스미러링 OS : Window 2008 R2 또는 windows 2012 std Mssql : MS SQL server 2008 R2 또는 2012 필수VM생성 : 총3개 MssqlDB용 VM2개 (Mssql포함, 데이터디스크제공 ) : 주서버, 미러서버용

[ 클라우드서버신청화면에서 Mssql OS 로생성 ] 모니터링서버용 VM 1 개 (Mssql 미포함, 데이터디스크미제공 ) : 기본 OS + 사용자가 Mssql Express( 무료 ) 다운로드및설치 사전구성 컴퓨터이름변경대상 : 주서버, 미러서버 Mssql DB 용 VM : ex) MssqlA( 주서버 ), MssqlB( 미러서버 ) 모니터 VM : ex) MssqlMonitor( 모니터서버 ) 변경후재부팅 Sql server 최신서비스팩설치대상 : 주서버, 미러서버 SQL Server 2008 r2 sp2 : http://www.microsoft.com/ko-kr/download/details.aspx?id=30437 SQL Server 2012 sp1 : http://www.microsoft.com/ko-kr/download/details.aspx?id=35575 다운로드및설치 sql 버전확인쿼리 : select @@VERSION Sql Server Express 설치 ( 무료 ) 대상 : 모니터서버 sql server 2008 r2 sp2 Express 다운로드 : SQLEXPRWT_x64_KOR.exe(http://www.microsoft.com/kokr/download/details.aspx?id=30438) sql server 2012 sp1 Express 다운로드 : SQLEXPRWT_x86_KOR.exe(http://www.microsoft.com/kokr/download/details.aspx?id=35579) 새로설치선택

기본인스턴스선택

서비스계정 : SQL Server Database Engine 에서 NT AUTHORITY\SYSTEM 선택

설치완료

프로그램 > Microsoft SQL Server > 구성도구 > SQL Server 구성관리자 Sql Server 네트워크구성 > TCP/IP 사용안함 을 사용 으로변경

사용 설정후 SQL Server 다시시작 데이터베이스미러링구성 Host 파일변경하기대상 : 주서버, 미러서버, 모니터서버 C:\Window s\system32\drivers\etc 에서 hosts 파일에각 VM 들의 IP 주소 / 이름추가시작 > 실행 > cmd > ipconfig 로 IP Address확인가능 주서버 DB 백업대상 : 주서버구성을위해데이터 DISK를 E: 로설정및 E:\mssql\data에샘플 DB 파일을위치주서버 Mssql 로그인백업전에현재 DB의복구모델이 전체 인지확인데이터베이스 > AdventureWorks2008R2( 샘플 DB) > 우클릭 > 속성 > 옵션 > 복구모델 > 전체 데이터베이스 > AdventureWorks2008R2( 샘플 DB) > 우클릭 > 태스크 > 백업

임의의백업경로 e:\mssql\backup\adventurework.bak 지정 확인

미러서버 DB 복원 대상 : 미러서버 복원전 Mssql 주서버에서생성한백업파일을미러서버로복사하여야한다. ex) 주서버 e:\mssql\backup\adventurework.bak 를미러서버 e:\mssql\ backup \adventurework.bak 로복사 데이터베이스 > 데이터복원선택 복원에사용할원본 > 장치 >... 선택

파일 > 추가 > 백업파일경로추가 ex) e:\mssql\backup\adventurework.bak

데이터베이스선택 옵션 > 복구상태선택 > RESTORE WITH NORECOVERY 선택

Sql Server 2012 는복구상태 > RESTORE WITH NORECOVERY 선택 복원완료

복원 DB 가복원중으로변경됨 인증서파일생성대상 : 각주서버, 미러서버, 모니터서버빨간색글씨부분을사용자에맞게수정해서사용새쿼리 > master에서실행 ( 한단위씩실행 ) 대상 : 주서버 (db_a)----------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_a_cert with subject='db a certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_a_cert, encryption=required, role=all) -- 인증서를 C 드라이브에백업 backup certificate db_a_cert to file='c:\db_a_cert.cer' 대상 : 미러서버 (db_b)-------------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_b_cert with subject='db b certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_b_cert, encryption=required, role=all) -- 인증서를 C 드라이브에백업 backup certificate db_b_cert to file='c:\db_b_cert.cer' 대상 : 모니터서버 (db_c)-------------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_c_cert with subject='db c certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_c_cert, encryption=required, role=witness) -- 인증서를 C 드라이브에백업 backup certificate db_c_cert to file='c:\db_c_cert.cer' 예제

생성한인증서를각서버의 C:\ 에모두복사 모든서버에생성된 3 개의인증서가동일하게존재하여야한다. 로그인계정생성및 End Point 생성대상 : 각주서버, 미러서버, 모니터서버빨간색글씨부분을사용자에맞게수정해서사용새쿼리 > master에서실행 ( 한단위씩실행 ) 대상 : 주서버 (db_a)----------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 미러서버의인증서에권한부여 create certificate db_b_cert authorization administrator from file='c:\db_b_cert.cer' -- 모니터서버의인증서에권한부여 create certificate db_c_cert authorization administrator from file='c:\db_c_cert.cer' -- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator 대상 : 미러서버 (db_b)-------------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 주서버의인증서에권한부여 create certificate db_a_cert authorization administrator from file='c:\db_a_cert.cer' -- 모니터서버의인증서에권한부여 create certificate db_c_cert authorization administrator

from file='c:\db_c_cert.cer' -- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator 대상 : 모니터서버 (db_c)-------------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 주서버의인증서에권한부여 create certificate db_a_cert authorization administrator from file='c:\db_a_cert.cer' -- 미러서버의인증서에권한부여 create certificate db_b_cert authorization administrator from file='c:\db_b_cert.cer' -- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator SQL Server 및 Windows 인증모드변경및 sysadmin 부여대상 : 주서버, 미러서버, 모니터서버미러링전각 SQL 서버의서버인증방식은 SQL Server 및 Windows 인증모드로변경속성 > 보안 > SQLServer 및 Windows 인증모드선택 SQL 서비스다시시작 " 로그인계정생성및 End Point 생성 " 에서생성한 administrator 계정에 sysadmin 권한부여 보안 > administrator 선택 > 속성 > 서버역할

sysadmin 선택 미러링마법사설정 대상 : 주서버 서버에서 AdventureWorks2008Rs 선택 > 우클릭 > 태스크 > 미러선택 보안구성선택 > 미러링보안구성마법사실행

모니터링서버포함하여구성 미러링모니터서버인스턴스선택

주서버확인 미러서버등록 : 연결선택 > 계정등록 > SQLServer 인증 > " 로그인계정생성및 End Point 생성 " 에서등록한계정으로로그인

미러서버등록 모니터링서버 (MSSQLMONITOR) 연결및등록

빈칸 > 다음

미러링 시작안함 선택 자동장애조치선택확인후 > 미러링시작

아래와같이 DB 상태가변경된다 주서버 : MSSQLA 미러서버 : MSSQLB 미러링동작확인 DB 선택 > 테스크 > 미러

장애조치선택 예 선택 주서버였던 MSSQLA 는미러서버로변경확인

미러서버였던 MSSQLB 는주서버로변경확인 주서버를 reboot 했을때미러서버가주서버가되는지확인

KT ucloud 데이터베이스 (SQL SERVER) 미러링구성가이드 ucloud 환경에서데이터베이스 (Sql server) 미러링 [ 데이터베이스미러링구성도 ] 운영모드 : 자동장애조치방식의데이터베이스미러링 OS : Window 2008 R2 또는 windows 2012 std Mssql : MS SQL server 2008 R2 또는 2012 필수VM생성 : 총3개 MssqlDB용 VM2개 (Mssql포함, 데이터디스크제공 ) : 주서버, 미러서버용 [ 클라우드서버신청화면에서 Mssql OS 로생성 ] 모니터링서버용 VM 1 개 (Mssql 미포함, 데이터디스크미제공 ) : 기본 OS + 사용자가 Mssql Express( 무료 ) 다운로드및설치 사전구성 컴퓨터이름변경 대상 : 주서버, 미러서버 Mssql DB 용 VM : ex) MssqlA( 주서버 ), MssqlB( 미러서버 )

모니터 VM : ex) MssqlMonitor( 모니터서버 ) 변경후재부팅 Sql server 최신서비스팩설치대상 : 주서버, 미러서버 SQL Server 2008 r2 sp2 : http://www.microsoft.com/ko-kr/download/details.aspx?id=30437 SQL Server 2012 sp1 : http://www.microsoft.com/ko-kr/download/details.aspx?id=35575 다운로드및설치 sql 버전확인쿼리 : select @@VERSION Sql Server Express 설치 ( 무료 ) 대상 : 모니터서버 sql server 2008 r2 sp2 Express 다운로드 : SQLEXPRWT_x64_KOR.exe(http://www.microsoft.com/kokr/download/details.aspx?id=30438) sql server 2012 sp1 Express 다운로드 : SQLEXPRWT_x86_KOR.exe(http://www.microsoft.com/kokr/download/details.aspx?id=35579) 새로설치선택

기본인스턴스선택

서비스계정 : SQL Server Database Engine 에서 NT AUTHORITY\SYSTEM 선택

설치완료 프로그램 > Microsoft SQL Server > 구성도구 > SQL Server 구성관리자

Sql Server 네트워크구성 > TCP/IP 사용안함 을 사용 으로변경 사용 설정후 SQL Server 다시시작 데이터베이스미러링구성 Host 파일변경하기대상 : 주서버, 미러서버, 모니터서버 C:\Window s\system32\drivers\etc 에서 hosts 파일에각 VM 들의 IP 주소 / 이름추가시작 > 실행 > cmd > ipconfig 로 IP Address확인가능

주서버 DB 백업대상 : 주서버구성을위해데이터 DISK를 E: 로설정및 E:\mssql\data에샘플 DB 파일을위치주서버 Mssql 로그인백업전에현재 DB의복구모델이 전체 인지확인데이터베이스 > AdventureWorks2008R2( 샘플 DB) > 우클릭 > 속성 > 옵션 > 복구모델 > 전체 데이터베이스 > AdventureWorks2008R2( 샘플 DB) > 우클릭 > 태스크 > 백업

임의의백업경로 e:\mssql\backup\adventurework.bak 지정 확인

미러서버 DB 복원 대상 : 미러서버 복원전 Mssql 주서버에서생성한백업파일을미러서버로복사하여야한다. ex) 주서버 e:\mssql\backup\adventurework.bak 를미러서버 e:\mssql\ backup \adventurework.bak 로복사 데이터베이스 > 데이터복원선택 복원에사용할원본 > 장치 >... 선택

파일 > 추가 > 백업파일경로추가 ex) e:\mssql\backup\adventurework.bak

데이터베이스선택 옵션 > 복구상태선택 > RESTORE WITH NORECOVERY 선택

Sql Server 2012 는복구상태 > RESTORE WITH NORECOVERY 선택 복원완료

복원 DB 가복원중으로변경됨 인증서파일생성대상 : 각주서버, 미러서버, 모니터서버빨간색글씨부분을사용자에맞게수정해서사용새쿼리 > master에서실행 ( 한단위씩실행 ) 대상 : 주서버 (db_a)----------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_a_cert with subject='db a certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_a_cert, encryption=required, role=all) -- 인증서를 C 드라이브에백업 backup certificate db_a_cert to file='c:\db_a_cert.cer' 대상 : 미러서버 (db_b)-------------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_b_cert with subject='db b certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_b_cert, encryption=required, role=all) -- 인증서를 C 드라이브에백업 backup certificate db_b_cert to file='c:\db_b_cert.cer' 대상 : 모니터서버 (db_c)-------------- -- 마스터키인증비밀번호생성 create master key encryption by password ='P@ssw0rd' -- 인증서생성. 인증서이름과만료일을설정 create certificate db_c_cert with subject='db c certificate', start_date='2009/1/1', expiry_date='2100/12/31' -- 미러링을수행하기위한환경을설정 create endpoint endpoint_mirroring state=started as tcp(listener_port=5022, listener_ip=all) for database_mirroring(authentication=certificate db_c_cert, encryption=required, role=witness) -- 인증서를 C 드라이브에백업 backup certificate db_c_cert to file='c:\db_c_cert.cer' 예제

생성한인증서를각서버의 C:\ 에모두복사 모든서버에생성된 3 개의인증서가동일하게존재하여야한다. 로그인계정생성및 End Point 생성대상 : 각주서버, 미러서버, 모니터서버빨간색글씨부분을사용자에맞게수정해서사용새쿼리 > master에서실행 ( 한단위씩실행 ) 대상 : 주서버 (db_a)----------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 미러서버의인증서에권한부여 create certificate db_b_cert authorization administrator from file='c:\db_b_cert.cer' -- 모니터서버의인증서에권한부여 create certificate db_c_cert authorization administrator from file='c:\db_c_cert.cer' -- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator 대상 : 미러서버 (db_b)-------------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 주서버의인증서에권한부여 create certificate db_a_cert authorization administrator from file='c:\db_a_cert.cer' -- 모니터서버의인증서에권한부여 create certificate db_c_cert authorization administrator from file='c:\db_c_cert.cer'

-- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator 대상 : 모니터서버 (db_c)-------------- -- 로그인을 administrator 이라는이름으로생성 create login administrator with password='p@ssw0rd' -- 사용자를 administrator 이라는이름으로생성 create user administrator from login administrator -- 주서버의인증서에권한부여 create certificate db_a_cert authorization administrator from file='c:\db_a_cert.cer' -- 미러서버의인증서에권한부여 create certificate db_b_cert authorization administrator from file='c:\db_b_cert.cer' -- 끝점연결허용 grant connect on endpoint::endpoint_mirroring to administrator SQL Server 및 Windows 인증모드변경및 sysadmin 부여대상 : 주서버, 미러서버, 모니터서버미러링전각 SQL 서버의서버인증방식은 SQL Server 및 Windows 인증모드로변경속성 > 보안 > SQLServer 및 Windows 인증모드선택 SQL 서비스다시시작 " 로그인계정생성및 End Point 생성 " 에서생성한 administrator 계정에 sysadmin 권한부여 보안 > administrator 선택 > 속성 > 서버역할

sysadmin 선택 미러링마법사설정 대상 : 주서버 서버에서 AdventureWorks2008Rs 선택 > 우클릭 > 태스크 > 미러선택 보안구성선택 > 미러링보안구성마법사실행

모니터링서버포함하여구성 미러링모니터서버인스턴스선택

주서버확인 미러서버등록 : 연결선택 > 계정등록 > SQLServer 인증 > " 로그인계정생성및 End Point 생성 " 에서등록한계정으로로그인

미러서버등록 모니터링서버 (MSSQLMONITOR) 연결및등록

빈칸 > 다음

미러링 시작안함 선택 자동장애조치선택확인후 > 미러링시작

아래와같이 DB 상태가변경된다 주서버 : MSSQLA 미러서버 : MSSQLB 미러링동작확인 DB 선택 > 테스크 > 미러

장애조치선택 예 선택 주서버였던 MSSQLA 는미러서버로변경확인

미러서버였던 MSSQLB 는주서버로변경확인 주서버를 reboot 했을때미러서버가주서버가되는지확인

Windows 2012 & SQL 2012 SSMS 기능 가이드개요 Windows Server 2012 의 User Interface 가 Windows Server 2008 이전의운영체제의형태와는많이달라, 처음 Windows Server 2012 제품군을사용하는사용자들의 SQL Server Management Studio (SSMS) 실행에편의를제공하는가이드문서 서비스실행방법 시작메뉴클릭 시작메뉴는전체화면의왼쪽하단모서리로마우스를가져다대면팝업이되는형식으로구성, 시작메뉴가팝업이되면클릭 앱모두보기버튼활성화 시작메뉴에서 < 그림 2> 처럼모든프로그램이보이지않아 SSMS 를찾을수없을경우, 배경화면에서마우스를우클릭하여앱모두보기버튼을활성화

앱모두보기버튼클릭 우측하단의앱모두보기버튼을클릭 SQL Server Management Studio 아이콘클릭 모든프로그램 ( 앱 ) 들이화면에디스플레이가되면 SSMS 아이콘을클릭하여실행 SQL Server Management Studio 아이콘클릭 SSMS 또는그외의자주사용하는프로그램의아이콘을우클릭하면 < 그림 5> 의화면과같이하단에고정할수있는메뉴가활성화되면 시작화면에고정 과같은추가기능선택가능

Windows 2003 DISK partition starting offset 변경방법 서비스개요 2012/07/05 일이후 ucloud server 에서만들어진 Window 2003 VM 의경우 storage 특성상 OS 에 default 로되어있는 partition starting offset size (32,256) 에서성능에저하가발생할수있기에해당 storage 에맞는효율적인값 (32,756) 으로설정하는것을권고합니다. 순서 1. Partition 설정 (32,756) 2. Disk에경로부여 3. 확인 과정 Partition 설정 disk attach 후 관리도구 > 컴퓨터관리선택

컴퓨터관리창에서디스크관리선택 디스크관리를선택하면아래와같이팝업이동작한다. 이때수동으로설정하기위해취소를누른다. partition 설정을하기위해 CMD 실행

cmd 를통해 diskpart 수행 수행순서는위의그림과같다. diskpart: dispart option 으로들어간다. list disk: 작업하고자하는 Disk 선택 (disk0 는 root 이므로 disk1 부터 data disk 이다 ) select disk 1: 작업할 disk 선택 create partition primary align=32: Partition 작업수행 exit: Diskpart 종료 partition 이완료되었으면컴퓨터관리에서아래와같이확인

Disk 경로부여 드라이브문자및경로변경선택 Partition 선택후 disk 를사용하기위해서는해당 disk 에대해경로지정필요 원하는경로로선택

설정완료 확인 Msinfo32 를통해설정확인 구성요소 -> 저장소 -> 디스크선택후최근에작업한 disk 의 starting offset 확인 32,768 바이트 ucloud server 머신이미지이용및주의사항 머신이미지 ' 생성시설치된모든 s/w 들은최신의보안패치가적용되어야하며, 최소한아래에나열된 ' 머신이미지 ' 생성가이드라인을적용한후에공개되어야한다. 모든서비스들과사용자인증프로토콜들은 disable 시켜야한다. ( 예 : telnet, FTP 등 ) 불필요한 network service 들은 run-level 설정에서제외시켜서자동시작시키지않는다. 오직관리자서비스 (SSH, RDP) 와 ' 머신이미지 ' 에설치된 application 들을위한서비스들만필요하다. 모든접속 public key 들은시스템에서제거한다. ' 머신이미지 ' 에설치된모든 s/w 들은내부 default 계정과암호가없어야한다. Linux templates : Password 보안정책반영 : 패스워드최소 8 자이상사용, 90 일마다

변경, 만료 7 일젂경고 (centos & RHEL : /etc/login.defs 수정 ) PASS_MIN_LEN 8 PASS_MAX_DAYS 90 PASS_WARN_AGE 7 root를제외한모든 user 계정과암호제거모든 SSH public and private key pairs 제거모든 shell history( 작업이력정보 ) 와 message log파일제거 (wtmp clean up,.bash_history 삭제, history c 로 cache 된이력까지삭제 ) rm f /root/.bash_history cp /dev/null /var/log/wtmp cp /dev/null /var/log/messages history -c Windows templates : guest account 제거 Windows event log 제거인증받지않은사용자가접근할수있는어떠한파일공유설정도허용금지. 모든파일공유기능 disable. VM 접속보안강화방법 비밀번호설정변경 서비스개요 서비스 VM 의비밀번호설정변경으로해킹으로인한피해를줄일수있습니다. 비밀번호길이는 8 자이상으로길게설정하고, 비밀번호는 3 개월마다변경할것을추천합니다. 순서 1. 리눅스서버에서비밀번호를 8 글자이상으로설정 2. 리눅스서버에서비밀번호를 3 개월마다변경하도록설정 3. 윈도우서버에서비밀번호를 8 글자이상으로설정 4. 윈도우서버에서비밀번호를 3 개월마다변경하도록설정 비밀번호를 8 글자이상으로설정 리눅스서버 /etc/login.defs 파일을수정할수있도록열어줍니다. 비밀번호의최소길이값인 PASS_MIN_LEG 값을 8 로변경하고저장합니다.

(i 를눌러변경하고 esc 키, :wq 로저장합니다.) 일반계정으로비밀번호변경을시도합니다. ( 변경사항은일반계정에적용됩니다.) 8 자리미만의비밀번호로변경을시도하면변경되지않습니다. 비밀번호를 3 개월마다변경하도록설정 - 리눅스서버 /etc/login.defs 파일을수정할수있도록열어줍니다 비밀번호최대유지기한값인 PASS_MAX_DAYS 값을 90 으로변경하고저장합니다 (i 를눌러변경하고 esc 키, :wq 로저장합니다.) 비밀번호를 8 글자이상으로설정 윈도우서버 제어판 > 관리도구 > 로컬보안정책을확인합니다. ( 실행에서 secpol.msc 를입력해도됨 )

보안설정에서계정정책 > 암호정책을확인합니다. 최소암호길이를클릭하여최소문자값을 8 로변경합니다. 8 자리미만의비밀번호로변경을시도해도변경할수없습니다. 비밀번호를 3 개월마다변경하도록설정 - 윈도우서버

제어판 > 관리도구 > 로컬보안정책을확인합니다. ( 실행에서 secpol.msc 를입력해도됨 ) 보안설정에서계정정책 > 암호정책을확인합니다. 최대암호사용기간을클릭하여해당값을 90 으로변경합니다. Fail 2 ban 설치및설정 서비스개요 fail2ban 은 python(2.4 Ver 이상 ) 으로만들어진특정서비스로로그인을몇회이상실패할경우, logfiles 을읽어서일정기간동안접속을차단하는툴로 ssh, ftp 등에무작위로로그인하는 brute force attack 에대응하기위한모듈입니다.

Yum 을이용한설치과정 rpm 으로 fail2ban 이설치되어있는지확인합니다 설치가되어있다면위와같은메시지가보입니다. 만일설치되어있지않다면 yum install fail2ban 명령을통해설치할수있습니다. (Package 를찾지못하는경우 yum install epel-release 를먼저설치후 Yum clean all 명령실행, 이후 yum install fail2ban 실행 ) Rpm 파일을이용한설치과정 http://www.fail2ban.org 에서 OS 버전에맞는 package를 download 받습니다아래는해당 package download link입니다. https://dl.fedoraproject.org/pub/epel/6/x86_64/fail2ban-0.9.2-1.el6.noarch.rpm (CentOS6/RHEL6 64bit 전용 ) ( 해당 URL은 epel repo변경에따라달라질수있습니다 ) wget 명령을통해쉽게다운로드받을수있습니다. 다운받은 package 설치 (rpm 명령으로설치 ) # rpm -Uvh fail2ban-0.9.2-1.el6.noarch.rpm 타 OS 버전및연관 Package 들은모두 https://dl.fedoraproject.org/pub/epel/ 에서 Download 가능 ( 해당 URL 은 epel repo 변경에따라달라질수있습니다 ) Fail 2 ban 설정과정 usr/bin 에 fail2ban 명령어가존재하는지확인

/etc/fail2ban 에 fail2ban 설정파일이위치하게됩니다. 설정파일인 jail.conf 를열어 [default] section 에서 bantime( 차단시간 ) 과 maxretry( 차단할실패횟수 ) 를적절하게변경해주세요 각항목설명 Ignoreip : 여기에지정된주소는 fail2ban 에의해차단되지않습니다. 원격에서 VM 에접속하는고객님의경우, 해당 PC 나노트북의 ip 를여기에등록한다면혹시라도패스워드입력실패로인해고객님의 ip 가차단되는경우를예방할수있습니다. Bantime : 특정호스트가일정횟수를넘어서패스워드입력실패가될때, 해당호스트가차단될시간입니다 Maxretry : 특정호스트가차단될실패횟수입니다 적용하려는 service section 을찾아서 enabled = true 로고쳐주면해당서비스만적용됩니다. 기본으로 ssh 서비스만적용이되어있습니다 [ssh-iptables] 의미는 ssh 접속의경우, iptables 을이용해특정호스트를차단한다는뜻이며, ssh section 이외에도여러다른서비스의경우다양한필터링툴 (tcpwrapper, badbots,shorewall 등 ) 을사용하고있습니다 Section 내의설정내용 Enabled : 해당서비스사용여부 Filter : 로그를읽을때사용할필터 (/etc/fail2ban/filter) Action : iptable로차단하고, 메일을발송 (/var/spool/mail/root 에서확인 ) Logpath : 읽어서처리할로그파일위치

Maxretry : 차단할실패횟수 Bantime : 차단시간 Dest mail 은일반메일주소도등록가능합니다. 단이때에는본인의 mail service 가동작하고있어야합니다. ps ef grep sendmail 명령으로 mail process 가동작하는지확인할수있습니다. 만약 mail process 가동작하지않으면 service sendmail start 명령으로해당 process 를실행시킬수있습니다. 제개인메일을입력했을때, 아래와같이메일을받을수있습니다. 서비스시작 # service fail2ban start 부팅시자동시작하도록 ntsysv 명령으로등록혹은아래명령실행 # chkconfig levels 235 fail2ban on Fail 2 ban 적용사례 fail2ban 이작동하여특정 host 에서일정횟수이상 VM 에접속시도시 iptables 에서해당 host 를일정기간차단하는기능시연 특정 host 에서 fail2ban 이설치된 VM 에접속시도 (password 인증실패 ) jail.conf 내의 maxretry( 차단할실패횟수 ) 는 password 입력실패횟수와는다릅니다. Fail2ban 은 /var/log/secure 의 log 에서표시되는패스워드입력실패 log 의횟수를확인합니다. 위의화면에서는 permission

denied 라고표시되는횟수 ( 빨간색으로표시 ) 가 maxretry 에설정한횟수와동일하면 fail2ban 은해당 host 의 ip 를 ptables 에등록하여차단합니다 일정횟수이상접속시도실패시 VM 에설치한 fail2ban 이작동하여해당 host 의 ip 를 iptables 에등록하여차단합니다 접속실패 (password 인증실패 ) host 의 ip : 10.0.0.2 /var/log/message 에서해당 host 가차단되는모습을볼수있습니다. 접속실패 (password 인증실패 ) host 의 ip : 10.0.0.2 Jail.conf 에서설정한 bantime( 차단시간 ) 을넘으면해당 host 의 ip 는 iptables 에서자동으로삭제됩니다. Fail2ban chain에서해당 host의 ip가삭제되었음을확인할수있습니다. /var/log/message 에서해당 host가 unban 되었음을확인할수있습니다. 참조 : http://www.fail2ban.org/wiki/index.php/manual IPTABLES를이용한 SSH BRUTE FORCE 공격방어 (SOURCE IP 접근제한 ) Sshd config 에서 root 로그인제한 서비스개요 Linux 가설치된후에는 default 로시스템관리자인 root 사용자계정만존재하고있습니다. 또한기본적인 ssh 설정으로 root 로바로접속이가능하도록설정되어있습니다. 이러한상황에서 root 사용자로만로그인하여시스템을사용하게되면많은위험에노출되기쉽습니다. 무한스캐닝방법을사용하여 root 계정을통해악의적인접속을시도하는것이그예입니다. 그리하여 root 계정의 ssh 원격접속을허용하지않도록설정하고, 일반사용자계정으로로그인하여 root 권한의작업이필요할때마다 root 권한을얻어작업하는것이바람직합니다 과정 우선일반사용자계정을추가해야하므로 root 계정으로로그인한후다음과같이새로운계정 (ucloud) 을추가 (adduser) 하고암호 (passwd) 를설정해줍니다.

vi /etc/ssh/sshd_config 명령어를통해 #PermitRootLogin yes 항목을찾습니다. PermitRootLogin no 로수정하고저장합니다. 수정이완료되면 esc 를누르고 :wq 로저장하여 vi 를빠져나옵니다. Service sshd restart 로수정한 sshd demon 을다시시작합니다. root 계정으로로그인을시도하면 Access denied 란메시지가뜨면서접속이제한됩니다. root 계정접속이제한되었으므로, 새로생성했던 ucloud 계정으로로그인하여사용합니다. root 계정의권한이필요할경우 su 명령으로 root 계정에로그인하여권한을획득합니다 다시 root 계정의접속을허용하고싶을경우, vi /etc/ssh/sshd_config 명령어를사용하여 PermitRootLogin no 항목을 PermitRootLogin yes 로수정하고, Service sshdrestart 로수정한 sshd demon 을다시시작하여원래상태로복구하시면됩니다. 참고 특정사용자계정에게만 su 명령어를사용하도록설정하는방법입니다. 1. root 계정으로로그인한후 vi /etc/pam.d/su 실행 2. #auth required pam_wheel.so use_uid 항목의주석 (#) 제거 3. vi /etc/group 를실행하여 whee 그룹에 su 명령사용가능한계정추가 wheel:x:10:root,ucloud 4. "wheel" 그룹에추가된계정들만 "su" 명령어사용가능

IPTABLES 를이용한 SSH BRUTE FORCE 공격방어 (SOURCE IP 접근제한 ) - Iptables 란? 커널상에서특정조건을가지고있는패킷에대해허용 (Accept) 과차단 (Drop) 등의정책을등록할수있는패킷필터 iptables -A INPUT -s [ 발신지 ] --sport [ 발신지포트 ] -d [ 목적지 ] --dport [ 목적지포트 ]-j [ 정책 ] Commands -A : 새로운규칙추가 (--append) -D : 규칙삭제 (--delete) -C : 패킷을테스트 (--check) -I : 새로운규칙삽입 (--Insert) -R : 새로운규칙교체 (--replace) -L : 새로운규칙출력 (--list) -F : 체인의모든규칙삭제 (--flush) -Z : 모든체인의패킷과바이트카운터값을 0 으로 (--zero) -N : 새로운체인생성 (--new) -X : 체인삭제 (--delete-chain) -P : 기본정책변경 (--popicy) Match -p : 패킷의포트번호또는이름 -s : 패킷의발신지 -d : 패킷의도착지 -i : 규칙을적용할인터페이스 -j : 규칙에맞는패킷처리방식 과정 1. 허용 ip 주소등록 iptables -A INPUT -s [ 허용주소 ] -p tcp --dport [SSH port] - j ACCEPT 허용주소형태의예 127.0.0.1 192.168.1.0/24 또는 192.168.1.0/255.255.255.0 0/0 ( 모든 IP) 2. 허용 ip 주소외 SSH port에대한접근차단 iptables -A INPUT -p tcp --dport [SSH port] -jdrop iptables 방화벽은테이블형식으로정책을관리하며, 등록순서에있어먼저등록한정책에대해서효력이우선시되기때문에등록순서가매우중요. 허용정책 (ACCEPT) 을먼저등록한후거부정책 (DROP) 을등록하여야함 적용된정책보기 : iptables list 저장하기 : /etc/rc.d/init.d/iptables 있는시작스크립트를이용하여저장 ( 재부팅시적용 ) /etc/rc.d/init.d/iptables save

허용되지않는 IP 접근대한로그출력 iptables -A INPUT -s! [ 허용주소 ] -p tcp --dport [SSH port] - j LOG 기록된로그보기 : cat /var/log/messages 로그정책이반영된 iptables list : 로그정책은 Drop 정책보다먼저등록하여야함 참조 : http://www.netfilter.org/projects/iptables/index.html HDD vs. SSD-provisioned Disk benchmark 테스트환경 HDD : Seoul-M zone, 12vCore 32GB, InnoDB 5.6, 300GB disk SSD-provisioned : Seoul-M zone, 12vCore 32GB, InnoDB 5.6, 300GB disk (20000 IOPS) 사용툴 : Sysbench 파라미터그룹설정 디스크성능 (IOPS) 에따른영향을효과적으로측정하기위해최대혀용접속수를늘리고 Query cache 사용을끕니다. mysql5.6.24_default_large 를기초로아래파라미터수정후생성하여적용하였습니다. innodb_thread_concurrency = 0 max_connections = 10000 max_user_connections = 0 query_cache_size = 0 query_cache_type = 0 테스트진행 사전에 Sysbench prepare 를통해 120GB 데이터베이스를생성하였습니다. Sysbench test mode 는 OLTP 로진행되었습니다. Read only 와 Read+Write(7:3) 두시나리오로진행되었습니다. 한실행당 10 분씩진행하였고, Warm-up 이라생각되는최초 3 회결과는제외하였습니다. 성능결과 ucloud server 메타데이터조회하기

자동화혹은기타목적으로생성되는 ucloud server 의메타데이터를확인하고자할때는아래와같은방법을사용합니다. ( 아래방법은단순사용예시이며고객님이원하시는다양한방식으로사용이가능합니다.) 전체순서 Virtual Router IP 찾기 -> Metadata 확인 -> (Optional) instance-id 기반으로 listvirtualmachines API 호출 1. Virtual Router IP 찾기 Linux Virtual Router IP 를찾기위해서는, 생성된서버내에서아래와같이 dhcp server 주소를조회해야합니다. $ cat /var/lib/dhclient/dhclient--eth0.lease grep dhcp-server-identifier tail -1 혹은 # cat /var/lib/dhcp/dhclient-eth0.leases grep dhcp-server-identifier tail -1 Windows [PowerShell 예시 01] $temp = Get-WmiObject Win32_NetworkAdapterConfiguration? {$_.DHCPEnabled -eq $true -and $_.DHCPServer -ne $null} select DHCPServer $DHCPIP="$temp".split("=").split("}") select -last 2 $DHCPIP 172.27.0.160 <- DHCP IP Address [PowerShell 예시 02] $temp = ipconfig /all Select-String -Pattern "DHCP Server" $DHCPIP = "$temp".split(": ") select -last 1 $DHCPIP 172.27.0.160 <- DHCP IP Address 2. Metadata 요청 위에서확인한 Virtual Router IP 를통해서 Metadata 를확인합니다. $ curl http://[virtual Router IP]/latest/[meta data 명 ] 혹은 $ wget http://[virtual Router IP]/latest/[meta data 명 ] 예시 $ curl http://172.27.0.200/latest/instance-id

b9e03b9d-e428-46e8-8cf8-d04c5f5ca2d7 혹은 $ wget -O c:\instance-id.txt http://172.27.0.200/latest/instance-id 추가로얻을수있는 Metadata 는아래와같습니다. metadata 명 설명 service-offering vm spec 정보 availability-zone ucloud server zone 이름 local-ipv4 ucloud server 의 ip 주소 local-hostname ucloud server 의호스트명 public-ipv4 Virtual Router 의인터넷망 ip 주소 ( 다수의 ip 사용시, 최초에할당된인터넷망 ip 주소 ) instance-id ucloud server 의 id 값 user-data user-data 값 (user data 관련자세한정보는 ucloud userdata 사용하기가이드참조 ) 3. 상세 Metadata 요청 조금더상세한 metadata 가필요할경우, 2 에서확인한 instance-id 와 OpenAPI 간의조합을통한추가정보확인이가능합니다. (openapi 의입력 VM id 값을 instance-id 로사용 ) 관련내용은다음의 url 의 listvirtualmachines API 를참조하세요. https://ucloudbiz.kt.com/portal/portal.openapiinfo.html?menu=server-server_api_vm 예시 https://api.ucloudbiz.olleh.com/server/v2/client/api?command=listvirtualmachines&id=b9e03b9d-e428-46e8-8cf8-d04c5 f5ca2d7&response=json&apikey=xxxxxxxx&signature=xxxxxxx ucloud server User-Data 사용방법 VM 을생성하실때생성되는 VM 에전달하고자하는 Data 나생성과동시에수행하고자하는스크립트를 DeployVirtualMachine(openAPI) 에 User-Data 파라메터로사용하실수있습니다. ( 현재 Linux OS 의경우 VM 생성과동시에 User-Data 가실행되며 Windows OS 의경우 meta data 로만조회가능합니다. ) 1. User-Data 만들기

User-Data 는 base64 인코딩작업이필요합니다. (an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. ) 해당가이드에서는 python 코드로예시하겠습니다. [Linux User-data 사용명령어예시 ] echo 'route add -net 10.65.5.0/24 gw 10.64.5.1 dev eth1' >> /etc/rc.local [Windows User-data 사용명령어예시 ] cmd /c wget -O c:\get-instance-id.ps1 http://mirror.g.ucloudbiz.com/windows/get-instance-id.ps1; c:\get-instance-id.ps1 User-Data 의 Base64 인코딩 Python 코드예시 import base64 cmd = "echo 'route add -net 10.65.5.0/24 gw 10.64.5.1 dev eth1' >> /etc/rc.local" userdata=base64.b64encode(cmd) print(userdata) ZWNobyAncm91dGUgYWRkIC1uZXQgMTAuNjUuNS4wLzI0IGd3IDEwLjY0LjUuMSBkZXYgZXRoMScgPj4gL2V0Yy9yYy5sb2 NhbA== 2. OpenAPI 로 VM 생성요청 위에서확인한 User-Data 값을 OpenAPI 에실어 VM 생성요청 $ curl https://api.ucloudbiz.olleh.com/server/v2/client/api? account=testaccount& apikey=xxxxx& command=deployvirtualmachine& displayname=linuserdata03& domainid=7266382a-d534-4f7c-b4da-213fa8fdc7b4& name=linuserdata03& networkids=f356c4de-bc26-469f-8043-44b454753164& serviceofferingid=4564364d-0bf7-415c-8779-b92f08c3e075& templateid=85aeff9d-9a15-431c-a370-f3e77f12deb1& userdata=zwnobyancm91dgugywrkic1uzxqgmtaunjuuns4wlzi0igd3idewljy0ljuumsbkzxygz XRoMScgPj4gL2V0Yy9yYy5sb2NhbA== zoneid=d7d0177e-6cda-404a-a46f-a5b356d2874e& signature=xxxxx 3. VM 에서 User-Data 확인 $ $ wget -O /home/userdata.sh http://[dhcp 서버 IP]/latest/user-data 혹은