Q

Similar documents
슬라이드 1

ucloud server API v

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

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

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

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft Word - src.doc

[Brochure] KOR_TunA

0. 들어가기 전

TTA Journal No.157_서체변경.indd

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Microsoft PowerPoint - 6.pptx

Cloud Friendly System Architecture

PowerPoint 프레젠테이션

게시판 스팸 실시간 차단 시스템

ucloud autoscaling API

슬라이드 1

서현수

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

The Pocket Guide to TCP/IP Sockets: C Version

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

BEA_WebLogic.hwp

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

4S 1차년도 평가 발표자료

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

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

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

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

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Week13

네트워크 안정성을 지켜줄 최고의 기술과 성능 TrusGuard는 국내 최초의 통합보안솔루션으로서 지난 5년간 약 4천여 고객 사이트에 구축 운영되면서 기술의 안정성과 성능면에서 철저한 시장 검증을 거쳤습니다. 또한 TrusGuard는 단독 기능 또는 복합 기능 구동 시

TGDPX white paper

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

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

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

슬라이드 1

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET)

View Licenses and Services (customer)

PowerPoint Template

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

SBR-100S User Manual

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

PowerPoint 프레젠테이션

2009년 상반기 사업계획

본 CERT) "Security Consumer Report - DLP" 는 한국침해사고대응팀협의회(CNCERT:CNsortium of 회원으로 활동하는 보안 담당자가 자발적으로 보고서 위원회를 구성한 후 국내에서 유 통되는 DLP 제품을 조사( 기획 수행 제작) 한

Microsoft PowerPoint - 03-TCP Programming.ppt

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

6강.hwp

3장


vm-웨어-01장

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

UDP Flooding Attack 공격과 방어

Microsoft Word - Armjtag_문서1.doc

vRealize Automation용 VMware Remote Console - VMware

1

Web Application Firewall 개요 - 웹보안 Web Application Firewall 국내최고성능웹방화벽으로금융, 포털, 공공, 기업등다양한서비스규모와산업에서웹보안을인정받고있습니다. 웹방화벽은웹서버와웹서비스사용자 사이에서요청검사와응답검사를통해웹서버및

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

untitled

ISP and CodeVisionAVR C Compiler.hwp

Windows Server 2012

FileMaker 15 WebDirect 설명서

5th-KOR-SANGFOR NGAF(CC)


슬라이드 1

bn2019_2

PowerPoint 프레젠테이션

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

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

PowerPoint 프레젠테이션

untitled

제목 레이아웃

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

슬라이드 1

Microsoft PowerPoint 웹 연동 기술.pptx

The Pocket Guide to TCP/IP Sockets: C Version

Studuino소프트웨어 설치

메뉴얼41페이지-2

- 2 -

희망브리지

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

슬라이드 1

Mars OS System Administration Guide

Tomcat.hwp

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Office Office Office 365,,,,,. Microsoft Microsoft

PowerPoint 프레젠테이션

untitled

Install stm32cubemx and st-link utility

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

Transcription:

부가서비스 웹방화벽 (Web Firewall) API v 1.0 2012. 5

목 차 1. 개요... 2 1. 1 웹방화벽 API 개요... 2 1.1.1 주요보안기능... 2 1.1.2 특징... 3 1. 2 API 요청... 4 1.2.1 인증서명서... 6 1.2.2 명령어유형... 7 1.2.3 파라미터... 7 1.3 API 응답... 8 1.3.1 API 응답포맷... 8 1.3.2 ASYNCHRONOUS COMMANDS RESPONSE... 9 1.3.3 ERROR HANDLING... 11 2. 명령어... 12 2.1 웹방화벽생성 / 삭제 API... 12 2.1.1 CREATEWAF (A)(*)... 13 2.1.2 DELETEWAF (*)... 15 2.1.3 LISTWAFS (*)... 15 2.2 WEB SERVER RESOURCE 관리 API... 16 2.2.1 ADDWAFWEBSERVERRESOURCE(*)... 16 2.2.2 REMOVEWAFWEBSERVERRESOURCE(*)... 17 2.2.3 LISTWAFWEBSERVERRESOURCE(*)... 18 2.3 WEB SITE RESOURCE 관리 API... 18 2.3.1 ADDWAFWEBSITERESOURCE(*)... 18 2.3.2 REMOVEWAFWEBSITERESOURCE(*)... 19 2.3.3 LISTWAFWEBSITERESOURCE(*)... 20

Revision History Version 변경사항작성일 1.0 공식배포버전 2012 년 5 월 30 일 1

1. 개요 본문서는웹방화벽 (WAF : Web FireWall) API 규격을제시한다. API 요청 / 응답메시지와공개하고있는명령어설명및예시를포함하고있다. 이용자는 WAF API 를활용하여클라우드웹방화벽자원생성및관리를수행할수있다. 1. 1 웹방화벽 API 개요웹방화벽 API 는 REST 형태로제공된다. 웹방화벽은웹서버앞단에위치하여외부로부터들어오는 HTTP/HTTPS 프로토콜트래픽을감시합니다. 이때웹애플리케이션에대한악의적인공격이탐지되면해당공격이웹서버에도달하기전에차단하는역할을수행합니다. 웹방화벽이외부의공격을차단하기위한웹서버 ( 서버및 Web Site) 의보안정책등에대한요청은표준 HTTP 방식의 GET 메소드호출을통해서이루어진다. 그림 1. 리버스프락시구성방식웹방화벽은방화벽 (Firewall) 에서걸러주지못하는위험한유해트래픽을웹서버에도달하지못하도록근본적으로차단합니다. Ucloud 웹방화벽은고도로지능화, 다양화되고있는웹공격을효율적으로탐지및차단하여안정적이고신뢰할수있는웹애플리케이션의운영을가능하게합니다. WAF 에대한상세기능및이용방법은 KT WAF Web 방화벽기본매뉴얼, KT ucloud WAF 관리도구매뉴얼 를참고하시기바랍니다. 1.1.1 주요보안기능 WAF 은다음과같은보앆기능을제공합니다. HTTP 기반의웹공격방지 OWASP( Open Web Application Security Project. http://www.owasp.org/) Top 10 Attacks 탐지및차단 PCI-DSS Copliance 의요구사항지원 Known/Unknown Worm 탐지및차단 2

예 ) Code Red, Nimda 웹보안요소방어 Cookie 변조및도용방지 Hidden Field 변조방지 표준암호알고리즘사용 (AES, SEED) 웹콘텐츠필터링 개인정보포함파일업로드 / 다운로드탐지차단 주민등록번호, 싞용카드번호, 이메일주소, 주소, 전화번호탐지 MS-Office, Open Office, PDF, MS Outlook Message, hwp 등 30 여종의파일검색 지정한금지단어입력시자동변홖예 ) 나쁜말 ( 금지단어 ) -> 고운말 ( 등록된표현 ) 해커에의해변조된페이지노출차단및자동복구 1.1.2 특징 WAF 은다음과같은특징을가집니다. (1) 보안성 웹공격에대한 3 중방어구조 WAF 은 Positive Security 보앆모듈의 URI 접근제어 와, Negative Security 보앆모듈의 룰탐지, White/Black list of IP 주소관리기능인 IP Filtering / IP Block 의웹클라이언트접근제어의 3 중방어구조를기반으로확실하고앆정적인웹공격의탐지와차단을제공합니다. 암호화트래픽지원 WAF 은 SSL 과같은암호화된트래픽을지원합니다. 암호화된트래픽내에웹공격이들어있는경우에도이를싞속하게복호화한후에공격을탐지하여차단할수있습니다. (2) 성능 다수웹사이트 / 웹서버동시보호 WAF 은여러웹사이트들과다수의웹서버들을동시에보호하는것이가능합니다. (3) 안정성 Watchdog 지원 3

Watchdog 프로세스는지속적이고앆정적인웹서비스제공을위해 WAF 의동작을감시합니다. WAF 에문제가발생하는경우, watchdog 프로세스는문제의증상을파악하고이에따라보앆및웹서비스유지를위해대응하도록구성되어있습니다. (4) 편리성 대시보드 (Dashboard) 지원 WAF 은 WAF 과웹서버의운영상태를그래프와차트를통해한눈에실시갂으로파악할수있는대시보드기능을지원합니다. WAF 의대시보드는 22 가지의다양한그래프와차트형식을제공하여운영자가원하는형태로데이터를가공할수있도록지원합니다. 설정마법사지원 WAF 의모든설정작업은설정마법사를통하여이루어집니다. 설정마법사는 WAF 의복잡한설정과정을갂단하고편리하게수행할수있도록도와줍니다. 자유롭고유연한화면구성 WAF 은로그화면과각종대시보드화면등을메인화면상에운영자가원하는형태로자유롭게배치할수있습니다. 또한각각의화면내용에각기다른조건을부여하여다양한정보를동시에확인할수있습니다. 이러한유연한화면구성은운영자의필요에따른적젃한정보확인을가능하게해주어관리도구사용의편의성을높여줍니다. 1. 2 API 요청 API 요청메시지는아래와같이구성된다. (1)API URL + (2) 요청명령어 + (3) 명령어파라미터 + (4) 응답포맷 + (5)API Key + (6) 인증서명서 각필드의값과내용은아래표와같다. Field Description (1) API URL - ucloud server API URL - Value : https://api.ucloudbiz.olleh.com/server/v1/client/api? (2) 요청명령어 - 컴퓨팅자원요청명령어 ( 생성, 삭제, 조회및기타명령 ) - Syntax : command= 명령어이름, [ 상세설명은 3장참조 ] (3) 명령어파라미터 - 요청명령어관련파라미터 - Syntax : [&field=value]*, [ 상세설명은 3장참조 ] 4

(4) 응답포맷 - XML, JSON 응답포맷을지원한다. [Optional 필드 ] - Syntax : &response=[xml json], default는 xml. (5) API Key - 사용자계정별 API Key (ucloudbiz site에서확인 ) - Syntax : &apikey=apikey (6) 인증서명서 - API 요청메시지수행권한여부를체크하는인증서명서 - Syntax : &signature= 인증서명서 * API Key, Secret Key 확인 (1) https://ucloudbiz.olleh.com 로그인 (2) 클라우드콘솔선택 (3) API Key 관리메뉴선택 5

API 요청 Sample https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualmachines&name=vm_3 3111&state=Running&response=xml&apiKey=miVr6X&signature=ZC1u%2B03yj592LZ%2BgmA3 ac%2fqthws%3d API 요청 Sample 분석 (1) https://api.ucloudbiz.olleh.com/server/v1/client/api? API URL (2) command=listvirtualmachines 요청명령어 (3) &name=vm_33111&state=running 명령어파라미터 (4) &response=xml 응답포맷 (5) &apikey=mivr6x API Key (6) &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 인증서명서 1.2.1 인증서명서 ucloud server 에서는 API Key 와인증서명서로인증을수행한다. 사용자별로발급되는 Secret Key 와 HMAC SHA-1 알고리즘그리고명령문자열 (2 번 ~5 번 ) 을이용하여인증서명서를생성한다. [ 인증서명서생성 ] Secret Key 예 : keokzhd 명령문자열 _ 예 :_command=listvirtualmachines&name=vm_33111&state=running &response=xml&apikey=mivr6x (5) 명령문자열의각필드와값을 URL 인코딩한다. URL 인코딩 : 공백문자가 %20 으로인코딩되도록해야한다. [ + 안됨 ] API 요청메시지 : API_URL + URL 인코딩된문자열 + &signature= 인증서명서 (6) 명령문자열을소문자로변경한다. (7) 필드이름을기준으로알파벳순으로정렬한다. apikey=mivr6x&command=listvirtualmachines&name=vm_33111&response=xml&state=ru nning (8) Secret Key 와 HMAC SHA - 1 해시알고리즘을이용하여명령문자열을암호화한다. 아래는 java sample code 이다. 6

Mac mac = Mac.getInstance ( "HmacSHA1" ); SecretKeySpec keyspec = new SecretKeySpec(secretkey.getBytes(), "HmacSHA1"); mac.init( keyspec ); mac.update ( commandstring.getbytes() ); byte[] encryptedbytes = mac.dofinal(); Sample_URL http://docs.cloud.com/cloudstack_documentation/developer's_guide%3a_cl oudstack#signing_api_requests (9) 마지막으로얻어진바이트배열을 Base64 인코딩후, 다시 UTF - 8 로 URL 인코딩을 수행한다. 생성된인증서명서와 API 요청메시지는다음과같다. 인증서명서 : ZC1u%2B03yj592LZ%2BgmA3ac%2FQThws%3D API 요청메시지 :_https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualma chines&name=vm_33111&state=running&response=xml&apikey=mivr6x &signautre=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 1.2.2 명령어유형 API 실행소요시간이긴명령은비동기명령어로이외의명령은동기명령어로수행한다. 3 장에서기술하고있는비동기명령어에 (A) 를표시하여구분하고있다. CloudStack 에 존재하지않는명령어및명령어파라미터설명하는부분에는 (*) 를표시하여기술하고있다. 1.2.3 파라미터 API 요청시수행되는파라미터는앞에서언급한것과같이쌍 (field=value) 으로존재하며 대소문자사용규칙은다음과같다. field : 대소문자구별안함, command 만대소문자구별. value : 대소문자구별함. 7

1.3 API 응답 지원하고있는응답포맷설명과명령유형 ( 동기명령어, 비동기명령어 ) 에따른 API 응답확인절차를기술한다. 1.3.1 API 응답포맷 API 응답포맷으로 xml, json 을지원하며, API 요청시 response=xml 과같이응답 포맷을지정할수있다. 명령수행결과에해당필드정보가없을경우, 정의된필드와 값이표시되지않을수있다. 다음표는응답포맷예제이다. Response Format xml Sample <listipaddressesresponse> <allocatedipaddress> <ipaddress>192.168.10.141</ipaddress> <allocated>2009-09-18t13:16:10-0700</allocated> <zoneid>4</zoneid> <zonename>wc</zonename> <issourcenat>true</issourcenat> </allocatedipaddress> </listipaddressesresponse> json { "listipaddressesresponse" : { "allocatedipaddress" : [ { "ipaddress" : "192.168.10.141", "allocated" : "2009-09-18T13:16:10-0700", "zoneid" : "4", "zonename" : "WC", "issourcenat" : "true" } ] } } 8

1.3.2 Asynchronous Commands Response 실행소요시간이긴명령은비동기명령어로이외의명령은동기명령어로수행한다. 동기 / 비동기명령 API 응답확인절차는다르며아래와같다. API 명령어 응답확인절차 동기명령어 비동기명령어 (1) API 요청으로명령수행 (2) 명령수행결과확인 (1) API 요청으로명령수행 (2) jobid ( 작업ID) 반환확인 (3) queryasyncjobresult 명령수행 ( jobid 인자로전달 ) (4) 명령수행진행확인 ( jobstatus) 0: 진행중, 1: 성공, 2: 실패 [jobresult 에결과표시 ] ** jobstatus 가 1 또는 2 가될때까지주기적으로 (3), (4) 수행하여 명령결과를확인한다. 비동기명령결과예는다음과같다. 비동기명령확인 Sample (1) API 요청 ( 명령수행 ) https://api.ucloudbiz.olleh.com/server/v1/client/api? command=listvirtualmachines &name=vm_33111&state=running&response=xml &apikey=mivr6x &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d (2) 명령응답반환 <deployvirtualmachineresponse> <jobid> 37120 </ jobid> <id> 100 </ id> </ deployvirtualmachineresponse> (3) queryasyncjobresult 수행 https://api.ucloudbiz.olleh.com/server/v1/client/api? command=queryasyncjobresult&jobid=37120 &apikey=h6kxwcratdqfwf3xa &signature=z5f11yym6yzqomy9b%2f4%3d 9

(4) jobstatus = 0 [ 진행중 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>0</jobstatus> <jobprocstatus>1</jobprocstatus> <queryasyncjobresult> (4) jobstatus = 1 [ 성공 ] <queryasyncjobresultresponse cloud-stack-version="2.2.1.66"> <jobid>37120</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>100</id> <state>running</state>.. </virtualmachine> </jobresult> </queryasyncjobresultresponse> (4) jobstatus = 2 [ 실패 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>2</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>551</jobresultcode> <jobresulttype>text</jobresulttype> <jobresult> Unable to deploy virtual machine id = 10 due to not enough capacity </jobresult> <queryasyncjobresult> 10

1.3.3 Error Handling API 요청이잘못되거나처리도중오류가발생하면 Error 정보를응답으로반환한다. Error 정보는오류코드 <errorcode> 와오류텍스트 <errortext> 로구성되어있다. <?xml version="1.0" encoding="utf-8"?> <listvirtualmachinesresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>401</errorcode> <errortext>unable to verify user credentials and/or request signature</errortext> </listvirtualmachinesresponse> 현재지원하는에러코드는다음과같다. Error Code Description 401 AUTHENTICATION_ERROR 406 MALICIOUS_CODE_INJECTION 430 MALFORMED_PARAMETER_ERROR 431 PARAM_ERROR 432 UNSUPPORTED_ACTION_ERROR 433 PAGE_LIMIT_EXCEED 503 EXCESSIVE_TRAFFIC_ERROR 504 INTERNAL_ERROR (TIMEOUT) 530 INTERNAL_ERROR 531 ACCOUNT_ERROR 532 ACCOUNT_RESOURCE_LIMIT_ERROR 533 INSUFFICIENT_CAPACITY_ERROR 534 RESOURCE_UNAVAILABLE_ERROR 535 RESOURCE_ALLOCATION_ERROR 536 RESOURCE_IN_USE_ERROR 537 NETWORK_RULE_CONFLICT_ERROR 11

[Example 1] <?xml version="1.0" encoding="iso-8859-1"?> <deployvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>431</errorcode> <errortext>unable to find zone by id=2111</errortext> </deployvirtualmachineresponse> [Example 2] <?xml version="1.0" encoding="iso-8859-1"?> <errorresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>432</errorcode> <errortext>the given command does not exist</errortext> </errorresponse> 2. 명령어 이장에서는웹방화벽명령어와명령어파라미터정보및명령에대한응답을기술 하였다. 기능별로그룹핑하여이해를돕고자하였다. Example 에사용되는 ${API_URL} 변수는 ucloud server API URL (https://api.ucloudbiz.olleh.com/waf/v1/client/api?) 이다. 2.1 웹방화벽생성 / 삭제 API 그림 2. 리버스프락시구성방식 12

웹방화벽을구성하고삭제하는관련명령어를기술한다. 웹방화벽의네트워크구성방법은리버스프락시방식이다. 리버스프락시구성은일반적인웹프락시서버와동일한구성으로웹방화벽의 IP 설정등은일반적인웹프락시와동일하게구성한다. 이러한구성에서특정웹사이트를웹방화벽으로보호하려면 VPX, 또는가상라우터에서포트포워딩를이용하여웹서버로갈커넥션이웹방화벽으로향하도록수정해주어야한다. 이러한리버스프락시구성에서는웹방화벽이프락시로동작하기때문에웹서버의접속로그에는실제웹브라우저사용자의 IP 주소가아닌웹방화벽의 IP 주소만이남게된다. 웹방화벽의운영네트워크구성은일반적으로다음과같은위치에설치한다. 단일웹서버머싞 1 대만을보호할때 (Single 상품 ) Routter-VM 하단단일웹서버사이에 Proxy 방식으로구성설치합니다. VPX 를사용하여 2 대이상의웹서버를로드밸런싱하여사용할때 (Dual 상품 ) VPX SW L4 로로드밸런싱한서비스를가상라우터에서포트포워딩한후가상라우터와웹서버사이에 Proxy 방식으로구성설치합니다. 2.1.1 createwaf ucloud 부가서비스로제공되는웹방화벽을생성하는상품및기동수행명령어이다. 상품의가격정보는 API 로제공되지않으며 ucloudbiz site 를방문하여확인가능하다. 명령어파라미터 Parameter Name Description Required name WAF 이름 TRUE type 구성 (single, dual) TRUE spec 사양 (basic, standard, advanced, premium) TRUE waf1consoleport WAF1 VM console 접속 port (5950~5999) TRUE waf1sshport WAF1 VM ssh 접속 port (5950~5999) TRUE waf1dbport WAF1 VM DB 접속 port (5950~5999) TRUE waf2consoleport WAF2 VM console 접속 port (5950~5999) FALSE waf2sshport WAF2 VM ssh 접속 port (5950~5999) FALSE waf2dbport WAF2 VM DB 접속 port (5950~5999) FALSE loadbalanceroption 로드밸런스옵션 (roundrobin, leastconnection, sourceiphash, sourcehashport) FALSE VPX 가로드밸런싱을담당해야하는로드밸런싱 Port loadbalancerport 입력 FALSE infourl VPX 로드밸런서의서비스대역폭을초과하였을경우 FALSE 초과시안내되는안내페이지입력 13

응답결과항목 Response Name Description id WAF id name WAF 이름 type 구성 (single, dual) spec 사양 (basic, standard, advanced, premium) waf1consoleport WAF1 VM console 접속 port (5950~5999) waf1sshport WAF1 VM ssh 접속 port (5950~5999) waf1dbport WAF1 VM DB 접속 port (5950~5999) waf2consoleport WAF2 VM console 접속 port (5950~5999) waf2sshport WAF2 VM ssh 접속 port (5950~5999) waf2dbport WAF2 VM DB 접속 port (5950~5999) loadbalanceoption 로드밸런스옵션 (roundrobin, leastconnection, sourceiphash, sourcehashport) serviceip WAF 의서비스 IP loadbalancerport WAF 의서비스 port VPX 로드밸런서의서비스대역폭을초과하였을경우초과시 infourl 안내되는안내페이지입력 active 로드밸런서생성완료여부 ( true false ) Example Sample 1 WAF 생성 Request ${API_URL}command=createWAF& &name=ktcloudwaf&type=dual&spec=basic&waf1consoleport=5950&waf1sshport=592 2&waf1dbport=5933&waf2consoleport=5951&waf2sshport=5923&waf2dbport=5934&l oadbalanceroption=roundrobin&loadbalancerport=80&infourl=http://cs.ucloud.com &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 생성 Response {"createwafresponse":{"id":14,"name":"waftest01","type":"single","spec":"basic","waf1con soleport":"5950","waf1sshport":"5951","waf1dbport":"5952","waf2consoleport":"","waf2ss hport":"","waf2dbport":"","loadbalanceoption":"","infourl":"","active":"n"}} * 최종생성상태조회는 listwafs API 사용 14

2.1.2 deletewaf 생성한웹방화벽을삭제한다. 응답결과항목은웹방화격생성과동일하다 (**1 년약정과무약정으로생성된 VM 은생성당일삭제가불가하다 ) 명령어파라미터 Parameter Name Description Required id WAF id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF 삭제 Request ${API_URL}command=deleteWAF& id=12345 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 삭제 Response {"deletewafresponse":{"success":"true", "displaytext":"waf(waftest01) is removed."}} 2.1.3 listwafs (*) 생성한웹방화벽목록을조회하는 API 이다. 명령어파라미터 Parameter Name Description Required id WAF id FALSE name WAF 이름 FALSE type 구성 (single, dual) FALSE spec 사양 (basic, standard, advanced, premium) FALSE 응답결과항목 : createwaf 결과와동일 15

Example Sample 1 WAF 조회 Request ${API_URL}command=listWAFs&id=12345&name= ktcloudwaf &type=dual&spec=basic &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 조회 Response {"listwafsresponse":{"id":"15","name":"waftest01","type":"single","spec":"basic","waf1con soleport":"5950","waf1sshport":"5951","waf1dbport":"5952","waf2consoleport":"","waf2ss hport":"","waf2dbport":"","loadbalanceoption":"","serviceip":"","serviceport":"","infourl":"","active":"y"}} 2.2 Web Server Resource 관리 API 보안서비스의대상이될웹서버 IP 주소와 port 번호를추가 / 삭제하는명령어를기술한다. 2.2.1 addwafwebserver 보안서비스의대상이될웹서버를추가하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE virtualmachineid Virtualmachine id TURE webserverport 웹서버의서비스 port TRUE proxyport1 가상라우터-> WAF VM1 연결 port TRUE proxyport2 (dual 상품인경우 ) 가상라우터 -> WAF VM2 연결 port FALSE sslmode disabled sslthru sslterm TRUE 응답결과항목 Response Name id webserverid virtualmachineid webserverport Description WAF id WebServer id Virtualmachine id 서버의서비스 port 16

proxyport1 proxyport2 sslmode 가상라우터 -> WAF VM1 연결 port (dual 상품인경우 ) 가상라우터 -> WAF VM2 연결 port true, false, termination Example Sample 1 WAF Web Server 자원할당 Request ${API_URL}command= addwafwebserver&id=12345&virtualmachineid=11111&webserverport=80&proxyport1=8 0&proxyport2=81&sslmode=disabled &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Server 자원할당 Response {"addwafwebserverresponse":{"id":16,"webserverid":6,"virtualmachineid":"38484","webser verport":"80","proxyport1":"9993","proxyport2":null,"sslmode":"disabled"}} 2.2.2 removewafwebserver 보안서비스의대상이될웹서버의정보를삭제하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE webserverid WebServer id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF Web Server 자원삭제 Request ${API_URL}command= removewafwebserver & id=12345& webserverid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d 17

Sample 2 WAF Web Server 자원삭제 Response {"removewafwebserverresponse":{"success":"true","displaytext":"webserver(6) is removed."}} 2.2.3 listwafwebservers(*) 보안서비스의대상이될웹서버의정보를조회하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE webserverid WebServer id FALSE 응답결과항목 : addwafwebserverresource 와동일 Count : 웹서버의수추가 Example Sample 1 WAF Web Server 자원조회 Request ${API_URL}command= listwafwebservers&id=12345&webserverid=1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Server 자원조회 Response {"listwafwebserversresponse":{"webservers":[{"id":11,"proxyport1":"88","proxyport2":""," sslmode":"disabled","virtualmachineid":"","webserverport":"88","webserverid":3},{"id":11, "proxyport1":"90","proxyport2":"","sslmode":"disabled","virtualmachineid":"10400","webs erverport":"90","webserverid":4},{"id":11,"proxyport1":"89","proxyport2":"","sslmode":"di sabled","virtualmachineid":"10397","webserverport":"78","webserverid":5}],"count":3}} 2.3 Web Site Resource 관리 API 웹방화벽에서보호할 Web Site 들에적용할정책을관리하는명령어를기술한다. 2.3.1 addwafwebsite 보안서비스의대상이될웹사이트를추가하는명령어를기술한다. 명령어파라미터 18

Parameter Name Description Required id WAF id TRUE sitename 사이트명 or IP TRUE port 서비스 port TRUE policynum 보안정책 {0 1 2 3} 표준보안정책, 기본보안정책, 탐지만하고차단안함, 탐지없이통과 TRUE 응답결과항목 Response Name Description wafid WAF id websiteid WebSite id sitename 사이트명 or IP port 서비스 port policynum 보안정책 {0 1 2 3} 표준보안정책, 기본보안정책, 탐지만하고차단안함, 탐지없이 통과 Example Sample 1 WAF Web Site 자원할당 Request ${API_URL}command= addwafwebsite& id=12345& websiteid =1& sitename=cs.ucloud.com&port=80&policynum=0 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원할당 Response {"addwafwebsiteresponse":{"wafid":"true","websiteid":3,"sitename":"http://www.jini.co.kr/i ndex.html","port":"8080","policynum":"0"}} 2.3.2 removewafwebsite 보안서비스의대상이될웹사이트의정보를삭제하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE 19

websiteid Website id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF Web Site 자원삭제 Request ${API_URL}command= removewafwebsite& id=12345& websiteid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원삭제 Response {"removewafwebsiteresponse":{"success":"true","displaytext":"website_svc(3) is removed."}} 2.3.3 listwafwebsites(*) 보안서비스의대상이될웹사이트의정보를조회하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE websiteid Website id FALSE 응답결과항목 : addwafwebsiteresource 의결과와동일 Example Sample 1 WAF Web Site 자원조회 Request ${API_URL}command= listwafwebsites& id=12345& websiteid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원조회 Response {"listwafwebsitesresponse":{"count":1,"wafwebsiteresource":[{"reg_dttm":{"date":6,"day": 5,"hours":15,"minutes":38,"month":6,"nanos":0,"seconds":14,"time":1341556694000,"timez 20

oneoffset":- 540,"year":112},"svc_port":"8080","active_yn":"Y","upt_dttm":"","waf_nm":"waftest01","p olicy_type":"0","waf_websvc_seq":3,"svc_description":"","svc_nm":"http://www.jini.co.kr/i ndex.html","del_dttm":"","svc_st_cd":"req002","waf_svc_id1":"4","waf_svc_id2":"","me m_sq":"m134452"}]} 21