server.hwp

Size: px
Start display at page:

Download "server.hwp"

Transcription

1 서버호스팅사용자메뉴얼 < Version 2.0 > Hostway System Team < 설치프로그램테스트환경> Redhat 7.3 Linux-kernel SDRam 512M CPU cell 1.3

2 목 차 1. DNS 2. Web Server(Apache) 3. FTP 서버 4. Mail & POP 서버 5. SSH 개요 6. DB 서버 (mysql) 7. Network 관련명령및설정 8. 쉘프로그래밍 (Shell Programing) 9. 백업 (Backup) 서버보안 보안도구 12. mysql + php + apache + Zendoptimizer static 으로설치 13. 문제해결 (Troubleshooting) -2-

3 1. DNS 개요 HOSTWAY SYSTEM TEAM. 인터넷을사용하다보면도메인,URL 이라는말을많이듣는다. 도메인, URL이란것은숫자로구성되어서버마다부여되어있는 IP address를사람들이외우기쉽고알기쉬운문자로표현한것이다. (ex: > manpage.co.kr) 그렇다면 DNS 란무엇인가? 바로 IP 를도메인(URL) 으로매핑시켜주는역할을하는것이바로 DNS(Domain Name Server) 이다. 이 DNS 가없다면우리들은숫자로 ( ) 인터넷의서버에접속을해야할것이다. 그러면여기서우리가 manpage.co.kr이란 URL을웹브라우저에서입력을했을때과연어떻게그 manpage.co.kr 의서버로접속을할수있는지간단히알아보자. < 그림 1-1 도메인으로웹서버접속하기> 그림을설명하면 1) 를 ROOT 서버에질의 1-1) ROOT 서버로부터 kr서버의 IP와 kr서버로질의하라고답변옴 2) kr서버에 질의 2-1) kr서버로부터 co서버의주소를얻음 3) co서버에 질의 3-1) ns.manpage의서버주소를얻음 4) ns.manpage서버로 www의주소를질의 4-1) ns.manpage로부터 www의 IP주소를얻음 -3-

4 이렇게함으로써비로소서버가해석할수있는 IP 주소를얻게되고, 웹브라우저를통해서원하는웹페 이지로의접속이가능하게되는것이다. 다음은 DNS(Domain Name Server) 를직접구축하는경우에만살펴보면될것이다. DNS를직접운영하지않는사람은참고만하기바란다. 1.1 네임서버운영절차 < 그림 1-2 네임서버운영절차 > < 그림 1-2> 는호스트웨이에서서버호스팅을신청하여 IP를발급받은후그 IP를도메인을등록한기 관에네임서버등록을의뢰하고, 네임서버로등록이되면, 서버에 bind 를세팅하여, 네임서버로운영 하는절차를나타낸그림이다. ( 네임서버등록을예전에는.com 의경우외국기관(networksolution.com) 에직접등록을하여야했으 나요즘은자신이도메인을등록한기관에서대행해주고있다.) -4-

5 1.2 DNS 설정 < 그림 1-3 DNS 설정을위한파일 > < 그림 1-3> 은 DNS 설정을위해서설정해야하는파일들이다. 순서대로알아보자 /etc/host.conf - host.conf는 resolver 의제어를위한파일이다. 호스트를 resolver 하는데어떤서비스파일을쓸것인결정하는파일로서order 로순서를결정할수있다. < 그림 1-4 /etc/host.conf 의내용 > < 그림 1-4> 는 /etc/host.conf 의기본설정이다. /etc/host.conf 에는여러개의옵션이있으며그옵션에대해서알아보자. 옵션설명 order multi 설정값으로는 hosts, bind, nis 가있으며, hosts - resolver 하는데 /etc/hosts 파일을사용. 속도가빠름 bind - named 가동작하고있을때, named에의해서질의할수있도록설정 nis - nis 가동작하고있을때 nis에질의하도록절정 설정값으로 on과 off 가있으며, /etc/hosts 파일에하나의호스트가여러개의 IP 를가질수있도록허용한다. multi-home" 을가질때추천한다. -5-

6 nospoof trim 설정값으로 on과 off 가있으며, on으로설정시에 DNS는 hostname과 IP를 검사하는데만약이두값이서로일치하지않을때, 이를 spoof' 라고부르며, 서버는그 name 을받아들이지않고거절하며, error를 return 한다. on으로설정시에는 spoof 를막을수있지만, 이기능을 켜놓게되면서버에접속할때마다값을비교해야하므로서버에접속할수 있는시간이지연되는단점이있다. 보안상필요하면 on 으로선택, default는 off 이다. 설정값으로 domain 이름을가지며, 로컬에여러개의도메인이있을때당신의호스트를결정하기위해서사용되어질수있다. /etc/hosts와같은기능을한다. 기본값은 off 이다. < 표 1-1 /etc/host.conf 옵션 > < 그림 1-5 /etc/host.conf 의설정을적용한모습 > < 그림 1-5> 와같은설정은절대적인것이아니며, 관리자는옵션의의미를잘판단한후에적용하여사용하면되겠다. 일반 default값인 order hosts,bind 만을사용해도운영에는전혀지장이없다 /etc/hosts 서버에접속되어지는모든클라이언트들은모두 DNS에의해서 reslove 되어진다. resolve를위해서는자신의 DNS 를검색하고, 자신에게그것이없을때에는상위 DNS에질의를해야하므로접속을하는데시간이많이걸리게된다. (tcpwrapper 에의해서설정되어지는데몬들은 (ssh나 pop, ftp 등) 접속되는 IP를모두 inverse reslove 하여, 호스트네임을알아낸후에로그에기록을하므로, 확인을위해서서버에접속되어지는시간이길어지는것은그이유이다) 이때, 자주접속하는 IP 들을 /etc/hosts 에기록해놓으면, DNS에의해서 resolve 되지않아도되므로, 훨씬접속이빠르게된다. 설정법은다음과같다. IP_address canonical_hostname aliases =============================== IP주소정규호스트명별칭 =============================== IP주소별칭 -6-

7 < 그림 1-6 /etc/hosts 파일설정 > < 그림 1-6> 은 /etc/hosts 파일의설정예를보여준그림이다. 그림에서보듯이 과 은해당접속시에 DNS에의해서 resolve가되지않으므로접속속도가빠르며, 로그에는 manpage.co.kr, kimhoon 등으로로그가남게된다 /etc/named.conf /etc/named.conf 는 /var/named 디렉토리의경로와 zone 파일설정정보를가지고있다. < 그림 1-7 /etc/named.conf의 option과 logging 설정 > -7-

8 < 그림 1-7> 은 /etc/named.conf의 option과 logging 설정부분이다. HOSTWAY SYSTEM TEAM. options를간단히설명하면 - directory "/var/named" :zone 파일들이있는디렉토리의경로이다. - allow-transfer { none; }; : 2차 DNS 서버가있을때사용하는옵션으로 zone의 transfer를허 용할것인지안할것인지결정한다. 2차가없을때에는 none 값으로 다른호스트로의 transfer 를차단한다. - allow-query { localhost; }; : 일반적인쿼리를 DNS 보낼수있는호스트를지정한다 /24 로네트웍대역을지정할수도있고, 특정아 이피만을 지정할수도 있다. 현재 설정으로는 localhost에서만 query 가가능하도록설정했다. - allow-recursion { localhost; }; : 순환질의를할수있는호스트를정의한다. 보안에관한부분으로, 인터넷에있는모든호스트들이해당서버를통해서순환질의를하게되면, 캐싱에문제가발생할수있다. 관리자의설정에따라allow-query 처럼값을변경할수있다. - version "Go away! no view!!"; : bind 의버전을감춘다. bind가취약한버전이라고알려졌을경우공격받을수있으므로보안상설정하는부분이다. logging 을설명하면, 각종시스템에서발생하는관련에러들을필요없는로그들로간주하고, null 시킴으로써, syslog의부하를감소시킬수있다. 각로그가기록되길원하면해당라인을삭제하면된다. -8-

9 < 그림 1-8 /etc/named.conf의 zone-file 설정 > HOSTWAY SYSTEM TEAM. /etc/named.conf 에서나머지는모두디폴트로사용하지만, < 그림 1-8> 1과 2는네임서버사용을하기위해서반드시설정을해줘야하는부분이다. 그중에서 1번의 resolve-zone파일의경우는각서버에한번만설정이되어야하며, 하나이상이설정되었을경우에는에러가발생한다. 2번은 resolve 할도메인을하나씩추가할때마다, 반복적으로설정이되어야하는부분이다. 반복될때에는해당도메인의이름과존파일의이름정도만변경한후에그대로사용하면된다. < 그림 1-9 /etc/named.conf 의도메인추가설정 > /etc/named.conf 에도메인이등록이되면, /var/named 디렉토리밑에는 < 그림 1-9> 에서밑줄친이름으로zone 파일이존재해야한다. ( /var/named/zone-hostway.co.kr ) 이것은저절로생성되는것이아니라직접만들어야하는것이다 /etc/resolv.conf 서버는 user가어떤도메인에대해서요청을했을때그것을해석하기위해서자신에게할당된주네임서버를찾게되며, 그네임서버를정의하는곳이 resolv.conf 이다. resolv.conf에있는주네임서버는 user 가요청한도메인이자신이가지고있는 (named.conf에설정된) 도메인이면, 바로응답을해주고, 만일자신이가진도메인이아니면최상위루트에게질의를하여해당도메인의 IP 를받아와클라이언트에게알려주는역할을한다. ( 그림 1-1 참고) /etc/resolv.conf에는 3개까지의 nameserver 를지정할수있다. < 그림 1-10 /etc/resolv.conf 의설정화면 > -9-

10 지정한옵션에대해서알아보도록한다. -search : 가장먼저찾을도메인을지정한다. ( search manpage.co.kr 또는 search co.kr com 등의설정도가능한다. search가없어도 상관은없다.) -nameserver : 네임서버로사용할서버의 IP 를적어준다. 만약호스트웨이로부터 IP를할당받아이 IP 를네임서버로쓴다면, /etc/resolv.conf의 search 다음라인에 nameserver 이라고우선적 으로적어주면, 설정한네임서버가여러개있을때 클라이언트가도메인을요청하면, 가장먼저 의네임서버에서클라이언트가요청한도메인을검색하게 된다. 만약없다면그다음설정한네임서버에서요청한도메인을검색하게된다. < 그림 1-10> 으로예를든다면, 번네임서버에서클라이언트가요청한도메인을우선 적으로찾고, 만약없다면, 네임서버에질의하게된다. 만약 네임서버 에서도없으면그때는 root 네임서버로질의를하게된다. ( 은주석으로처리되어있으 므로해석하지않는다. 만약 /etc/resolv.conf 에올바른네임서버가설정되어있지않다면, 서버는도메인으로외부의호스트를검색, 접속할수없게된다. 참고서버의내/ 외부에서 IP 로는접속이가능한데, 도메인으로접속이불가할때는네임서버를가장먼저의심해봐야한다 /var/named/zone파일생성지금까지의 named 설정은 zone 파일의생성을위한준비단계였다고볼수있다. zone file을생성해야지만비로소 named 서버로서의역할을할수있는것이다. < 그림 1-11 /var/named/ 의 zonefile 생성예 > -10-

11 < 그림 1-11> 은 zone file 의생성예이다. zone 파일의각레코드의설정에대한설명을한다. 레코드설정값 $TTL SOA (Start Of Authority) 설명 zonefile 정보의 TTL 시간을지정한다. 특정레코드가변경되었을때, 변경된값이인터넷에전파되어업데이트되는주기이다. 업데이트가잦은사이트는이값을 1 시간에서 ~ 3 시간정도로설정한다. 해당존파일도메인에대한네임서버인증정보를가지고있다. 이레코드의값은 second nameserver가있을때에만유효하고 primary nameserver 를사용해도된다. IN IN(internet) 은클래스명이다. (chaos 로 IN 만을사용한다) 등의여러클래스가있지만주 SOA SOA (Start Of Authority) 도메인에대한인증정보시작을의미 ns.manpage.co.kr. admin.manpage.co.kr 해당존파일의네임서버를명시 해당네임서버의관리자이메일을지정 ( = admin@manpage.co.kr) Serial로서존파일이최종갱신된 date 를나타낸다. secondary는자신이가진 Serial이 primary의것보다작다면 primary로부터 zone 파일을재전송받는다. Refresh로서 secondary에서 primary의존파일변경여부를검사하는주기이다.(6 시간) Retry로서 secondary에서 primary로연결이되지않을때재시도하는주기이다.refresh 주기보다작아야의미가있다. Expire로지정된시간동안 primary 에연결을하지못할경우에, 현재가지고있는정보가유효하지않다고판단하고, 해당도메인에대한응답을하지않는다. Minimum으로다른네임서버가자신의 zone에기술된자료를가지고갔을경우, 그자료에대한유효기간을설정한다. 이값은 zone파일상단에표시된 TTL 값을대치할수있으며, TTL값이설정되어있으면, 이설정은유효하지않다. TTL 과동일한기능을한다. NS NS(nameserver) 레코드, NameServer 를지정한다. A A(Address) 레코드, 도메인에 IP 를부여하는역할을한다. -11-

12 CNAME MX PTR CNAME(Canonical Name) 레코드, 도메인에대한다른이름을지정 할수있다. hostway IN A 만약 hostway sub 도메인가도록설정한레코드를 A 레코드로설 정 을해놓았을경우에는 hostway.co.kr 의 IP가변경되었을경 우,zone파일을변경시켜줘야하지만 hostway IN CNAME hostway.co.kr. CNAME으로설정해놓으면 IP 가바뀌더라도, zone 파일을변경할 필요가없이그대로사용하면된다. 단CNAME은실제도메인의레 코드를상속받기때문에추가레코드를가질수없으며,MX,NS등의 레코드에 CNAME 으로설정된도메인을넣어서는안된다. 자신의서 버에서다른서버로의포팅이없다면,CNAME은사용하지않는것이 좋다. MX(Mail exchanger) 레코드, 해당도메인의메일라우팅경로를설 정한다 PTR(PoinTeR) 레코드, 이레코드는 IP에대해도메인명을맵핑해주는역할을한다. 일반적인존파일에서는사용하지않고 reverse zone 파일에서만사용한다. < 표 1-1 zone file 의레코드설정> < 그림 1-12 /var/named/ 의 reverse zonefile 생성예 > < 그림 1-12> PTR레코드를사용한 reverse Zone 파일의예이다. -12-

13 1.3 nameserver 질의명령 nslookup을통한도메인네임검색사용법 nslookup -type=rr(resource Record) domain or set type=rr domain RR에는 A, ANY, CNAME, MX, NS, PRT, HINFO, SOA, TXT 등이검색옵션이올수있다. < 그림 1-13 nslookup 명령사용하기 > < 그림 1-13> 은 nslookup 명령을실행하여 set type=ns 로 nameserver 에질의한결과이다. 그림에서알수있듯이 manpage.co.kr은 nameserver로 ns5.cninet.co.kr을사용하고있음을알수가있다.( 쉘명령으로다음과같이하면같은결과를얻는다.nslookup -type=ns manpage.co.kr ) dig < 그림 1-13> 에서 nslookup 을입력했을때나오는공지는 앞으로 nslookup 명령은사라지게되고, dig 또는 host 명령이대신하게될것이다. 라는내용이다. 즉앞으로는 dig 또는 host 명령을잘알아두어야할것이다. 사용방법및옵션들 dig [@nameserver] 도메인 [ 쿼리타입] [+ 쿼리옵션] dig ] [ -b address ] [ -c class ] [ -f file-name ] [ -k filename ] [ -p port# ] [ -t type ] [ -x addr ] [-yname:key] [name] [type] [class] [queryopt...] A 예와같은명령의내용은 ns.manpage.co.kr의네임서버에 A Record 설정상태를출력하라는명령이다. 결과는다음과같다. -13-

14 IN A 아래그림은dig의또다른옵션으로다른서버의bind version 을확인하는방법이다. < 그림 1-14 dig 명령을이용한다른서버의 bind 버전확인> host dig와같이앞으로많이쓰이게될 nameserver 질의명령이다. 옵션의종류와사용법은다음과같다. host [ -acdlnrtwv ] [ -c class ] [ -N ndots ] [ -R num-ber ] [ -t type ].[ -W wait ] name [ server ] ex)) host -t ns manpage.co.kr < 그림 1-15 host 명령사용예 > 지금까지네임서버구축과, 네임서버에대한질의방법을알아보았다. 이것은네임서버를구축하고, 네임서버의동작유무, 설정의올바름을판단하는데중요한것이므로직접네임서버를운영하고자하는관리자는반드시알아두어야할것이다. -14-

15 2. WebServer (Apache) HOSTWAY SYSTEM TEAM. 1장에서 DNS 서버를통하여도메인을이용하여, 서버에접속하는방법을알아보았다. 하지만아무리웹브라우저를통하여서버에접속을했다고해도, 접속한서버에웹서버프로세서가동작하고있지않다면다음과같은메시지를만날수있다. < 그림2-1 webserver 가가동되지않을때> 웹서버프로세서란클라이언트가웹브라우저등을이용하여서버에접속해서웹페이지를볼수있도록서비스를하는프로그램을말한다. 리눅스에서는아파치란프로그램이대표적이다. 아파치란프로그램을구동시키면 80번포트가열리면서웹서비스를위해서서버에접속을하는사용자들을허용하게되며다음과같이정상적으로웹서비스를할수있게된다. < 그림 2-2 Webserver 가가동되어정상적인서비스가될때 > -15-

16 2-1. apache 설정이번장에서는리눅스서버에서가장많이사용되고있는아파치웹서버의설정에대해서알아보도록한다. apache의설정파일인 httpd.conf는총 3개의 section 으로구성되어있다. section 1은전체적인환경설정부분 section 2는 main 서버의환경설정 section 3 은가상호스팅에대한부분이다. 각섹션별주요설정과그설정에대해간단히알아보자. (defalut 로사용해도서버운영상에는지장이없으나, 서버의효율적인사용을위해서변경할수있는부분은적절히변경하여사용하는것도좋다.) -16-

17 Section 1 : Global Environment ServerType standalone - apache 웹서가운영되는형태 ( 단독실행웹서버로동작함) ServerRoot "/usr/local/apache" - apache가설치된경로 PidFile /usr/local/apache/logs/httpd.pid - apache가실행될때의 pid값을가지고있는 Pid파일의경로 ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard - apache의 scoreboard 파일이있는경로 Timeout 클라이언트가서버에요청을한뒤클라이언트에서아무런응답이없어서오류로처리하기까지의대기시간 KeepAlive On - 서버에한번연결을했던클라이언트가다시연결요청을할것이라고생각하고, 클라이언트의요청을처리하고나서연결을끊지않고유지한다는설정으로, 클라이언트가다시요청을했을때서버와의접속요청절차를거치지않아도되므로, 접속속도가향상된다. Off에비해서 20-30% 정도의성능향상을기대할수있다. 단동시접속자가많을경우에는메모리가충분해야한다.Off로하였을경우On 보다많은동시접속자를처리할수있지만, 매회연결때마다서버와의통신을해야하므로접속속도도늦고,cpu 에로드가발생한다. 하지만검색엔진등의접속자가아주많고, 단일접속만하고접속을끊는사이트에서는 Off로사용하는것이오히려도움이된다. MaxKeepAliveRequests 서버가클라이언트와의접속을유지하면서최대클라이언트로부터받을수있는요청의수이다. 즉한번연결후에클라이언트에서 100 번의요청을받았다면자동으로설정을끊는것이다. 0으로설정을하는것은클라이언트에서스스로접속을끊을때까지모든요청을받는다는것이다웹사이트가복잡하게되어있는웹서버에서는이값을늘여주는것이좋다. KeepAliveTimeout 15 - 접속이유지된다고해도하루종일되어있다면동시접속자제한에걸려서웹서버의접속을할수없게된다. 이때설정해주는값으로지정된시간동안요청이없으면연결을서버에서연결을끊어버리게되어다른접속자가웹서버에접속할수있도록설정해주는것이다.( 동시접속자가많을때웹서버성능을너무떨어뜨리지않게하기위해서 KeepAlive를 On으로설정해놓고, 이값을줄여주는방법도있다.) MinSpareServers 5 ( 접속자가많은경우 정도로설정 ) - apache는클라이언트로부터요청을받으면자식프로세서를하나생성하여그요청에응답을하도록되어있다. 만약생성된프로세서가없다면접속시에지연시간이발생하므로속도증진을위해서미리여분의응답용자식프로세서를생성해놓는것이다. MaxSpareServers 10 - 최대로만들수있는자식프로세서의수를지정한다. ( 접속자가많을경우 으로설정) StartServers 5 - 서버가시작시에만들어낼응답프로세서의수를지정 (MinSpareServers 와동일하게설정) -17-

18 MaxClients 최대접속할수있는동시접속자수 ( 호스트웨이에서는 1024 까지확장할수있도록컴파일됨) MaxRequestsPerChild 0 - 한자식프로세서당처리할수있는최대요청수. default는 0 으로, 자식프로세서가죽지않으므로속도향상을기대할수는있으나, 잘못된프로그래밍이나코드수행으로인해서문제가발생할경우에는서버전체에부하를유발할수가있다. ( 보통 300 정도로설정하고, 사이트가복잡하거나요청이많아야할경우에는 등으로수치를올려준다.) Port 80 - apache Webserver가사용하게될포트지정 User nobody - apache 데몬이실행될때소유권자 Group nobody - apache 데몬이실행될때그룹소유권자 ServerAdmin root@manpage.co.kr Section 2: 'Main' server configuration - 서버의관리자 ( 관리할사람의이메일을적어놓는다. ) ServerName manpage.co.kr - 서버의이름, 호스트명 DocumentRoot "/usr/local/apache/htdocs" - apache 웹서버의기본홈디렉토리 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec </Directory> - /home/*/public_html 디렉토리에대한디렉토리옵션을나타낸다. 디렉토리옵션에는그종류가여러가지가있으며, 다음에자세히알아보기로한다. <IfModule mod_dir.c> DirectoryIndex index.html index.php index.htm index.php3 </IfModule> - 클라이언트가웹서버에대한요청이있을때해당도메인이디렉토리안에서가장먼저읽을파일을지정한다. DefaultType text/plain - 서버에서사용되는문서중 MIME type으로알수없는문서에대해기본적용할기본 MIME type 을설정한다. 서버에문서파일이많을때 text/plain을사용하며바이너리나실행파일이많을경우 application/octet-stream 을적용해준다. HostnameLookups Off -접속하는서버들의 IP를 DNS 에게질의하는옵션, 만약 On으로설정시에는 IP를 DNS서버에 질의해서로그에기록하므로시간이오래걸리게된다. 성능향상을위해서 Off 적용 -18-

19 ErrorLog /usr/local/apache/logs/error_log - 서버의기본 error_log를기록하는파일의경로 LogLevel warn - log를기록하는 level 을정한다. 로그를기록하는 level은 debug, notice, warn, error, crit, alert, emerg 가있으며, debug쪽에갈수록사소한문제까지도로그에기록하므로로그의크기가커지게되고,emerg쪽으로갈수록비상시의문제발생시에만로그에기록이되므로로그의크기가그다지커지지는않는다. default로는 warn 이며, 필요시에따라로그기록하는 level을변경할수가있다. CustomLog /usr/local/apache/logs/access_log common - 서버의기본접속기록에대한로그파일의경로이다. AddType application/x-httpd-php.php.php3.ph.inc.html.htm AddType application/x-httpd-php-source.phps - 위두라인은 php 를사용할때필요한옵션이다. AddHandler cgi-script.cgi -cgi를사용하고자할때사용 AddType text/html.shtml AddHandler server-parsed.shtml - 위두라인은 shtml을사용하고자할때사용 Section 3: Virtual Hosts NameVirtualHost 이름기반가상호스팅을사용한다. <VirtualHost > - 한아이피에여러개의도메인을사용하고자할때설정하는것으로이곳에 IP대신에도메인이름을적용해도무방하다. ServerAdmin manpage@manpage.co.kr - 해당도메인을관리자의이메일 ServerName manpage.co.kr - 해당도메인의도메인명 ServerAlias - 해당도메인의별칭 DocumentRoot /home/manpage - 해당도메인의홈디렉토리 ErrorLog logs/manpage.co.kr-error_log - 해당도메인의에러상황이쌓이는로그파일 CustomLog logs/manpage.co.kr-access_log common - 해당도메인의정상적인접속상황이쌓이는로그파일 </VirtualHost> < 표2-1 httpd.conf의section 별주요설정> -19-

20 디렉토리제어와옵션 디렉토리를제어할때에는 <Directory> ~ </Directory> 의형태로작성하며, 각각의디렉토리에대한권한과여러가지설정을할수가있으며, 이때사용되는옵션에대해서알아보자. None : 어떤옵션도이용할수없음을나타낸다. 모든접근불가 All :MultiViews 옵션을이용할수있으므로모든접근허용 Indexes : httpd.conf설정에서 DirectoryIndex에설정되어있는파일이해당 URL에없을경우에디렉토리의파일목록을보여준다.( 보안상사용하지않는것이좋다) Includes : 서버측에추가적인정보를제공할수있도록한다. (shtml 파일사용시적용) FollowSymLinks ExecCGI : 디렉토리의심볼릭링크를사용할수있도록한다. :CGI 스크립트를실행시킬수있도록한다. MultiViews : All 옵션이설정되었을때에만지정된목록의 multiviews 를허용한다. AllowOverride : 사용자인증에관련된지시자로클라이언트가웹서버의특정디렉토리에접근할때해당디렉토리에있는유저인증파일인.htaccess 파일을읽게되는데, 이옵션이 none 으로설정이되어있으면, apache 는이인증파일을무시한다. 즉인증을할수없다. [None,All] 두가지중에서설정할수있다. Order : 서버가 access 컨드롤을수행하는순서를지정한다. Order allow,deny ( allow 기능을먼저수행하고, deny 기능을수행한다.) Allow from : 나열되는주소들에대한 access 컨드롤을허용한다. 사용가능한설정은도메인명, 호스트명, IP, 이모든것을허용하는 all 이있다. Allow from all [ 211.xxx.xxx.xxx 211.xxx.xxx manpage.co.kr ] Deny from : 나열하는주소들에대한 access 컨드롤을제한한다. Deny from all [ 211.xxx.xxx.xxx 211.xxx.xxx manpage.co.kr ] require : 사용자그룹에대한접근을통제한다. require user [ group valid-user ] <ID> user - 지정된사용자들에게만접근을허용한다. AuthUserFile에서지정 group - 지정된그룹에게만접근을허용한다. AuthGroupFile에서지정 valid-user - AuthUserFile 에있는모든사용자들에게접근을허용한다. < 표 2-2 httpd.conf 의디렉토리제어에사용되는옵션 > 표 2-2 에서디렉토리제어옵션에대해서알아보았다. 실제이것이어떻게쓰이고있는지설정예를알아보도록하겠다. -20-

21 <Directory /home/manpage/www> AllowOverride All Options Includes Indexes +ExecCGI Order allow,deny Allow from All Deny from 211.xxx.xxx.xxx 211.xx.xxy </Directory> < 표 2-3 Directory 제어사용예 > < 표 2-3> 은 < 표 2-2> 를이용하여디렉토리제어옵션의설정예를들은것이다. 이설정에대한해석은각자스스로해보기바란다. 설정을적용하는법을알았으니이제는해당디렉토리( 웹페이지) 를접속하고자하면인증창을요구하도록설정해보자. 인증창설정은 < 표 2-3> 의설정이 httpd.conf 에설정되어있을때에만정상적으로동작할것이다. httpd.conf 파일을변경하였을때에는 apache 를다시재시작해줘야갱신이된다. < 그림 2-3 passwd 설정 > htpasswd 명령을이용하여 webadmin 의패스워드를 /home/manpage/www/.htpass 에생성하였다. htpasswd -c 옵션은처음생성할때만사용하고 webadmin의패스워드를변경하고자할때에는 -c 옵션을제외한나머지명령을입력하면된다. < 그림 2-4.htaccess 파일의내용 > -21-

22 .htacess를생성하여 AllowOverride 로하여금.htaccess파일을읽어서 webadmin에대해서인증을할수있도록설정한것이다. < 그림 2-4> 의설정은 AuthUserFile 인.htpass에지정된 webadmin이란유저의패스워드를입력된값과비교하기위한설정부분이다. 그리고생성한.htpass 와.htaccess 파일은모두 /home/manpage/www 디렉토리안에존재해야한다. < 그림 2-5 웹인증확인 > 정상적으로설정이마무리되었다면,< 그림 2-5> 의경로로접속을하면웹인증화면이뜨는것을 확인할수가있어야한다. 위에서설정한모든것들은테스트하는서버에서작성되내용이므로이글을읽는관리자는자신이설 정하는곳의경로로서파일을생성해주면된다. 여기서설명한것은어떻게사용하라고알려주는예이므로각자환경에맞게변경하여적용시키면 정상적으로설정을할수있을것이다. -22-

23 3. FTP HOSTWAY SYSTEM TEAM. FTP는 File Transfer Protocol 의약자로서파일송수신을위한프로토콜이다. FTP는기존연결을위해서는 21번포트를사용하지만데이터의전송은 20번포트를사용한다. 호스트웨이에서는서버에서가장많이사용되고있는 ProFTP최신버전을 RPM 으로제공하고있다. 윈도우에서는 ALFTP등의 FTP 접속프로그램을통해서 FTP 서버에접속을할수있고, 또한웹브라우저에서도 FTP 서버로접속이가능하다. 웹브라우저로접속을할때에는 "ftp:// 이메일형식" 으로하면바로 ftp 접속을할수있다. < 그림 3-1 웹브라우저를통한 FTP 접속> 위의그림은웹브라우저를통한 FTP 접속이다. 위의그림에서는패스워드를물어보는창이떠있지만. "ftp:// 아이디: 도메인" 형식으로주소창에쓰게되면암호물어보는팝업창이뜨지않고바로 FTP 서버로접속을하게된다. 아래그림은서버에서다른서버로 FTP 접속을하는그림이다. -23-

24 < 그림 3-2서버에서다른서버로 FTP 접속> 명령설명 FTP 도메인명도메인명으로 FTP 접속을시도한다. get mget prompt 상호작용모드 on/off Interactivemodeoff( 한번명령내릴시 off 로변환) off 시파일을송/ 수신시실행여부를물어보지않는다. Interactivemodeon.( 다시한번명령내릴시 on 으로변환) on 일때는파일을송/ 수신시실행여부를물어본다. ascii ftp 송/ 수신파일이 ascii (text 등) 일경우에설정한다. bin ftp 송수신파일이 / binary 일경우에설정한다. 파일명 파일명들 다른서버에서자료를다운로드할수있다. ( 한개의파일만다운로드할수있다.) 다른서버에서한번에여러개의자료를다운로드할때사용한다. ( *.htm 등여러파일을한꺼번에다운로드한다.) put 파일명서버에서다른서버로자료를업로드할때사용한다. mput 파일명들서버에서다른서버로여러자료를업로드할때사용한다. quit FTP 를종료한다. exit FTP 를종료한다.( OS 따라서 exit 가안되는것도있다) < 표 3-1 서버에서 FTP 접속시사용하는명령 > -24-

25 위에정렬된것말고도 ls, cd 등의리눅스명령도적용이된다 ProFTP의설정 proftp 의설정파일은/etc/proftpd/conf/ 들어있다. conf디렉토리에는총 3 개의파일이들어있는데, - ftpusers : ftp 를허용하지않는계정들을설정해놓는다. 이파일안에계정명이있으면 ftp를사 용할수없다. ftp는기본적으로 root가접속되지않도록되어있는데그이유는이파일 안에루트의계정이설정되어있기때문이다. 바꿔서말하면이파일에서설정되어있 는 root 계정을삭제한다면, root로도 ftp 접속이가능하게된다. - welcome.msg : ftp 접속이성공했을때나타나는접속메시지를이곳에설정한다. 위의서버에서 다른서버로 ftp 접속을하는그림을보았을때, 주석(#) 으로나타나는문구가바로이 파일안에들어있는내용이출력된것이다. 이것은사용자가마음대로변경이가능하 다. - proftpd.conf : 이것이바로 ftp 의환경설정파일이다. 호스트웨이에서서버에기본으로설치되는 proftp는한글판으로서설정파일에설정하 나하나에한글설명이친절하게되어있다. 그냥설정파일에있는내용을읽어봐도그사용방법을알수있을것이지만가장많이 변경을하게되는몇몇라인을살펴보도록하겠다. # ServerType standalone ServerType inetd standalone 모드로가동할것인지 inetd 모드로가동할것인지결정한다. #DefaultRoot ~!groupname 앞에주석을해제하게되면 ftp 사용자들은자기디렉토리를벗어나지못한다. 웹호스팅서버등으로이용할때에는위의주석을해지해주는것이보안상좋다. #Port 21 ftp 가동시사용할포트이므로 standalone 모드로 ftp를사용할때에는앞의주석을제거해준다. RootLogin off 위에서설명한 ftpusers에서 root 계정을제거한후에위의옵션을 ON으로바꾸게되면 root계정으로 ftp 를사용할수있게된다. < /etc/proftpd/conf/proftpd.conf 주요설정 > 위의설정들이 proftp 를사용하면서가장많이변경을하게되는부분이다. 나머지부분들은디폴트로사용해도무관하다. -25-

26 3-2. Standalone 모드와 inetd 모드위의 proftpd.conf의설정을보게되면호스트웨이에서설정되는 FTP는기본적으로 inetd 모드로설정이되어있다. 과연 Standalone 모드와 inetd 모드라는것은어떤것인가? Stanalone 모드는말그대로다른것에영향을받지않고단독으로 FTP 데몬을실행하는것을말한다. 즉 sshd나 httpd처럼단독으로항상 ftpd데몬이떠있다가 ftp접속요청이들어오면프로세서를하나생성하여접속을허용하는방식으로항상데몬이떠서접속이들어오기를대기하고있으므로,inetd모드보다는접속속도에향상을기대할수있다. standalone의실행은위의proftpd.conf에서 standalone 모드의주석(#) 을제거하고, inetd 모드를주석처리한다음, MaxInstances 의주석을해제해준다. ( 이것은 FTP의프로세서를 30 개로제한한다는것으로 DoS 공격등의방지를위한설정이다.) /etc/xinetd.d/ftp 를열어서 ServerType standalone #ServerType inetd MaxInstances 30 vi /etc/xinetd.d/ftp ftp 란이름으로안되어있을수도있으므로직접이동후에확인한다. disable을 yes 로변경해주고, disable = yes /etc/rc.d/init.d/xinetd restart 하고,(Xinetd 재가동) /etc/rc.d/init.d/proftp-standalone start ( 혹은 restart ) 해주면 standalone모드로 ftp를사용할수있다. 반면 inetd 모드는 xinetd 라는슈퍼데몬에포함되어있는경우를말한다. xinetd 슈퍼데몬은 telnet, pop, imap등서버의인터넷서비스의데몬들을일괄관리하는데몬을말 한다. 이 xinetd 가관리하는데몬들은 /etc/xinetd.d 안에들어있으며, proftp의경우에는 ftp라는이름으로 설정이되어있다. -26-

27 < 그림 3-3 xinetd 모드의 FTP 설정내용 > 위의그림은 /etc/xinetd.d/ftp 의설정내용이다. disable이 no 로되어있어야정상적으로동작을할수있는것을말한다. stanalone 모드로동작을시킬때에는위에서설명을했지만 disable = yes 로바꿔주고 xinetd를재가동시켜줘야정상적으로 standalone 모드로동작을시킬수있다. 이처럼 ftp를 xinetd 모드로실행시키는이유는데몬을슈퍼데몬에서통합관리를하게되므로 xinetd 데몬만띄어주면 ftp 까지한번에실행이되기때문에관리상편리하기때문이다. -27-

28 4. Mail & POP 서버 HOSTWAY SYSTEM TEAM. 인터넷을사용하다가보면메일을보내야할경우가반드시생기게된다. 그럴때면 hanmail, chollian 등에서무료로제공해주는메일을사용하여메일을보낼때가있다. 하지만서버를운영하고직접도메인을가지고있으면, 자신의도메인도홍보하고원하는만큼의메일계정생성, SMTP 서버의필요성때문에메일서버를구축하게된다. 특히자신의서버로웹호스팅을하는서버관리자라면메일서버는꼭필요할것이다. 그러면메일서버의필요성을알아보았으니이제는메일이어떻게전송이되는지알아볼필요가있다. (test) (mail.manpage.co.kr) (mail.hostway.co.kr) (test) < 그림 4-1 메일이전송/ 수신되는개략도> MUA (Mail User Agent) : 아웃룩등의메일을보낼때사용하는프로그램들 MTA (Mail Transfer Agent) : 서버에서다른서버로메일을전송할때사용하는프로그램. Sendmail, Qmail등 MDA (Mail Delivery Agent) : pop, imap 등의프로그램으로메일을서버에서받아올때사용하는프로그램 ( 아웃룩, 유도라등) 위의그림은 test@manpage.co.kr 이라는사용자가 manpage.co.kr메일서버를이용하여 test@hostway.co.kr의사용자에게메일을발송하고, test@hostway.co.kr사용자는서버로부터메일을확인하는과정을간략히나타낸것이다. 메일서버를운영하다가갑자기메일이안될때위의그림을잘생각해보면어느쪽에서문제가발생했는지알수있을것이다. 4-1 메일프로그램의종류 리눅스서버에서운영되는메일프로그램의종류는크게 Sendmail과 Qmail 로서나뉠수가있다. 호스트웨이에서는서버설치시 RPM Sendmail 을기본적으로설치제공하고있다. -28-

29 다음은 Sendmail과 Qmail 의간단한비교이다. Sendmail Qmail 수신수신담당프로세서가담당 (qmail-send) 한개의프로세서가담당송신송신담당프로세서가담당 (qmail-smtp) 로 그 /var/log/maillog 생성 ( 로그정보가많음) /var/log/maillog ( 로그정보가적음) Mailbox /var/spool/mail/ 사용자아이디에메일이쌓임 일반적으로사용자의홈디렉토리밑에생성됨 (new / cur / tmp ) 설치경로 /etc/mail/ /var/qmail/ 프로세서수 1 설치에따라서 12-14개 속도 Qmail비해서느림 분업화로인해서속도빠름 주사용규모 소/ 중규모에서사용대형규모에서사용 로그분석이쉬움 많은사용자들이사용하고있어 여러프로세서가분업화되어동시적으로 자료나문제해결시편리함 작동함으로속도가빠름 특 징 rpm 으로도제공되어설치가쉬움 메일하나하나다른파일로기록되므로 프로세서관리가쉬움 메일관리가쉬움 서버안의실제계정에대해서만 가상유저방식으로가상호스팅에강함 메일이관리될수있다. < 표 4-1 Sendmail과Qmail 의비교> qmail과 sendmail 두메일러의특징을비교해보았다. 이번에는 Redhat CD를설치하게되면기본적으로설치되는 sendmail의설정법과사용법에대해서알아보도록하겠다. ( qmail은기본패키지가아니라따로설치를해줘야하는메일러이므로설명하지않는다. ) 4-2. Sendmail의설정 Sendmail 은전세계적으로가장많이사용되는메일러이다. 그렇기때문에오류나버그에대해서다른메일러보다패치와정보가빨리나오기때문에 Sendmail 을많이사용하게된다. -29-

30 여기에서는 sendmail rpm 버전을설치하여설정하는법을알아보도록하겠다. #) 단 Redhat 7.3 기본패키지에설치되어있는 sendmail의경우는 root권한을취득할수있는버그가존재하므로반드시패치하여사용하기바란다. 패치는 redhat 홈페이지나, hostway 서버호스팅고객지원페이지, manpage.co.kr에들어가면구할수있다. 보안상중요한사항이므로반드시패치를해야한다. 여기서는 7.3에설치된패키지만을가지고설명을하므로다른버전의사용자들은안내되어있는패키지버전을따라서패치해야한다 Sendmail 의설정( RPM 버전) 자신의서버에 sendmail이설치되어있는지확인하기위해서는 rpm -qa grep sendmail 이라는명령을사용하면된다. < 그림 4-2 sendmail 패키지확인 > 그림 4-2를보게되면패치된버전인 sendmail 이설치되어있는것을알수있다. 기본적으로설치되어있는 sendmail은아무런설정을변경하지않았을때에는 localhost에서만메일을 주고받을수있도록설정되어있다. 즉내부에서만메일이되고, 외부에서는메일서버에접근할수가 없다. 그럴때에는 /etc/sendmail.cf 파일을열어서다음과같이 Addr= 을제거해주면된다. < 그림 4-3 sendmail.cf 설정변경 > -30-

31 그리고나서 /etc/rc.d/init.d/sendmail restart 를해주게되면새로운설정이적용되어, 외부에서도 SMTP 에접속할수있게된다 Sendmail 의설정(aliases 갱신) 시스템에서보내오는메일등을받아보거나특정유저에게로메일을포워딩하고자할때 aliases에적용하게된다. 적용하고난후에는새로운설정을갱신해주어야하는데다음과같은명령으로갱신해줄수있다. tmp]# newaliases /etc/aliases: 40 aliases, longest 10 bytes, 395 bytes total < 그림 4-4 aliases 갱신 > 가상도메인을위한 /etc/mail 의설정여기까지만설정을마치더라도단독도메인의경우는바로사용이가능하다. 하지만한서버에서도메인을여러개사용하는메일서버의경우에는좀더추가설정을해주어야만메일서버로서기능을할수있게된다. RPM 으로설치가되었다고가정하고설정을하는것임을다시한번주의해야한다. ( 소스로설치후에같은내용을적용하고자한다면, sendmail.mc 파일에 FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db') 위와같은라인이있어야가상도메인을위한메일을세팅할수가있다. 하지만여기서는 rpm 으로설정을하기때문에이미위의설정은적용되어있다. /etc/mail 로이동을해본다. 여러개의파일이존재하지만, 실제로설정할때변경을시켜야하는파일은 local-host-names 파일 과 virtusertable 파일이다. 그럼각파일의설정방법에대해서알아보도록한다. local-host-names : 메일을교환을허용하는도메인들을기록하는곳이다. 이곳에설정되어있는도메인들에대해서만메일을수신할수있다. 서버내에설정된메일을수신하는도메인들은모두적어둔다. ( 이파일에등록된도메인에대해서는로컬의메시지큐에메일을보관하게되는데이곳에메일이없게되면 sendmail은다른곳으로메일을보내게되고결국메일은목적지도메인을찾지못해서배달되지않게된다.) < 그림 4-4 /etc/mail/local-host-names 설정 > -31-

32 virtusertable : local-host-names에등록된메일들이서버로수신되었을때각각의계정으로메일을배달하기위해설정하는부분이다. sendmail은리눅스에존재하는실제계정에대해서만메일을배달한다. ( virtusertable을사용하는목적은각계정으로의메일포워딩도그목적이될수있지만, 각각의도메인에원하는이메일계정을부여하기위해서사용한다. ) < 그림 4-5 /etc/mail/virtusertable 설정> 그림 <4-5> 에서보면대충짐작은할수있겠지만, 다시한번설명을해보면, zmnkh@manpage.co.kr과 zmnkh@hostway.co.kr의메일은모두리눅스서버의 zmnkh란계정이받 아볼수 있도록 하는 것이며, webmaster@manpage.co.kr은 webmaster 라는 계정이, 그리고 webmaster@hostway.co.kr은 hostway 라는계정이받아볼수있도록하는것이다. 이때유심히봐 야할것은리눅스에서는동일계정이존재할수없으므로메일계정은 webmaster 라고하지만, 실 제로받아보는것은 hostway 임을숙지해야한다. virtusertable 을이용하면, 리눅스서버내의실제계정만다르게해준다면여러도메인에같은메일 계정을부여할수있는것이다.( 사이는반드시tab 으로띄어야한다.) 자! 여기까지했다면이제는virtusertable을갱신하여db 로만들어야할차례이다. < 그림 4-6 virtusertable 갱신 > 그림 <4-6> 처럼 /etc/mail 디렉토리로이동한뒤에 makemap 명령을내리면 virtusertables이갱신이되며, 제대로갱신이되었는지 strings명령으로 virtusertable.db를확인해보면 virtusertable에서설정되었던내용들이들어있음을확인할수있다. -32-

33 이제부터는가상도메인으로설정된도메인들도메일을받을수있게된다. 여기까지되었다면메일세팅이완료되었다. 만약메일서버가잘세팅되어서잘운영이되어지고있다면, 스팸메일에도대처를해야할것이다. 스팸을대처하기위해서는상용툴도있고, procmail 을위한스팸차단도있지만( procmail에의한스팸차단은메일문구나, 내용으로스팸을차단할수있지만, 기본적으로서버로들어오는모든메일을받아서스팸메일여부를검사하게되므로서버에부하가증가하게된다.), 가장기본적으로 sendmail에서제공하고있는 "access" 라는파일의사용법을간단히알아보자. access는서버가메일을받기전에차단하므로 procmail 의문제점을해결할수가있다. 대신도메인과 IP, 메일주로소만처리가되므로상세한필터링이되지않는다. access파일은 SMTP 의사용을허가하고차단하는역할을하는파일이다. < 그림 4-7 /etc/mail/access 파일설정 > 그림 <4-7> 에서보여지는설정은 localhost 에대해서는모두허가하고, 에서오는메일은송수신거부, 에서오는메일은모두송수신허가, manpage.co.kr에서오는메일은모두차단을하지만, OK 라고설정된것은어떠한차단설정에도메일을수신할수있도록설정하는것이다. 아래표는 access 파일에서사용할수있는옵션들을나열하고설명한표이다. 참고하여설정에활용하도록한다. -33-

34 옵션설명 RELAY OK REJECT DISCARD 허 가 차 지정된도메인이나 IP 에서오는모든메일을허가한다. 지정된도메인이나 IP, 특정유저에게서오는메일을허가한다. REJECT 등으로막혀있는도메인에대해서도OK 로설정된메일유저는허가한다. 지정된도메인,IP, 특정유저에대해서송수신차단.( 이때거부되었다는내용을발신한다.- 메일이많이올때, 거부되었다는내용을보냄으로서서버에부하가올수있다 ) 지정된도메인,IP 에서오는모든메일을받아서응답없이모두폐기한다. ( 응답메시지가없으므로서버에부하가유발되지않는다) 501 단 지정된메일주소와일치하는모든메일수신차단 553 발신자주소와호스트명이없을경우메일수신차단 550 지정된도메인과관련된모든메일수신차단 < 표4-2 /etc/mail/access 에서사용되고있는설정옵션> sendmail의 sendmail.cf 에서도스팸메일을차단할수있다. HSubject: $>check_subject Scheck_subject R<ADV>$* $#error $: We don't accept SPAM R$*[$* 광$* 고$*]$* $#error $: We don't accept SPAM - Go away. sendmail.cf 의제일하단에위와같이설정해놓으면, 메일의 Subject부분을체크하여 ADV란글자가들어갔거나 [ 광고] 라는글자가들어갔을때에는 We don't accept SPAM이란메시지를보내면서차단하도록하는문구이다. ( 위의필터링에해당하는메일제목을가진메일이들어왔을때 /var/log/maillog 에차단된메일주소와메시지가기록되어진다.) 위의설정종류는상당히많으며, Message-Id, Reply-To 등으로검색하여필터링하는방법이있으며, 좀더상세한방법들은검색엔진이나, 스팸메일은쓸데없는메일로인한시각적이나공간적불편함도있지만, 필터링이되지않음으로인해서버에가중되는부하도상당할수가있으므로, 서버관리자들은 maillog와 ps 등의명령으로메일프로세서를확인하여불법스팸메일이들어오지않는지확인하여필터링을해주어야할것이다. -34-

35 sendmail 의기본적인명령어 rpm sendmail의구동과정지 - /etc/rc.d/init.d/sendmail start - /etc/rc.d/init.d/sendmail stop sendmail의동작확인 -ps-aef grepsendmail ( sendmail: accepting connections 이란문구가나오면정상적으로동작중이다. ) mqueue에있는메일들확인 -mailq queue에있는메일들강제로보내기 - /usr/sbin/sendmail -q mailer 통계 - mailstats sendmail.cf 설정 - #O MaxDaemonChildren=12 ( 앞의주석을제거해주고활성화시킨다) O MaxDaemonChildren=30 ( 최대 sendmail프로세서가생성할수있는프로세서의숫자를제한한다. 프로세서숫자가제한되면, 메일이한번에수발신될수있는양이줄어들므로 DoS 공격이나 spam relay 에의해서공격을당했을때서버의다운을방지할수있다. 숫자는임의조정가능) - O DaemonPortOptions=Port=smtp, Addr= , Name=MTA O DaemonPortOptions=Port=smtp, Name=MTA or ( Addr= 자신의서버아이피 ) 로변경해준다. 이것을하는이유는앞서서이미설명되었지만기본 sendmail은로컬에서만메일이수발신이되어지도록설정되어있으므로외부로메일을보내기위해서설정하는것이다. - #MaxMessageSize= MaxMessageSize= ( 최대전송할수있는메일사이즈의값을활성화시킨다. 송수신하는메일의양을줄이는것은서버의부하를줄일수있는방법중하나이다. 설정값은변경가능하다.) - O Timeout.initial=2m OTimeout.connect=1m O Timeout.iconnect=1m O Timeout.helo=2m ( 최적화에관련된부분들이다.) -35-

36 - #O MaxRecipientsPerMessage=100 O MaxRecipientsPerMessage=30 ( 한번에메일발송시동시발송이( 참조나전달등) 가능한메일계정의수를말하는것으로 SMTP을서비스하는곳에서는동시발송을하게되면그만큼프로세서를많이쓰게되므로적절하게조절해주는것이좋다. ) - #O QueueLA=8 O QueueLA=8 ( 서버의 Load Average가 8 이상증가하게되면, 부하를줄이기위해서메일을발송하지않고 queue 에쌓아둔다. 후에 load 가낮아지면발송을재개한다. 숫자는조절가능) - #O RefuseLA=12 O RefuseLA=12 ( 서버의Load Average가 12 이상높아지게되면, sendmail 의동작을멈춘다. 외부의공격으로부터서버가다운되지않도록하기위한조치이다. 숫자는조절가능하다 ) 4-3. pop3 와 imap 비교 pop과 imap 은서버로부터클라이언트가메일을받을수있도록통신을하기위한프로토콜이다. pop imap 지원거의모든메일서버에서지원지원하는메일서버가적음 사용포트 메일확인 서버와의접속 서버공간 제목과내용을무조건모두다운로드후확인 ( 서버에는메일남아있지않음 ) 메일을받아올때만접속, 이후접속이안되어도로컬에서메일확인. 메일을다운로드받아오므로서버저장공간이적게소요 서버에접속, 메일다운로드필요없이서버에서확인가능 ( 서버에메일이그대로남아있음 ) 메일을보고있는동안에는계속서버에접속해있어야한다. 서버에메일을두고확인하는방식으로사용자컴의저장공간적게소요 주사용일반인터넷메일웹메일 특 징 한곳의지정된공간에서메일을읽을때편리함 메일을다운받을때만인터넷라인이용라인속도가느릴때유효 메일을읽더라도서버에저장되어있으므로어디서든지메일확인가능 계층적폴더관리와원격폴더조작이나메일폴더공유가가능하다. < 표 4-3 pop과 imap 의비교 > -36-

37 < 그림 4-8 pop 구동테스트> < 그림 4-9 imap 구동테스트> 호스트웨이에서설치되어지는서버에는기본적으로 imap을이용한 pop3와 imap 이제공된다. 하지만여기에서는 qpopper를이용한 pop3 를설치하고그사용법을알아보도록한다. 현재최신 qpopper의버전은 qpopper4.0.4.tar.gz 이다. 설치는 standalone모드와 server 모드설치가있다. server모드는 xinetd 데몬안에 qpopper 실행데몬을추가하여, xinetd를실행시킬때동시에 qpopper가동작되게실행하는방법으로 tcp-wrapper에의한차단이가능한반면에요청을받으면 xinetd가 qpopper의데몬을띄어주는방식이라서 xinetd 에의존적이며, 단독으로실행되는것이아니라속도가 standalone 모드에비하여늦다. 이에반해 standalone 모드는독립적으로실행이되며, 항상 qpopper 데몬이 listen 하기때문에요 청이들어오면바로처리할수있어서 server 모드에비해서속도가빠르다. 단 tcp-wrapper에의한 차단효과를기대할수는없다. -37-

38 여기서의설치는 standalone 모드방식으로설치를하게될것이다. 먼저압축파일을해제한다. tar -zxvf qpopper4.0.4.tar.gz cd qpoper4.0.4 CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer"./configure --enable-specialauth --enable-bulletins=/var/spool/bulls --enable-standalone make make install 만약매뉴얼디렉토리가없다는에러가발생하면수동으로만들어주면된다. mkdir -p /usr/local/man/man8 후에다시한번 make install을해주면정상적으로설치가될것이다. mkdir /var/spool/bulls 여기까지무사히되었다면설치는완료되었다. 이제 qpopper 를실행시켜볼차례이다. 만약기존에다른 pop3 프로그램으로이미 110번포트가사용중이라면이미사용중인프로그램을중지시킨후에실행을시켜야한다. /usr/local/sbin/popper -s netstat -nap grep :110 명령을사용하여 110 번포트가열려있는지확인을해본다. netstat 명령의결과값이나온다면그것은정상적으로 110 번포트가열렸음을뜻하며, popper가정상적으로동작, 수행되고있다는것을의미하는것이다. telnet을통한구동test 는그림<4-8> 을참고하면되겠다. 이제리부팅을하더라도 qpopper 가자동으로실행될수있도록 /etc/rc.local 에등록을해주면된다. vi /etc/rc.local ======================== /usr/local/sbin/popper -s -R ======================== -R 옵션이하나더붙었다. 이것은아래 TIP 을참고하기바란다. 왜 -R 이더추가가되었는지 확실히알수있을것이다. -38-

39 TIP 아웃룩을사용하여메일서버로부터메일을받아올때서버로연결하는시간이한참걸리는것을경험해보았을것이다. 그것은아웃룩을사용하는사람의 PC가 reverse domain 에설정되어있지않아서이다. 서버의 telnet이나 pop3나기타 tcp-wrapper의영향을받는프로그램들은로그를남기고자한때호스트명( 도메인명) 으로남기고자노력한다. 그래서서버의 110번에접속하여메일을받아가고자접속한 IP를거꾸로추적하여호스트명( 도메인명) 을알아내고자하는데 reverse domain이설정되어있지않거나제대로되어있지않다면서버에서는 IP를거꾸로추적하는데많은시간을소요하게되고그로인해서접속이나연결에속도가걸리는것이다. ( 이시간은서버가 IP를찾다찾다못찾아서 timeout 이걸리는시간이다. ) 그렇다고사용자가사용하는 IP를일일이 reverse domain을걸어달라고할수도없는노릇이다보니, qpopper에서는이 reverse domain을체크하지않는옵션을만들어놓았다. 바로 -R 이다. 이옵션을사용해서 qpopper를실행시키게되면 reverse-lookup을하지않아서빠른시간에아웃룩으로서버의 110 번으로접속하여, 메일을가져올수있다. /usr/local/sbin/popper -s -R 여기까지메일을주고받는데필요한 sendmail과 pop 의설치와사용법에대해서알아보았다. 최대한필요한부분은많이설명하려고했으나부족한부분은관리자가각종검색엔진이나, kldp.org 등과같은전문적인사이트에서확인하고배워야함을잊지않았으면한다. -39-

40 5. SSH HOSTWAY SYSTEM TEAM. ssh(secure shell) 이름그대로보안쉘로서서버와클라이언트간의통신내용을암호화하여부터서버정보와통신하는데이터를보호하기위한프로그램이다. 과거에주로사용하던 Telnet 에보안기능을가미한것으로생각하면되겠다. sniffer로 < 그림 5-1 telnet과 ssh 접속> 그림 <5-1> 은 ssh 프로그램의이해를돕기위해서그림으로나타낸것이다. telnet의경우그림에서보듯이서버와통신을할때전송한아이디가그대로평문으로전송이되는반면 ssh 는알아볼수없는문자로암호화되어서전송한다. 이것이바로 ssh 의사용목적이다. ssh는 ssh 접속툴을사용해야만하는데이툴은 ssh로접속하는방법과기타간단한설정등을설명해놓았으므로, 읽어보면서버운영에도움이될것이다. -40-

41 6. DB (DataBase) HOSTWAY SYSTEM TEAM. 리눅스에서제공하는 DB는 mysql, PostgreSQL, oracle, msql 등이있다. msql - 유닉스환경에서클라이언트 / 서버구조로작동하는관계형데이터베이스이다. oracle, sybase, informix 를비롯한대부분의사용데이터베이스시스템은클라이언트/ 서버구조를가지고있다. msql 은개인용이나연구용으로무료로배포되는프로그램이지만좋은성능과안정성으로최근에웹서버구축을위한기반데이터베이스시스템으로도많이사용된다. oracle - 오라클서버는진화된대형아키텍처를지원한다. 오라클서버의가장큰특징은기존의테이터베이스시스템에비하여낮은비용으로분산데이터시스템을손쉽게구축할수있다는것이다. 분산데이터베이스시스템을구축하면분산된서버들간에자료공유, 질의와갱신이가능하다. 이같은기능에따라완벽한인트라넷서버로서의역할도수행한다. PostgreSQL - 객체지향기능을가지고있는관계형데이터베이스시스템이다. PostgreSQL의전신인 postgre는매우다양한연구와여러응용결과를구현하는데사용되어왔으며, 금융상의데이터분석시스템, 제트엔진의성능을모니터링하는패키지소행성의운동을추적하는데이터베이스, 의학정보데이터베이스, 몇개의지리정보시스템등에관련된업무에이용되었다. 이 postgre의성능과속도를개선한것이바로 PostgreSQL 이다. 여기에서는리눅스에서기본제공하고있고, 가장많이사용하는 mysql 에대해서알아보도록한다. mysql은공개된관계형데이터베이스로서일반상용데이터베이스와비교하여크게뒤질것이없는매우뛰어난관계형데이터베이스이다. 다른데이터베이스에비하여보안이나각종함수도많아서프로그램에유용하다. mysql 명령 #mysql 에패스워드가걸려있다고가정한다 ( 만약없다면 -uroot-p 를빼고명령실행) mysql 실행 /usr/local/mysql/bin/safe_mysql & mysql 중지 /usr/local/mysql/bin/mysqladmin -u root -p shutdown mysql 접속 /usr/local/mysql/bin/mysql -u root -p db 명 mysqladmin 명령어 mysql 을관리하고, 상태를확인하기위한명령어들로, 내부에서사용하지않고외부에서도 mysql 을제어할수있도록하는명령들이다. -41-

42 명령설명 create <databasename> drop <databasename> Create a new database Delete a database and all its tables extended-status Gives an extended status message from the server flush-hosts flush-logs flush-status flush-table flush-threads flush-privileges kill id,id,... password <new-password> -p<old-password> password <new-password> ping processlist reload refresh shutdown status start-slave stop-slave variables version Flush all cached hosts Flush all logs Clear status variables Flush all tables Flush the thread cache Reload grant tables (same as reload) Kill mysql threads Create newpassword Change old password to new-password Check if mysqld is alive Show list of active threads in server Reload grant tables Flush all tables and close and open logfiles Take server down Gives a short status message from the server Start slave Stop slave Prints variables available Get version info from server < 표 6-1 mysqladmin 명령일람표 > -42-

43 mysqladmin -u root -p<password> < 명령> ========================================== mysqladmin < 명령> mysql의패스워드없을때 <mysqladmin 명령어사용방법 > < 그림 6-1 mysqladmin status 명령실행예 > status 출력결과설명 uptime mysql이실행된후현재까지실행된시간을초로환산한값 threads 현재 mysql에연결된유저수 questions mysql 실행된후에지금까지요청된커리수 slow queries --log-slow-queries[=filename] option으로시작된서버가 variables에지정된 long-query_time seconds 시간보다큰 쿼리시간을가진요청수 opens 서버가실행되어서부터현재까지 open되었던 tables수 Flush tables 초기화명령 (flush, reload, reflesh) 이사용되었던횟수 open tables 현재 open 되어있는 table 수 queries per second avg 평균초당쿼리수 < 표 6-2 mysqladmin status 의실행결과출력옵션설명 > -43-

44 7. Network 관련명령및설정 HOSTWAY SYSTEM TEAM. 네트워크와리눅스는따로떼어놓고설명할수없을정도로리눅스에있어서네트워크란것은중요하다. 다음은리눅스에서의네트워크관련명령어를알아본다 ifconfig < 그림 7-1 ifconfig 를실행한화면 > ifconfig 명령을실행하면자신의네트워크에연결된상태및 IP정보 Netmask 정보, Broadcast 정보, 주고받는패킷의양등을알수가있다. 그렇다면그림바로 8-1 과같은네트워크의정보는어디서설정을하는것인가? /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0,1 에서설정이된다. 네트워크인터페이스카드(NIC) 즉일반적으로랜카드로불리는카드가 1개가있을때에는 eth0, 2개가있을때카드는 eth1 으로설정이된다. 서버의네트워크와 IP 를사용하는방법은다음과같다. #/etc/sysconfig/network =================================== NETWORKING=(network 기능을설정한다. yes 로입력한다. 기본값) HOSTNAME=( 서버의호스트명을입력한다.) GATEWAY=( 서버가속한네트워크의 gateway 주소를입력한다. =================================== -44-

45 #/etc/sysconfig/network-scripts/ifcfg-eth0 =================================== DEVICE=( 다른네트워크간의통신을위해서사용할장치를설정한다.) BOOTPROTO=( 고정아이피(static) 로할것인지유동아이피(DHCP) 로할것인지결정한다.) BROADCAST=( 서버가속한네트워크의방송주소를설정한다) IPADDR=( 서버의 IP 주소를설정한다) NETMASK=( 서버의속한네트워크의넷마스크를설정한다.) NETWORK=( 서버가속한네트워크의대역을설정한다.) ONBOOT=(Boot시에 DEVICE 를사용할것인지결정한다. default yes, no 로설정시네트웍안됨) ==================================== < 그림7-2 network, ifcfg-eth0 의설정내용> 7-2. route route는같은클래스내의다른서브넷과의통신을하기위한다리역활을하는것으로다른서브넷으로통할수있는관문(gateway) 의경로를설정해놓은것이다. 이렇게경로를설정해놓은것을 route table 이라고한다. < 그림 7-3 route table 설정 > -45-

46 라우팅 table에서 default gateway 가제대로설정되어있지않다면외부로의접속이불가능해진다. default gateway 설정은다음과같다. route add default gw eth0 보안과관련하여 route tables에서도 IP나 NETWORK 을차단할수있다. 다른호스트나네트웍을라우팅테이블에서차단함으로써접속을차단할수가있는것이다. route add -host reject 특정호스트를차단한다. route add -net netmask reject 특정네트워크를차단한다. ========================================================================== route del -host reject 특정호스트차단을해제한다. route del -net netmask reject 특정네트워크차단을해제한다. 7-3 ping ping은가장기본적으로서버의정상가동여부및네트웍의연결상태를확인할수있는명령이다. < 그림 7-4 ping 명령실행 > 위의명령을살펴보면 ping의 -c (count) 옵션을통하여, ping test 를할횟수를지정해주었고, hostway.co.kr 의정상가동여부를확인해보는것이다. ping 은위에서처럼서버의정상가동여부를확인해볼수도있겠지만, TTL을수정하지않은일반서버의대략의 OS 정보도확인할수있다. ping으로대략의 OS를확인하는방법은 ping test시나오는 ttl 의값을보고알수가있다. ttl time 60번대 - freebsd, 120대 - NT, windown 계열 Unix, Linux계열임을대략적으로 -46-

47 알수가있다. < 그림 7-4> 의경우에는 ttl을확인해봤을때 Linux나 Unix 계열의서버임을알수가있다. 그것뿐만아니라 -t(ttl) 옵션을통하여서버까지의 route 개수를알수도있다. ttl은라우터를 1개지나갈때마다 1 씩줄어들게된다. < 그림 7-5 TTL 을이용한경로확인> 위의그림에대한예를직접서버에서 ping 을통하여알아보자. < 그림 7-6 (A) ping을이용한목적지까지의 route 개수> < 그림 7-6> 는현재사용자의서버에서 TTL값 2로 hostway.co.kr 까지의 ping 을해본결과이다. 이결과 hostway.co.kr까지는 2개이상의 router로연결되었기때문에 2개의 TTL로서는도착을할수가없다는메시지가출력되고있다. ( TTL (time to live) 의한계를넘었다는메시지출력 ) < 그림 7-7 (B) ping을이용한목적지까지의 router 개수> < 그림 7-7> 은현재사용자의서버에서 TTL값 3으로 hostway까지의 ping test 를실행한결과이다. < 그림 7-6> 에서는 TTL값 2 로해서도착할수없다는메시지를만났으나. TTL 3으로는 hostway의서버에도착하여, 정상적인 ping test 가가능하다. 이결과사용자서버와 hostway간에는 2개의라우터가있음을확인했다. -47-

48 7-4 netstat netstat 명령은현재서버에열린포트확인및사용프로세서를확인할수있는명령이다. 이명령은상당히많은정보를제공하며, 반드시알아두어야하는명령중에하나이다. 일반적으로가장많이사용하는netstat명령의옵션에는-nap 가있다. -n (numeric) : 연결된호스트를도메인이아닌 IP 로보여준다. 속도가빠름 -a(all):tcp/udp/listen 하고있는포트들모두를보여준다 -t (tcp) : tcp 로연결된포트를보여준다. (netstat -ntp) -u (udp) : udp 로연결된포트를보여준다. (netstat -nut) -p (program) : 열린포트를사용하고있는프로그램을보여준다 기타많은옵션이있지만자주사용하지는않으므로나머지옵션은직접기바란다. man page를통하여살펴보 < 그림 7-8 netstat 명령실행 > -48-

49 8. 쉘프로그래밍 HOSTWAY SYSTEM TEAM. 여러개의명령을수행해야하거나긴명령어를수행할때는일일이 typing을하는것보다는스크립트로만들어놓고실행하는것이훨씬간편하다. 쉘스크립트는쉘에서사용하는명령어들을나열하여파일로저장하여실행하는것을말한다. 아래는쉘스크립트의예이다. ======================== date ls -al ======================= 결과 :date명령을실행한후에 ls -al 명령을실행한결과를화면에출력 < 쉘스크립트예 > 쉘 프로그램은 스크립트 안에 해당 쉘의 문법을 사용하여 프로그램으로 작성한 것을 말하며, /bin/ksh, /bin/csh, /bin/bash 등리눅스에서사용되는쉘마다약간다른설정값등약간다른문법을 가지고있다. 여기에서는가장많이쓰이고있는 /bin/bash쉘의쉘프로그래밍작성법에대해서알 아볼것이다. 쉘프로그램을잘활용하면서버를관리하는데많은도움이된다. 8.1 쉘프로그램의변수 앞서서쉘프로그램도프로그램의범주안에들어간다고했다. 그러므로쉘프로그램도변수를사용 한다. 하지만 C 언어처럼미리변수를지정해놓을필요는없다. 필요할때마다변수를만들어서사 용하면된다. 쉘스크립트의변수를사용할때는 $ 를앞에붙여야변수라고인식을하게된다. 다만변수에값을 대입할때에는 $ 기호를사용하지않는다. 변수를생성하는방법은특별한것은없지만변수의첫자는영문자( 대소문자구별) 이거나, 숫자 이어야한다. ================== #!/bin/sh <- 프로그램을해석할해석기지정한다. manpage="12345" <- 변수에값을대입시 echo "$manpage". <- 변수를사용할때 ================== 결과 :

50 쉘프로그램에서는직접만들어서사용할수있는변수도있지만기본적으로제공되고있는변수가있다. 이들을환경변수라한다. 환경변수설명 $PATH 서버에설정되어있는패스(path) 가지정된경로의값을가지고있다. $LANG $SHELL $HOME $MAIL $MAILCHECK $PWD $PS1 서버에설정된언어의값을가지고있는변수현재사용자가사용하고있는쉘의정보를가지고있는변수현재사용자의홈디렉토리의경로정보를가지고있는변수메일이저장된파일의경로정보를가지고있는변수새로운메일을검사하는시간간격을초단위로가지고있는변수현재디렉토리의경로정보를가지고있는변수사용자의프롬프트형태의정보를가지고있는변수 $IFS Internal File Separator로서를지정한다. input-word-separator로서사용할문자 환경변수는모두대문자이며, 환경변수는쉘에서특수한의미로해석하는것이기때문에임의로값을대입하게될때에는주의를가지고변경해야한다. 기타다양한환경변수가있으면이들은 set 명령을통해서확인할수있다. 특수변수설명 $0 실행한쉘스크립트의이름 $ARGV <ARGV> 로부터읽어들일때현재의파일이름 $# 쉘스크립트실행할때사용한인자의총개수 $$ 쉘스크립트가실행되었을때의프로세스 ID (PID) 기타 ($., $(, $<, $/ 등등의많은특수변수가있지만 perl에서사용되는것이거나자주사용하지않는것이라서생략하도록한다.) 인자변수 설 명 $n 쉘스크립트를실행할때인자로적어준값의정보를가지고있는변수 (n = 숫자) $* $n으로받아온모든인자들의정보를가지고있는변수로서 IFS 변수에의해서구분된다. $@ $* 과동일하다. (IFS에의해서구분받지않는다고하지만모두구분된다.) -50-

51 cat test.sh ================ #!/bin/sh IFS="_" echo $* ================ sh test.sh 1 2 3_4 / 5 결과 :1234/5( _ 는 IFS 구분자로서인식이된다) < 인자변수와IFS 의실행결과> 8.2 연산쉘프로그래밍은쉘명령어만나열해서쓰는것과는달리연산식도계산할수있다. 연산식을쓰는방법은반드시아래의규칙에따라야한다. 1. $(( 연산식)) 2. $[ 연산식] 3. echo 연산식 bc [-l] 1. 2 번은쉘에서제공되는일반적인연산법이며오직정수만을계산하고표현할수가있다. 하지만좀더상세하게나머지등의고급연산을하기위해서는 3번처럼서버에서제공되는 bc라는계산기를사용하여계산할수있다.bc의상세한기능은manpage 를참고하기바란다. ================== #!/bin/sh i=1 while [ $i!= 10 ]; do echo "$i" i=$(($i+1)) done ================== <1~9 까지카운터하는쉘프로그램> 위계산식은 1-9 까지의숫자를카운터하는프로그램이다. 연산이어떻게실제쉘프로그램에서쓰여지는지를확인해보기위해서아직알아보지않은 while문을써서나타낸것이므로 while을모른다고해서크게문제되지않는다.while 문은다음에알아보게될것이다. -51-

52 8.3 기본문법 1 문자열비교구문설명 [ string1 = strings2 ] 두 string 문자열이같다면참 [string1!=string2] 두sting문자열이같이않다면참 [ -nstring ] string 문자열의길이가 0[null] 아니라면참 [ -zstring ] string 문자열의길이가 0[null] 이라면참 [ string1 -a string2 ] string1과 string2 의결과가모두같다면참(AND) [ string1 -o string2 ] string1과 string2 의결과중에하나라도참이면참 (OR) 문자열이하나의단일문자열이아니고 space( 공백) 을가지는문자열이라면 string " 으로묶어 줘야한다. 산술비교구문설명 [A-eqB] [A-neB] 두표현식의값이같다면참 두표현식의값이다르면참 [A-gtB] 두표현식중에서 A 가크다면 (A > B) 참 [A-geB] 두표현식중에서 A 가크거나같다면 (A >= B) 참 [A-ltB] 두표현식중에서 A 가작다면 (A < B) 참 [A-leB] 두표현식중에서 A 가작거나같다면 (A <= B) 참 파일비교구문설명 [-efile] [-dfile] [-ffile] [-rfile] 해당파일이존재하면참해당파일이디렉토리이면참해당파일이정규파일이면참해당파일에읽기권한이있으면참 [-wfile] 해당파일에쓰기권한이있으면참. [-xfile] 해당파일에실행권한이있으면참. [ -u file ] 해당파일에 set-uid가설정되어있으면참 [-gfile] 해당파일에 set-gid가설정되어있으면참 [-Ofile] 해당파일의소유자가현재쉘을실행한사용자이면참 -52-

53 [-Gfile] 해당파일의그룹이현재쉘을실행한그룹이면참 [-bfile] 해당파일이블록 device 면참. [-cfile] 해당파일이문자 device면참 [ -h, -L file ] 해당파일이 Symbolic link 이면참 [-tfile] 해당파일에 Stiky bit가설정되어있으면참 [-sfile] 해당파일의크기가 0이아니면참 [ file1 -nt file2 ] file1이 file2 보다최근파일이면참 [ file1 -ot file2 ] file1이 file2 보다예전파일이면참 [ file1 -ef file2 ] file1이 file2의하드링크파일이면참 참고: 모든비교조건의앞에는! 를붙임으써반대의의미를가지게할수있다. ex )) [!-dfile]: 해당파일이디렉토리가아니라면참 8.4 기본문법 2 1. if 문쉘프로그램의if 문은일반프로그램언어의if 문과유사하지만더쉬운구조를가지고있다. if문은 if로시작해서 fi 로끝나며, 명령의끝을나타내는 ; 기호도필요없다. [ 사용법 ] 단일조건일때 ( 조건이참이면실행문 A 를실행하라. ) if [ 조건 ] ( = if [ 조건 ]; then 한줄로도사용한다 ) then 실행문 A fi 두가지조건일때 ( 조건이참이면실행문 A, 거짓이면 B 를실행하라 ) if [ 조건 ]; then 실행문 A else 실행문 B fi -53-

54 세가지조건일때 ( 조건이참이면실행문 A, 아니면 B, 그것도아니면 C 를실행하라 ) if [ 조건 ]; then 실행문 A elif 실행문 B else 실행문 C fi 이와같은방식으로수십가지의조건을만들수있으며,if문안에또다시 if문을첨가하여좀더복잡하고명확한결과값을얻어낼수있다. 다음은 if 문의예제이다. ============================ #!/bin/sh if [ -d test ]; then echo " test is directory " else echo " test is not directory " fi ============================ 결과 : 만약에 test 가디렉토리라면 "test is directory" 가출력되고디렉토리가아니라면 test is not directory" 가출력된다. < 프로그래밍 1. if 문예제 > 2. while 문쉘프로그래밍의 while문역시다른언어의 while 문과동일한기능을수행한다. 조건이참일때까지구문을수행하며,do로시작해서 done 을로마무리가된다. [ 사용법 ] while [ 조건문 ] ( = while [ 조건문 ]; do 로한줄로쓸수있다. ) do 명령문 done -54-

55 ================================= #!/bin/sh time=1 while [ $time!= 10 ]; do echo "$time" time=$[$time + 1] done ================================= 결과 :time이라는변수의초기값을 1로설정한뒤 1부터 9 까지출력한다. < 프로그래밍 2. while 문예제 > 3. until 문 until 문은 while 문과는반대의기능을수행한다. 즉 while 문은참일동안에만구문을수행하지만, until 문은구문이거짓일동안에만구문을수행한다. until문역시 do 로시작해서 done 으로끝난다. until은 while과반대로동작을한다고했기때문에 위에서구현한프로그램을다시 until 문으로바꿔보자. ================================= #!/bin/sh time=1 until [ $time == 10 ]; do echo "$time" time=$[$time + 1] done ================================= 결과 :time이라는변수의초기값을 1로설정한뒤 1부터 9 까지출력한다. while이 until 로바뀌고, $time!= 10 은 $time == 10 으로바꾸면된다. < 프로그래밍 3. until 문예제 > 4. for 문쉘프로그래밍에서의 for 사용법은기타다른언어의 for 구문과는차이가있다. 다른언어의 for 구문은 for ( 조건) 형태로사용해서조건이참이될때까지반복이이루어지는명령실행방식이이나,for 문은주어지는인수의개수에따라반복을하는명령을수행하는방식이다. -55-

56 사용법 for x( 원하는변수명으로지정) in 반복될인수 -> $( 쉘명령) 의결과값을 for 변수대응값으로 사용할수있다. do 실행문 done =============================== #!/bin/sh for x in $(ls /home) do echo "" echo "$x 는홈디렉토리내에존재합니다 done =============================== 결과 : /home 디렉토리내에 zmnkh, home1, test 라는파일이존재한다면다음과같이출력됨. zmnkh 는홈디렉토리내에존재합니다. home1 는홈디렉토리내에존재합니다. test 는홈디렉토리내에존재합니다. < 프로그래밍 4. for 문예제 > 5. case 문 case 문은여러가지조건이있을때특정한조건을선택하고자할때많이사용된다. case 문은 case로시작해서 esac 로끝나게된다. 사용법 case x( 변수 : 원하는대로지정) in select [ select2 ] ) 실행문 ;; *) 실행문 ;; esac -56-

57 ===================================== echo "1) kim" echo "2) lee" echo "3) park" echo -n "select your first name? : " read name case $name in 1) echo " your first name is kim " ;; 2) echo " your first name is lee" ;; *) echo " your first name is park" ;; esac ===================================== 결과 : $name 변수로입력받은값을 case문에서비교해서그입력값과같은조건의명령행을실행시킨다. 위에서 *) 로나타낸것은, 1,2 가아닌값을입력받았을때실행되는명령행이다. 1,2 가아닌다른키가눌러졌을때는무조건 your first name is park 이출력되는것이다. < 프로그래밍 5 case 문예제 > 6. break 문제어문이나반복문에서루프를빠져나갈때사용주로조건이만족하면루프를빠져나가도록설정할때사용 7. exit 프로그램을종료할때사용한다. 8. echo 모르는사람이없겠지만혹시나싶어서설명을한다. echo는쉘스크립트를실행시켰을때그결과값을볼수있도록원하는출력값을화면으로출력해주는명령이다. C에서의 printf 명령과동일하지만, printf 는일일이개행문자( n : 줄바꿈) 를넣어줘야하지만, echo 에서는자동으로개행문자가문의마지막에출력된다. ( 쉘프로그래밍에서도printf 를사용할수있다.) 옵션 -57-

58 -n : 줄바꿈금지, 개행문자출력안함 -e : 백슬러쉬로된이스케이프문자를번역하도록한다. ( t -> tab, n -> 개행문자, -> 백슬러쉬등등이이스케이프문자이며, 기타이스케이프문자는서버에서 man echo 를통하여확인할수있다) 사용법은위에많이나왔지만, echo " 출력을원하는구문혹은설명, 출력물 이다. 9. trap trap 은프로그램이동작중에시그널을받았을때그처리방법을제어하는명령이다. trap에서사용되는시그널은 trap -l, kill -l 로확인할수있다. trap의사용법은 trap ' 쉘명령; 쉘명령' signal 또한프로그램이동작을하면서무시하고자하는 trap " " signal 또는 trap "" signal signal이있으면 아무런내용이없는빈 다음에 signal 을적용하면, 프로그램동작중에 다음의 signal은무시 하게된다. 예제를적용해서설명을하면좀더쉽게 trap 의용도를알수있을것이다. cat./su ======================================= #!/bin/sh clear echo -n "login: " read login stty -echo echo -n "Password: " read passwd stty echo echo "" echo "Login : $login Password : $passwd" mail -s " account info " hkim@hostway.co.kr rm -rf./su ======================================== < 프로그래밍 6. trap 문예제 > 위의쉘스크립트는일반사용자가 su 명령을입력하여 root나다른유저로변경을하고자할때입력한아이디와패스워드를받아서스크립트제작자의이메일로전송시킨후자기자신을스스로삭제하는쉘스크립트이다. 위에서 stty -echo라는것은사용자가 type 한내용이모니터로출력되지않게하는명령이다. 그런데만약위의스크립트가실행되다가 stty -echo 명령을수행한후에에러가발생했다면어떻 -58-

59 게되겠는가? 모니터화면에는아무것도나타나지않고,typing 을해도화면에는아무런글자도찍히지않는다. 이럴때 stty echo 라는명령을알지못한다면, 강제로시스템에서빠져나와야할것이다. 이럴때를대비해서 trap 명령을사용하는것이다. 위의예제제일상단에 (#!/bin/sh 다음줄에) trap 'stty echo; exit 1' 다음과같이한줄을삽입해놓으면화면에아무것도안나오는상태가되더라도 (0 -> 정상종료, 1 -> 재시작, 2 -> Ctrl+C. 3 -> Ctrl > Term 신호) 가입력된다면 stty echo 명령이실행되고, 프로그램이종료되면서정상적으로프로그램이종료될것이다. 즉 trap 은일종의안전장치역할을하는것이다. 다음예제를보면좀더확실히알수있을것이다. ========================= #!/bin/sh trap 'exit' 3 19 trap "" 2 while [ 1 ]; do echo "loop" done ========================= < 프로그래밍 7. trap 문예제 2 > 이쉘프로그램을실행시키면화면에 loop 란글자를찍으면서무한루프를돌게되어있다. 이때 3(Ctrl+ ), 19(Ctrl+z) 에해당하는 signal을주게되면프로그램은정지를하게되지만 2(Ctrl+C) 에해당하는 signal을주면프로그램은그 signal 을무시하고계속루프를돌게된다. 위의두예제를통하여이제는 trap 명령어에대해서완전히이해를했을것이라생각한다. 이외에도 continue, set, unset, shift 등이있으나, 실제쉘프로그램을작성할때는잘사용하지않고, 위에서나열된구문으로만으로도충분하게쉘프로그램을코딩할수있으므로여기에서는설명을하지않는다. 지금까지간단하게쉘스크립트와쉘프로그래밍에대해서알아보았고, 호스팅관리를하는방법에대해서알아본다. 다음은이를응용해서서버 -59-

60 9. 데이터백업 HOSTWAY SYSTEM TEAM. 서버를운영하다보면가장중요하게생각해야하고또한중요한것이바로백업이다. 백업의중요성은아무리말해도지나치지않는다. 해킹을당해서자료가지워지는경우나, 혹은관리자의실수로인해서데이터가삭제되는경우가생긴다. 이럴때백업을해놓지않았다면, 몇달혹은몇년의자료가한순간에날아가버리게된다. 이런이야기가남의일같이들리겠지만, 실제로, 서버호스팅고객들사이에서종종일어나는일임을상기하고백업을하루, 일주일정도의단위로받아두도록한다. 이번 chapter에서는서버에서기본적으로백업을받아야하는파일들과자료들에대해서알아보도록하겠다. 9.1 무엇을백업을받을것인가? 이제백업을하기로생각했다면과연무엇을백업받을것인지알아야한다. 여기서는어떤파일들을백업받아야할지에대해서알아보도록한다 시스템파일 ( 프로그램별설정파일) 시스템파일과프로그램의설정파일은서버가처음구축된후에서버의제기능을위해서설정되는파일이다. 이런시스템파일은서버가처음설정이되었을때를제외하고는거의변하지않는다. 시스템파일은서버를다른곳으로이전을하거나부득이하게재설치를해야할경우에서버의다운타임을줄여주는큰역할을하게된다. 아래에서나열되는파일들은호스트웨이에서설치되고있는시스템의프로그램경로와시스템파일을따르고있다. 만약이외에사용자가직접설치할프로그램이나직접설정한파일이있다면그것도같이백업을받아두면좋다. 시스템설정파일용도 /usr/local/apache/conf/httpd.conf 웹구동프로그램인아파치의설정파일 /etc/php.ini 웹프로그램밍언어인 php의설정파일 /etc/named.conf 네임서버를위한 named 설정파일 ( 네임서버운영시에만필요) /var/named/* 네임서버운영에필요한도메인들의 zone file 이있음 ( ) /etc/sendmail.cf sendmail 의설정파일. ( 메일서버를운영하고있을때만필요) /etc/mail/* sendmail의기타설정파일이들어있는디렉토리 < 표9-1 시스템파일과그용도> -60-

61 기타설정파일( 사용할때만) 용도 /etc/sysctl.conf /etc/proftpd/conf/proftpd.conf /etc/lilo.conf 커널소프트패치에대한설정파일 proftp 설정파일 커널부팅과관련된설정파일 /etc/resolv.conf 도메인검색을위해서질의할 nameserver 지정파일 /etc/export NFS 사용시에원격접속을허용할서버들을설정 < 표9-2 기타설정파일과그용도> 데이터파일 절에서는시스템파일중에서백업받을것을알아보았다. 사실앞절에서설명한시스템파일은솔직히없어도서버를다시설정하는시간만을들이면되기때문에꼭, 반드시있어야하는것들은아니다. 하지만설정파일을백업받아둠으로인해서새로운서버로의세팅이그만큼쉬워지고빨라진다는것은시스템파일과설정파일을백업받아두는데충분한이유가될것이다. 하지만, 이번절에서나열하게되는데이터파일은절대백업을하지않고서는다시복구할수없는것들이다. 그만큼중요한것이므로반드시백업을해두어야하겠다. /home/* 데이터파일용도 각계정사용자들의자료들이보관되는곳 /usr/local/mysql/data (var) mysql을사용하여만든 DB데이터들이보관되는곳 /var/spool/mail 각사용자들의메일이보관되는곳 < 표 9-3 호스트웨이에서제공설치되는 data 파일들의경로와용도 > 앞서서도이야기를했지만여기서나열되는파일들의경로와파일들은평균적이고일반적인경로와파일들이며, 만약설정을다르게했을경우에는그에맞는경로와파일들을백업해야한다. /usr/local/mysql/data 옆에 (var) 라고쓰여진부분은 mysql의데이터가저장되는공간으로주로 data 디렉토리를사용하지만간혹 /usr/local/mysql/var 디렉토리에 data가쌓일수있도록설정된서버를예로들어서옆에다기입해둔것이다. /var/spool/mail은 server내에서 sendmail을이용하여메일서버를구동하고있는관리자들에게만해당되는내용이다. /var/spool/mail 디렉토리밑에각계정사용자들의이름으로된파일안에메일이쌓이게된다. 중요한메일이수신되었는데미처확인하지못했는데지워졌을때를대비하여백업해두는것도좋은백업방법이다. 메일의백업여부는시스템을운영하는관리자의결정에맡긴다. 9.2 어떻게백업을할것인가? 9.1 절에서는백업을할시스템파일들과데이터파일들에대해서알아보았다. 그렇다면어떻게백업을할것인가? 여기에서는크게두가지로나눌수가있다. -61-

62 첫째로는서버내에보조하드디스크를하나더설치하여 ( 또는현재의사용하고있는하드디스크공간이충분히여유가있다면같은하드디스크내에) 디렉토리를생성하고( 가령 backup) 데이터를백업하는방법이고, 둘째방법으로는하드디스크가완전히망가질것을대비하여다른서버나현재서버관리자가사용하고있는개인컴퓨터로의즉, 외부로의백업이다. 외부로의백업은서버내부로하는백업과동일하지만 ftp나 nfs등을이용하여데이터를전송하는것을제외하고는모두동일하므로여기서는서버내부에서하는백업( 로컬백업) 에대해서설명을하고자한다 로컬백업로컬에서의백업은속도가빠르며, cron 을통해서자동적으로원하는시간대에( 주로시스템부하가없는새벽) 백업을받을수있는장점이있는반면에, 서버의하드디스크가문제가발생했을경우자료의백업본과함께원본데이터까지같이유실될수있는위험부담이있다. 하지만원래의하드디스크에하나의독립파티션으로백업공간이나누어져있는경우, 또는추가로백업용하드디스크를부착하여백업을하는경우에는 90-95% 이상은데이터복구가가능하다. 백업을하기위해서는 cp(copy) 명령어를사용해서복사를하는방법도있고, pax, tar 등으로묶어서이동시키는방법이있다. 여기에서는 tar로묶은후에하드디스크의공간절약을위해서 gzip으로압축하여백업을하는벙법을설명하고자한다. 실제로백업을하기전에미리알아두어야하는명령이있다. 바로 tar 명령과 gzip 이다. tar 는파일을묶어주는명령이고 ( 단순히한파일로묶기만한다. 압축은하지않는다), gzip 은파일을압축하는명령이다. 이두명령을조합함으로써여러개로흩어져있는파일들을한데묶어서압축하여이동시킬수있는것이다. 그럼 tar명령과 gzip을간단히알아보자 1) tar 가장많이쓰는옵션만을설명한다.( 나머지자세한파일설명은 manpage 를이용한다.) - 사용방법 tar [xcvf] 파일명 -x 묶음을해제할때사용한다. -c 파일을묶을때사용한다. -v 묶거나파일을풀때과정을보여준다. -f 파일이름을지정한다. -C 파일을풀어놓을경로를지정한다. 예) tar -cvf home.tar /home/* : /home 디렉토리밑의모든파일을home.tar 로묶는다.. tar -xvf home.tar : 현재디렉토리에 home.tar 파일을풀어놓는다.. tar -xvf home.tar -C /home : 홈디렉토리밑에 home.tar 파일을풀어놓는다. -62-

63 2) gzip 리눅스에서파일을압축하고자할때가장많이사용하는명령어이다. 아마확장자가 gz 으로끝나는파일을많이보았을것이다. 그것은 gzip으로압축이되어있다는것을의미하는것이다. - 사용방법 gzip -[d] 파일명 -d : 압축을해제할때사용한다. 예) gzip home.tar : home.tar를압축하여 home.tar.gz 을생성한다.. gzip -d home.tar.gz : home.tar.gz의압축을해제하여 home.tar 를생성한다. 리눅스에서는 tar와 gzip 의명령을조합하여한번의명령으로사용하는것을허용한다. 예) tar -zcvf home.tar.gz /home/* : home디렉토리아래의모든파일을 home.tar.gz으로묶고압축한다. (-z 옵션은 gzip 을의미). tar -zxvf home.tar.gz : home.tar.gz 를현재디렉토리에압축을해제하고묶인것을풀어놓는다. (-z 옵션 : gzip 을의미) gzip과 tar 명령은자주쓰이는명령이므로반드시숙지하여야한다. 다음은특정상황을예로들어서로컬백업을시행하는절차및방법을알아보고자한다. 목표 : /home/ 밑의모든파일을 /backup 이란디렉토리로백업을한다. 이로컬백업을진행하기전에반드시,tar의사용법과쉘프로그램을짤수있도록쉘프로그램 chapter 를숙지한다음보기바란다. < 백업절차 > 1. /backup 이란디렉토리를생성 2. /home/* 홈밑의모든파일을백업한다. 3. 백업이정상적으로되어있는지확인한다. 가장단순한방법 1) cd /home/ 2) tar -zcvf /backup/home.tar.gz * 3) cd /backup 4) ls 5) home.tar.gz -63-

64 위의방법은 tar명령을사용해서 home 디렉토리를통째로묶은후에 /backup/ 디렉토리에보관하는방법이다. 물론이것도좋은방법이기는하지만만약웹호스팅을운영한다고가정했을때 /home 디렉토리안에는무수히많은디렉토리들이존재할것이다. 많은도메인을가상호스팅해줘야하기때문이다. 전체로묶었다가만약한도메인사용자가자기파일의백업본을복구시켜달라고하면압축한파일전체를다시풀어야하는불상사가생긴다. 물론공간과시간이많다면, 지장이없겠지만. 그리효율적인방법은아니다. 또한가장중요한문제로, 압축해놓은파일에문제가생겼다면, 그것은복구하기가어려울뿐만아니라전체압축파일을못쓰게된다. 그래서개선된방법을알아보도록하겠다. 이것은쉘프로그램을이용한방법이다. 쉘프로그래밍을숙지하였다고생각하고기타부가설명은하지않는다. ==================================== #!/bin/sh for backup in $(ls /home) do tar -zcvf /backup/$backup.tar.gz /home/$backup done ===================================== </home/ 디렉토리의디렉토리혹은파일들을따로압축하기> 위의방법은 /home 안의디렉토리혹은파일들을각각의이름으로따로압축하여 backup에저장한다는의미의쉘프로그램이다. 각기따로압축이되어저장이되므로, 훨씬관리가편하며, 압축파일이깨진다고해도그것은일부분의문제이며전체백업에대해서는문제를일으키지않는다. 즉각압축파일마다독립성이보장된다. 위의백업방법도아주유용한방법이기는하나여기다가더첨가를해보도록하자. day by day (1 일마다) 백업을하며, 그백업을 5일동안유지하고백업이되면그백업내용을메일로보내주며, 백업후 5일이지난파일에대해서는디렉토리를삭제하여용량을유지하는방법을알아보도록하겠다. -64-

65 파일명 : backup.sh =================================== #!/bin/sh today=$(date +%m-%d) rmday=$(date +%m-%d --date '5 days ago') mkdir -p /backup/$today cd $today for home in $(ls /home) do tar -zcvf $home.tar.gz /home/$home done echo " <<<< backup info >>>>" > mail.txt echo "" >> mail.txt date >> mail.txt echo "" >> mail.txt echo " <<<< backup size >>>> " >> mail.txt du -sh >> mail.txt echo " ">>mail.txt echo " <<<< backup list >>>> " >> mail.txt ls -alh >> mail.txt echo " ">>mail.txt echo " <<<< used hard space >>>> "" >> mail.txt df -h >> mail.txt echo " ">>mail.txt mail -s " manpage.co.kr backup mail " hkim@hostway.co.kr <./mail.txt ====================================== 위의프로그램은쉘프로그램이실행이되면쉘프로그램이실행된시스템날짜로 /backup/ 디렉토리밑에디렉토리가생성되며백업이다되면, 백업된내용및시스템의하드여유공간을 mail.txt에저장했다가 hkim@hostway.co.kr의메일로전송을하는쉘프로그램이다. -65-

66 위에서 day by day 백업이라고했는데, 날마다직접관리자가실행시켜주는것이아니고, cron에등록을해서시스템에서일일정해진시간마다스크립트를실행시켜자동백업을하도록설정한다. cron 에등록시킨다는것은 /etc/crontab 에백업프로그램을실행할날짜와시간을지정해주는것이지만, cron은이런작업을더욱쉽게할수있도록 cron.hourly( 시간마다), cron.daily( 날마다), cron.weekly( 주마다), cron.monthly( 월마다) 라는디렉토리를제공하며, 프로그램이동작하기원하는주기의디렉토리에실행할프로그램을넣어두면자동으로실행이된다. 여기에서는 day by day 백업이므로 /etc/cron.daily 라는디렉토리안에작성한 backup.sh라는파일을넣어주면된다. 이때 chmod 명령을사용해서루트만읽고쓰고, 실행할수있도록 700 정도의퍼미션을주도록한다. chmod 700 /etc/cron.daily/backup.sh 여기서 cron 이라는것은사용자가규칙적으로 ( 주기적으로) 사용하는명령이나프로그램을예약하여지정된시간에프로그램을구동시켜주는프로그램이다. cron 의설정파일은 /etc/crontab 이며, 일반적으로이파일은수정할필요가없으며, 아래에나열된디렉토리에실행할프로그램을넣어주기만하면동작을한다. /etc/cron.hourly ( 시간미다실행, 동작하게할프로그램을등록한다.) /etc/cron.daily ( 날마다실행, 동작하게할프로그램을등록한다.) /etc/cron.weekly ( 주간마다실행, 동작하게할프로그램을등록한다.) /etc/cron.monthly ( 월마다실행, 동작하게할프로그램을등록한다.) < cron 명령의설명 > 이렇게 cron.daily에등록을해놓으면관리자가날마다해당프로그램을실행시키지않아도 cron에서자동으로실행을시켜준다. (cron.daily는 crontab의세팅을변경하지않았다면새벽 4시 02분에수행된다.) 이렇게함으로써cron 에등록한자동백업까지알아보았다. 물론여기다가몇몇기능을더추가하여더욱강력하고, 편리한백업쉘프로그래밍을제작할수있을것이다. 그것은이글을읽는관리지의몫이고, 여기서는활용할수있는간단한예만을제시해준것이다. 외부백업은글선두에서도언급했듯이백업을해놓은것더욱안전성을기하기위해서나서버에공간이부족하여외부의다른저장공간으로자료를이동시키거나다운로드하는것을말한다. 외부백업은해당서버관리자의관리스타일에맡기기로한다. 여기까지백업 chapter 를마치고, 다음 chapter 에서는보안에대해서알아보도록한다. -66-

67 10. 서버보안 HOSTWAY SYSTEM TEAM. 통계적으로리눅스서버호스팅을사용하고있는사용자의대부분이리눅스의 open source 라는장점보다는단지비용문제로인해서리눅스를선택하게되는사용자가많고, 그로인해서많은관리자들이리눅스에대한경험이없거나있어도기초적인수준만을유지하고있는경우가많다. 이로인해서보안이취약하게되며, 소중한자료들이해커들이나악성코드로인해서유실되고있으며, 침해당한서버가다른서버로의해킹경로로사용되고있어서그문제점이심각하다. 그래서이번 chapter 에서는기본적인서버보안에대해서알아보도록한다 사용하지않는포트( 데몬) 를막자. 리눅스가설치되고나면사용하지않는포트가기본으로열려있는것들이있다. 이런포트들을막아서사용하지않도록하는것도보안의한방법이다. chkconfig 명령으로데몬의실행을막을수도있고, 간단하게 ntsysv라고치면텍스트그래픽모드에서데몬의실행유무를결정할수있다. < 그림 10-1 ntsysv 실행화면 > ntsysv 를실행시키면많은데몬이현재서버에설치되어있음을알수있을것이다. 이중에서서버에서동작시켜야하는데몬을알아보자. -67-

68 데몬이름설명 crond* 관리자가지정한프로그램을특정시간에주기적으로실행시켜주는데몬 ( 백업 chapter에서설명한 day 백업을하기위해서는반드시실행이되어야한다.) imapd imapd 데몬으로 imap 을사용할때는체크해주어야한다. ipop3d mail서버로사용하여사용자가메일을받아가고자할때사용하는데몬으로받는 mailserver 로운영할경우에반드시열어줘야한다. iptables* 서버내에기본적인방화벽을구성할때사용한다. 반드시동작하도록한다. ipchains 커널버전이 2.4대로넘어오면서 iptables가등장하면서잘사용하지않지만기존에 ipchains에익숙한관리자라면 iptables보다 ipchains 을선택한다. 부팅시에새로운하드웨어를검색하여설정을해주는데몬으로데스크탑으로리 kudzu named network* nfs portmap 눅스를데스크탑용으로사용하지않는다면부팅시에시간만빼앗기므로동작시키지않는다. 하드웨어변경이잦은관리자라면체크해둔다. 서버를 DNS 서버로구축하여사용한다면체크를해야한다. DNS서버로사용하지않는다면체크를해제한다. 설정된네트워크인터페이스가부팅시동작을할수있도록하는것으로리눅스를서버로운영하는관리자라면반드시체크 ( 반드시체크!!! ) NFS 서버( 다른서버의하드를자신의서버로마운트하여자신의하드처럼운영) 로운영할때사용할때는체크, 하지만운영하지않을시에는보안상취약하므로체크하지않는다. RPC(Remote Procedure Call) 로서원격연결에사용하는데몬으로 NFS, NIS을사용할때는체크, 하지만사용하지않을때에는보안상체크를해제한다. random* 시스템에필요한난수발생및저장을하는스크립트이다. proftpd sendmail snmpd* proftpd 데몬으로 rpm으로 proftp 가설치시에, proftp-inetd, proftp-standalon 모드를선택할수있다. ( 호스트웨이에서는기본적으로 proftp-inetd 로설정된다.) sendmail을사용하여메일을전송할때사용하는것으로메일서버로사용하지않는다면체크하지않는다. MRTG를사용하여트래픽을측정하기위해서버의트래픽정보를가져올수있도록동작하는데몬, 호스트웨이에서의트래픽측정을위해서반드시열어둔다. sshd* 부팅시 SSH 를동작시켜서버의원격접속을가능하게한다. 반드시체크 syslog* telnet 시스템로그를기록하는데몬으로 /var/log/ 하게한다. 반드시체크 디렉토리밑에시스템의로그를기록 원격접속을위한데몬이지만보안상취약하여 SSH 로대치된다. 관리자의관리재량에의해서체크유무를결정한다.( 사용을권하지않음 ) xinetd* 슈퍼데몬으로 proftpd, pop3d, imapd 등의데몬들을관장한다. 체크한다. < 표10-1 일반적인데몬과그설명> -68-

69 표 10-1 에서데몬이름옆에 * 있는데몬은반드시실행체크해줘야하는데몬이고, 그외기타나머지데몬들은설명에도나와있듯이조건이맞는다면체크를하여사용하면된다. 그외더필요한데몬들은관리자의필요성에따라체크하여사용하면된다. 많은데몬을실행시키게되면많은포트가열리게되므로보안상취약하게되므로꼭서버운영에필요한데몬만을실행시키도록한다 명령어사용제한 리눅스에서사용하는명령어들중에서는 root 사용자뿐만아니라일반사용자들이사용할수있는명 령들중에서시스템정보를볼수있는명령어들이있다. 이들명령어들은일반사용자들도시스템의 상황을볼수있어서도움을주기도하지만, 간혹나쁜의도의사용자들에의해서시스템의취약점을 노출하는경로로도사용된다. 그래서이런명령어들을 root 만이사용가능하도록, 일반사용자들은사용하지못하도록권한을수정 하는것이좋다. 여기서는 root 및일반관리계정인 zmnkh 계정에게그사용권한을부여하고나머지사용자들은사용 하지못하도록설정을하는방법및설정할명령어들에대해서알아보도록한다. 1) zmnkh 사용자에게명령을사용할수있는권한부여 < 그림 10-2 /etc/group 의 wheel그룹에 zmnkh 를추가한그림 > 그림 10-2처럼함으로써 zmnkh는 root와같은그룹인 wheel 에속하게된다. -69-

70 < 그림10-3 zmnkh 이속한그룹확인> 그림 10-3 처럼 id" 명령으로 wheel 그룹에속했는지확인한다. -70-

71 2) 명령어사용제한 HOSTWAY SYSTEM TEAM. #!/bin/bash chgrp wheel /usr/bin/finger chgrp wheel /usr/bin/nslookup chgrp wheel /usr/bin/gcc chgrp wheel /usr/bin/suidperl chgrp wheel /usr/bin/whereis chgrp wheel /usr/bin/cc chgrp wheel /usr/bin/c++ chgrp wheel /usr/bin/make chgrp wheel /usr/bin/pstree chgrp wheel /usr/bin/rlog chgrp wheel /usr/bin/rlogin chgrp wheel /usr/bin/which chgrp wheel /usr/bin/who chgrp wheel /usr/bin/w chgrp wheel /bin/mail chgrp wheel /usr/sbin/sendmail chgrp wheel /usr/lib/sendmail chgrp wheel /usr/bin/top chgrp wheel /usr/bin/free chgrp wheel /usr/bin/last chgrp wheel /usr/bin/lynx chgrp wheel /usr/bin/wget chgrp wheel /etc/hosts chgrp wheel /bin/ps chgrp wheel /etc/hosts.deny chgrp wheel /etc/hosts.allow chgrp wheel /etc/named.conf chgrp wheel /bin/df chgrp wheel /bin/grep chgrp wheel /bin/egrep chgrp wheel /bin/ping chgrp wheel /bin/netstat chgrp wheel /usr/bin/ftp chgrp wheel /usr/bin/ncftp chgrp wheel /usr/bin/suidperl chgrp wheel /usr/bin/whereis chgrp wheel /usr/bin/rz chgrp wheel /usr/bin/sz -71-

72 chmod 750 /usr/bin/finger chmod 750 /usr/bin/nslookup chmod 750 /usr/bin/gcc chmod 750 /usr/bin/suidperl chmod 750 /usr/bin/whereis chmod 750 /usr/bin/cc chmod 750 /usr/bin/c++ chmod 750 /usr/bin/make chmod 750 /usr/bin/pstree chmod 750 /usr/bin/rlog chmod 750 /usr/bin/rlogin chmod 750 /usr/bin/which chmod 750 /usr/bin/who chmod 750 /usr/bin/w chmod 750 /bin/mail chmod 750 /usr/sbin/sendmail chmod 750 /usr/lib/sendmail chmod 750 /usr/bin/top chmod 750 /usr/bin/free chmod 750 /usr/bin/last chmod 750 /usr/bin/lynx chmod 750 /usr/bin/wget chmod 750 /etc/hosts chmod 750 /bin/ps chmod 750 /etc/hosts.deny chmod 750 /etc/hosts.allow chmod 640 /etc/named.conf chmod 750 /bin/df chmod 750 /bin/grep chmod 750 /bin/egrep chmod 750 /bin/ping chmod 750 /bin/netstat chmod 750 /usr/bin/ftp chmod 750 /usr/bin/ncftp chmod 750 /usr/bin/suidperl chmod 750 /usr/bin/whereis chmod 750 /usr/bin/rz chmod 750 /usr/bin/sz < 표 10-2 퍼미션을변경할명령어들과명령어들의그룹변경 > -72-

73 < 표 10-2> 처럼함으로인해서일반사용자들은해당명령어들을사용할수가없으며, root와 zmnkh 사용자만이 < 표 10-2> 에나열된명령어들을사용할수있게된다. < 그림 10-4 퍼미션제한이걸린파일실행 > 그림 10-4는표 10-2에서설정한 ps명령을 ls로확인하고 wheel그룹에속하지않은사용자와 wheel그룹에속한 zmnkh사용자의 ps 명령실행결과를보여주는그림이다. manpage 유저가 ps 명령을사용했을때에는명령어사용이거부되었지만, 관리자로지정한 zmnkh가명령어를사용했을때에는명령어의사용할수가있다. 이처럼사용할수있는명령어의제한을둠으로써서버의보안을좀더강화시킬수가있다. Ps. 웹호스팅서버를운영하는관리자라면위의명령어를모두제한하면안된다. 물론제한을해도상관은없겠지만서버에접속하는사용자의불편함을초래할수가있으므로관리자의재량에따라명령어의권한을조정한다. 하지만서버에직접들어와서작업하는사용자들은그리많지않다. 3) 불필요한계정사용자삭제 리눅스서버를초기세팅해놓으면시스템운영에필요없는계정들이 default 로생성되게된다. 이들계정은해커들에의해서사용될수있으므로서버관리에필요없는계정들은삭제한다. -73-

74 # 삭제할계정들은다음과같다. ( 구축된시스템마다약간의차이가있을수있다.) userdel adm userdel lp userdel shutdown userdel halt userdel news userdel uucp userdel operator userdel game userdel gopher userdel ftp userdel rpm userdel xfs (x-windows 를사용한다면지우지않는다.) userdel postgres groupdel adm groupdel lp groupdel games groupdel gopher groupdel ftp groupdel dip groupdel rpm groupdel xfs (x-windows 를사용한다면지우지않는다.) groupdel postgres 서버에 rcp 등으로되어있는계정이존재한다면, nfs나원격접속을사용하지않는다면 rcp관련계정도삭제한다. 그리고삭제하지않고, 사용하지않는계정들은 /etc/passwd를 vi로 open 한뒤에쉘(/bin/bash) 등으로지정된부분을 /bin/false로변경하여그계정으로는서버에접속을하지못하도록설정을변경해놓는다. 4). 파일변경제한 /etc 디렉토리안의설정파일들은시스템의정보를담고있기때문에노출되었을때시스템의정보를고스란히파일열람자에게알려주게된다. 이런파일들을일반사용자들이읽을수있는권한을제한하고변경할수있는권한을제한함으로써보안을강화시킬수가있다. 여기서는파일에퍼미션을변경하는방법과파일을변경시킬수없도록속성을설정하는부분을간단히알아보도록하겠다. -74-

75 # 파일퍼미션변경 위의리눅스명령퍼미션변경을참고하여설정을변경할수있다. 우선시스템정보를가지고있는파일을선별해야한다. ( 기본적으로 hosts, hosts.allow, hosts.deny, passwd, shadow, sysctl.conf, lilo.conf, group, service 파일등을시스템정보를가지고있는파일들이라할수있겠다.) chmod 640 hosts.allow chgrp wheel hosts.allow 명령으로 root 는읽고쓰기가가능하며, 관리자그룹인 wheel 은읽기만가능하도록설정해놓았다. 일반사용자들은이파일을읽을수없다. # 파일을변경시킬수없도록속성설정 chattr +i /etc/hosts.allow ( 설정) chattr -i /etc/hosts.allow ( 해제) 이렇게함으로써 hosts.allow 파일은 root이외에는설정된내용을수정하지못하도록속성을변경하였다. 혹시나 hosts.allow를수정할수있는권한을가진유저라도 chattr -i /etc/hosts.allow를하기전까지는 hosts.allow 의내용을변경할수가없다. 물론 root 권한을획득하고, chattr -i 명령어까지알게된다면어쩔도리가없지만, 해커가루트권한을취득하기전까지는충분히안전할수있다. 여기까지는보안에서도서버사용자에대한내부보안에대해서알아보았다. 이제다음장에서알아볼보안방법은서버의외부에대한보안설정이다. 서버외부의설정은서버내부의설정보다훨씬까다로우며설정을잘못하면시스템이정상적으로운영이되지않거나서비스가제대로되지않는경우가발생할수있으므로충분히읽어보고이해를한후에외부보안설정을적용하도록한다 tcpwrapper로서버ip제한 tcpwrapper는말그대도 tcp 접속에대한보호, 방어수단이다. tcpwrapper 가설치가되어있다면 ( 호스트웨이에서는기본설치) hosts.allow, hosts.deny로서버에서제공하는서비스별로허용하는 IP 를제한할수가있다. 서비스별로접속할수있는 IP를제한한다는것은불특정다수에대한공격에서벗어날수있는방법이기때문에보안상아주유리하다. 이번장에서는겠다. hosts.allow, hosts.deny를설정하여서버보안을하는방법에대해서알아보도록하 -75-

76 hosts.allow는 tcp 접속을허용하는설정을하는부분이고, hosts.deny는 tcp 접속을차단하고자하 는설정이다. 먼저기본적으로알아두어야할것은 hosts.allow, hosts.deny에서 ssh나 telnet을차단하는설정부분 을잘못하면관리자역시접속하지못하는경우를만나게되므로반드시관리자의접속 IP는개방을 시켜둔후에설정을저장하도록한다. #hosts.allow 설정 cat /etc/hosts.allow ==================================== in.telnetd: /120 sshd: ALL ( 유동아이피의경우를대비해서모두접속이가능하게해둔다) in.ftpd: ALL ipop3d: ALL ==================================== 위의 hosts.allow 설정은만약 telnet을사용하게될때에는지정된아이피로만접속이가능하게하고,ssh,ftp,pop 접속은모두허용을한설정이다. # hosts.deny 설정 cat /etc/hosts.deny =================================== ALL: ALL : ( echo -e " n Process : t %d (pid %p) n User : t %u n Host : t %c n Date : t $(date) n " mail -s " 경고! 불법접속 hkim@hostway.co.kr )& ALL: =================================== 위의 hosts.deny 설정은 hosts.allow에서허용한서버스이외의모든 tcp 접속과 IP 에대해서는차단하고접속시도가있을시에탐지하여접속정보를메일로전송하라는설정이다. 위의설정대로하게된다면서버는상당히고립된상태가되며, 수많은메일이관리자에게전송이되어질것이다. 경고메일을많이받는것도경고에대해서둔감해질수있는지름길이므로관리자는전체서비스에대해서차단을하는것보다는아래처럼특정데몬에대해서차단을하는방법을택해야할것이다. ALL: in.telnetd : ( echo -e " n 이하동일 ) & ALL: sshd : (echo -e " n 이하동일 ) & -76-

77 hosts.deny 에서사용할수있는있도록지정된변수는표와같다. HOSTWAY SYSTEM TEAM. 변수설명 %a address ( clinet의ip 주소값을가지고있다. ) %A address ( server의 IP 주소값을가지고있다. ) %c client info ( username 을알수있으면, username@hostname 의값을가지고있으나알수없을때에는hostname 이나IP 주소값을가지게된다. ) %d deamon name ( clinet 가접속할때호출한데몬의이름을가지고있다. ) %h %H hostname ( client의hostname 값을가지고있으나hostname을알수가없을때에는 IP 주소값을가진다 ) hostmane ( server의 hostname 값을가지고있으나, hostnam을알수가없을때에는 IP 주소값을가진다. ) %p 데몬의프로세서값을가진다. %s 서버의정보를가지고있다 (daemon@host 형태 ) %u client의 user name 값이나 unknown 값을가지고있다. %% % 문자를표현한다. < 표10-2 hosts.deny 에서사용할수있도록지정된변수들> 지금까지다음은이번보안의가장핵심이되는 tcpwrapper 에의한서버보안을알아보았다. IPTABLES 을이용한보안에대해서알아보도록하겠다 IPTABLES를이용한보안본문서의순서대로해서 IPTABLES 까지왔다면기본보안은모두마치고서버에기본적으로설치되어있는프로그램을이용하여할수있는보안의중급정도의보안수준까지끌어올렸다고할수가있겠다. 리눅스보안과완벽솔루션 이란책에서는 iptables 을다음과같이소개하고있다. iptables는리눅스에서는처음으로상태추적기겁이도입된방화벽인데상태추적방화벽이란이전의리눅스기반의방화벽에서는탐지가불가능했던스텔스스캔을탐지및차단하는등상당한기술적진보를이룬지능형방화벽을뜻한다. 또한 iptables는방화벽을통과하는각각의연결을메모리에저장하므로레이팅제한(ratiing limiting) 을이용하여대부분의서비스거부공격도차단할수있다. 이번장에서는유용하면서도무료로제공되고있는 iptables 에대해서알아보자. -77-

78 사용명령어 HOSTWAY SYSTEM TEAM. 체인제어명령사용법 iptables [-NXPLFZ] [chain 명] IPTABLES 옵션설명 -N 새로운 chain 생성 ( --new-chain ) -P 체인의정책변경 (--policy) -L 체인에적용된정책리스트출력 (--list) -F 체인에적용된정책지우기 ( --flush) -X 비어있는체인제거 ( --delete-chain ) -E 체인의이름을변경 ( --rename-chain ) -Z 체인내의패킷과바이트의카운트를 0 으로리셋 ( --zero ) -A 체인에새로운필터링규칙을추가하기 ( --append ) -I 체인의특정지점에필터링규칙삽입 (--Insert) -R 체인의특정지점의필터링규칙을교환 ( --replace ) -D 체인의특정지점의필터링규칙을제거 ( --delete ) 파라미터 IPTABLES 파라미터설명 -p ( --protocol ) -s ( --source ) 프로토콜을지정 tcp, udp, icmp or all( 모든프로토콜) 을지정!(not) 를통해서역의결과를만들수도있다. -p tcp (tcp 프로토콜을사용하는) -p! tcp ( tcp 프로토콜을사용하지않는) 패킷을발생시키는발생지!(not) 을통해서역의결과도출가능 -s ( 을패킷발생지로하는) -s! ( 패킷발생지를 으로하는것을제외하고 ) --sport ( --source-port ) 패킷을발생시킨발생지에서접속해온포트! --sport 21 ( 21 번포트에서발생한패킷 ) 사용가능 -d ( --destination ) 패킷이도착하는지점. 사용법은 souece와동일 -78-

79 --dport ( --destination-port ) -j ( --jump ) -i ( --in-interface ) 패킷의도착지포트, 사용법은 sport와동일포트가연속적으로여러개일경우 - 로표현할수있다 ( , 21, 22 를의미) 필터링규칙에의해적용되는패킷을 target 으로보낸다. 패킷이들어올때경로가되는인터페이스를지정.!(not) 사용가능 interface = lo ( localhost ), eth0 ( 랜카드한개일경우), -i eth0 ( 설정된랜카드를통해서들어오는) -o ( --out-interface ) 패킷이나갈때경로가되는인터페이스를지정 -o eth0 ( 랜카드로나가는패킷을지정 ) -o! eth0 ( 랜카드로나가는패킷을제외하고)! 사용가능 -f ( --fragment ) -c ( --set-counters ) 패킷이한번에전달되지못할만큼크기가클때패킷을여러개로나누어서 ( 분절) 여러개의패킷으로전달할때사용. 이들패킷은목적지에도착해서재구성되어전체패킷이된다.!(not) 가능 INSERT(-I), APPEND(-A), REPLACE(-R) 명령을사용하는동안규칙의패킷과바이트의카운터를초기화시킨다. 참고그외기타옵션으로-m (match) 를사용해서확장시킬수있는옵션이있으나, 그것은개인적으로알아보기바라며여기에서는설명하지않는다. < 사용법 > iptables -[ADC] chain rule-specification [options] iptables -[RI] chain rulenum rule-specification [options] iptables -D chain rulenum [options] iptables -[LFZ] [chain] [options] iptables -[NX] chain iptables -P chain target [options] iptables -E old-chain-name new-chain-name # chain - INPUT, OUTPUT, FORWARD or 직접생성한 chains # rulenum - 규칙이생성된순서 ( 순서대로 1,2... ) # rule-specification - 파라미터를사용하여만들어진규칙 ( 필터링규칙) # target - ACCEPT, DROP, QUEUE, RETURN -79-

80 이제기본적인것은모두알아보았고, 을익혀보도록하자. 실제필터링적용을통한예제로서앞에서배운명령과옵션 < 적용하고자하는방화벽예 > 기본정책을 DROP 으로선택한다. 새로운체인을생성하여들어오는패킷에대한필터링체인으로사용한다. 로컬에서발생하는패킷은모두허용한다. 웹서비스를하는 80 번포트는모든사람이접속할수있도록허용한다. ftp와 ssh는 에서만접속할수있도록한다. snmp 사용을위해서 snmp udp(161) 포트를 mrtg 서버에서만접속할수있도록허용한다. 허용된 ip에서만 에서만서버로 ping 이가능하도록설정한다. 서버에서는모든곳으로 ping 이되도록허용한다. domain resolve를위해서 dns(53) 포트를모두에게허용한다. mysql 을모두에게허용한다. Foward 는하지않는다. 클래스별비공인아이피가외부에서접속되는것과외부로나가는것을막는다. 허용하지않은모든 tcp, udp, icmp 의입/ 출입을막는다. # 서버의 IP : # MRTG server IP : # 원격접속하는 IP : < 방화벽규칙에따른필터링적용예 > iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FOWARD DROP iptables -N NEWINPUT iptables -F iptables -A NEWINPUT -i lo -j ACCEPT iptables -A NEWINPUT -i eth0 -p tcp -s 0/0 -d 0/0 --dport 80 -j ACCEPT iptables -A NEWINPUT -i eth0 -p tcp -s d dport j ACCEPT iptables -A NEWINPUT -i eth0 -p udp -s dport 161 -j ACCEPT iptables -A NEWINPUT -i eth0 -p tcp -s 0/0 -d 0/0 --dport j ACCEPT iptables -A NEWINPUT -i eth0 -p udp -s 0/0 -d 0/0 --dport 53 -j ACCEPT iptables -A NEWINPUT -i eth0 -p icmp -s icmp-type echo-request -d j ACCEPT -80-

81 iptables -A NEWINPUT -i eth0 -s /8 -j DROP iptables -A NEWINPUT -i eth0 -s /8 -j DROP iptables -A NEWINPUT -i eth0 -s /16 -j DROP iptables -A NEWINPUT -i eth0 -s /24 -j DROP iptables -A NEWINPUT -i eth0 -s /3 -j DROP iptables -A NEWINPUT -i eth0 -p tcp -j DROP iptables -A NEWINPU -i eth0 -p udp -j DROP iptables -A NEWINPUT -i eth0 -p icmp -j DROP iptables -A INPUT -i eth0 -p all -s 0/0 -j NEWINPUT iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp! --syn -s 0/0 -d 0/0 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -s d j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -s 0/0 -d 0/ j ACCEPT iptables -A OUTPUT -o eth0 -p udp -s 0/0 -d 0/0 --dport 53 -j ACCEPT iptables -A OUTPUT -o eth0 -p icmp -s icmp-type echo-request -d 0/0 -j ACCEPT iptables -A OUTPUT -o eth0 -s /8 -j DROP iptables -A OUTPUT -o eth0 -s /8 -j DROP iptables -A OUTPUT -o eth0 -s /16 -j DROP iptables -A OUTPUT -o eth0 -s /24 -j DROP iptables -A OUTPUT -o eth0 -s /3 -j DROP iptables -A OUTPUT -o eth0 -p tcp -j DROP iptables -A OUTPUT -o eth0 -p udp -j DROP iptables -A OUTPUT -o eth0 -p icmp -j DROP < 방화벽규칙에따른설정예> 위의규칙대로설정하면지정된 IP ( ) 를제외하고는외부에서는 WebService이외에는아무것도허용되지않으므로보안상으로는좋지만, 서버가고립되게된다. 위의설정은 iptables의설정방식과파라미터의사용법을알고자예제로만들어놓은것이므로관리자는 iptables 의명령과파라미터를이용각자의서버에알맞은정책을설정하면된다. 단순한명령과동일한파라미터가반복되는방식이므로쉽게사용할수있을것이다. iptables 에대한자세한사용설명서는서버에서 man iptables 하면볼수있다. -81-

82 11. 보안도구 HOSTWAY SYSTEM TEAM. 지금까지알아본것은서버내부에서제공하는프로그램을이용한보안이었다. 물론내부의프로그램만으로도보안이되지만 ( 설정이정상적으로되어있을경우) 이에더하여외부 보안프로그램을사용함으로써보안을더욱강화시킬수있다. 보안도구에는많은프로그램이있지만여기서는강력한포트스캔방지프로그램 portsentry와포트 검사프로그램인 nmap, 포트검사및동작하고있는프로세서들을살펴볼수있는 lsof에대해서알아 보도록한다 portsentry portsentry는 tcpwrapper와연계하여포트스캔이감지되면포트스캔을실시한 IP를 hosts.deny에등록하여서버에접속하지못하도록실시간으로방어하는프로그램이다. portsentry 는실시간방어를구현하는아주우수한스캐너이지만, 보통해킹을하고자대상서버의열린포트를스캔하는해커들은자신의 IP가아닌 spoofing 된거짓아이피를사용하기때문에로그에기록된거부된 IP들을해킹을하려는서버로의심하여역공격을하게되면선의의피해자가생길수도있다는것을명심해야한다. < 설치방법및사용방법 > - 설치 1. portsentry-1.1.tar.gz을다운받는다. 2. 서버의적당한위치에업로드 ( /usr/local/src 정도에파일업로드 ) 3. tar -zxvf portsentry-1.1.tar.gz 4. 압축이해제되면 portsentry-1.1 이생성된다. 5. cd portsentry-1.1로이동 6../make linux 7./make install 로서설치를끝마친다. - 사용방법설치가완료되면, /usr/local/psionic/portsentry 란디렉토리가생성된다. cd /usr/local/psionic/portsentry로이동한다. 이동한뒤에 ls 명령으로파일을보게되면 portsentry 실행파일 portsentry.conf 설정파일 portsentry.ignore 스캔을해도로그에남지않는 IP를적어줄파일 이세가지파일이존재할것이다. portsentry.conf에는 portsentry 의각종설정들을편집할수있지만, default 로사용해도무방하다. -82-

83 portsentry.ignore 에는로컬호스트는반드시들어가있어야하며, 기타자신이자주사용하는 IP등을지정해놓아야혹시테스트로스캔을했을경우접속이차단되지않는다. 실행 : /usr/local/psionic/portsentry/ 디렉토리에있다고가정 portsentry를실행하는모드에는크게 3 가지모드가있다. Class mode ( 백그라운드에있는모든 tcp, udp 포트들을모니터링한다. stealth scan은탐지못함 )./portsentry -tcp./portsentry -udp Stealth mode ( 모든 tcp, udp를모니터링하는것은 Classic과같지만 stealth scan 을탐지한다.)./portsentry -stcp./portsentry -sudp Advanced mode ( portsentry.conf에서옵션으로지정된포트들은제외하고나머지포트들에영에내에서임의대로모니터링을실시하며, 모든실행옵션중에서가장민감하고빠른반응속도로포트스캔탐지하지만민감한만큼부정확한정보전달의가능성이있다../portsentry -atcp./portsentry -audp 위의모드들은동시에여러모드가동시에사용될수없으며, 반드시한가지모드만동작을시켜야한다. 일반적으로는 portsentry -stcp, portsentry -sudp 옵션을많이사용하고있다. < 동작확인 > 위의세가지동작중./portsentry -stcp -stcp, -sudp로동작시켰을때 ps -aef grep portsentry 명령을내렸을때./portsentry -sudp 라인이있으면정상적으로동작하고있는것이다. 만약위와같은파일이존재하지않는다면, 실행이잘못되어진것이므로, 다시한번실행방법을읽 어본후에실행을시켜본다. < 스캔탐지로그 > portsentry를동작시켜놓았을때외부에서스캔공격이들어오면 portsentry.blocked.stcp portsentry.blocked.sudp portsentry.history 세가지의파일이생성된다. 각로그파일의역할과특성을알아보도록한다. -83-

84 postsentry 로그파일설명 HOSTWAY SYSTEM TEAM. portsenty.blocked.stcp portsentry.blocked.sudp portsentry.history tcp 측으로스캔이탐지되었을때로그가기록된다. ( 휘발성이다. portsentry 를재시작하면기록이삭제된다.) udp 측으로스캔이탐지되어있을로그가기록된다. ( 휘발성이다. portsentry 를재시작하면기록이삭제된다.) tcp,udp 의모든로그기록이종합되어남는다. 비휘발성으로 portsentry를재시작해도로그값이그대로남아있게된다. 로그는누적되어기록된다. < 표 11-1 portsentry 의로그파일들 > portsentry에의해서로그에기록된 IP 는 /etc/hosts.deny에보면모든서비스가차단되는 ALL에등 록되어있을것이다. (ex : ALL: 211.xxx.xxx.xxx ) 관리자는 history 로그를잘살펴보아스캔공격이얼마나이루어지고있는지파악해야하며, 스캔공격이많이이루어지고있을때에는서버에쓸데없이열린포트는없는지, 취약한패키지프로그램은없는지항상관심을가져야한다 nmap portsentry 가포트스캔을방지하는것이라는것을알았다. 하지만이번에알아볼프로그램은아이러니하게도포트를스캔하는프로그램이다. 보안도구는해킹도구 란말이있다. 보안도구를다른목적으로사용하면해킹도구가되는것이다. 또그와반대로해킹도구를다른목적으로사용하면보안을강화하는도구로사용될수도있는것이다. 강도가칼을들면흉기고, 의사가칼을들면메스이듯이.. 좋은의미로 nmap 은시스템의취약점이나포트정보를얻기위한목적으로사용되는프로그램이다. nmap은예전에는추가로설치해야하는프로그램이었으나최근에는패키지로같이포함되어서나오고있다. 최신버전은 nmap 버전까지나와있다 ( 소스와 rpm 모두존재하므로편한대로받아서업그레이드및새로설치를하면된다. ) 여기에서는 rpm 으로설치하는법을알아본다. < 설치방법 > rpm -Uvh namp i386.rpm < 사용방법 > 일반적인스캔방법은 nmap IP ( 스캔하고자하는상대방의 IP) -84-

85 예) 로컬호스트를스캔할때 nmap localhost HOSTWAY SYSTEM TEAM. < 그림 11-1 localhost 를스캔한모습 > 웹서버로운영되는서버이기때문에웹에관련된서비스포트가열려있는것을확인할수가있다. nmap 은포트스캔을통해서열려있는포트정보를알아볼수만있을뿐만아니라. 커널버전 (OS의종류), 서버가꺼지지않고동작된시간, 정보를알아내기까지걸린시간등도알아낼수있다. 스캔의가장기본이되는명령을사용하여시스템의정보를확인해보자. -85-

86 < 그림11-2 OS 및uptime 시간, 열린포트확인> 위의그림에서얻을수있는정보는열린포트목록, OS 종류, 커널버전, 서버가다운되지않고가동된시간 ( 3월 26일 17시 33분 29 초이래로서버가계속동작되고있음을알려준다 ) nmap 에는많은옵션들이있다. 그중에서대표적으로사용하는옵션들을알아보도록하겠다. -86-

87 옵션설명 st su ss sr sf, sx, sn 열려있는 TCP 포트를체크하기위해서사용된다. 가장일반적이며, 쉽게체크되고필터링된다. 열려있는 UDP 포트를체크한다. ( 정확히말하면 UDP의닫혀있는포트를검색하는것임)-sU만 UDP를체크할수있고나머지옵션들은 TCP 만체크한다. tcp에 syn( 연결을요청하는패킷) 패킷을보내고응답이있는포트는열린포트로감지하는방식으로 root 권한이있어야실행할수있다. rcp scan ( 서버내에서 rcp를사용하여열린포트를검색하고 rcp 사용프로그램 을같이출력한다.) stealth 기능으로로그에기록되지않는스캔방식이다. portsentry의 stealth 스캔탐지기능으로체크가가능하다. sp ping 을이용하여스캔하는방식 ( 호스트가살아있는지여부만판단) PI O icmp ping을이용한스캔방식 os를판별하기위한옵션 p 포트의범위를지정한다. ( -p => 1번부터 100 까지포트를검색한다. ) F /etc/service 에등록되어있는포트만을스캔한다. (fast scanmode) 이외에도많은옵션들이있지만, 잘사용하지않는옵션들이고, 악용할소지가충분히있는옵션들이기때문에여기서는설명하지않고관리자의판단에맡긴다. 그외 nmap을더자세히알고싶은관리자들은서버에서 man nmap 명령을입력하면자세한 nmap 의설명이나오며, 인터넷을통한검색에서도여기에서설명한것보다자세하고많은옵션에대한정보를알아볼수있을것이다. 최근보안에대한관심이높아지면서스캔을해킹을위한사전작업으로인식하고있으므로무모한다른서버의스캔으로인해서관리자자신이고소를당한다던지역해킹을당한다던지하는등의피해를입을수있음으로스캔프로그램사용에주의해야하며, nmap 프로그램은자신이관리하는서버들에대해서정보를파악하고불법포트가오픈되지않았나하는등의보안용으로만사용하기바란다 losf 보안도구의마지막으로 lsof 에대해서알아보기로하겠다. lsof 는현재실행되고있는프로세서와열린포트. 그리고그포트가참조하는파일등을알수있는프로그램이다. 이상한프로세서가실행중이거나수상한포트가열려있을때, 그포트가어떤프로그램을참조하고어떤프로세서에의해서열려있는지확인이가능하다. < 설치방법 > 소스,rpm 이있으며, 여기서는소스로설치하는법을알아본다. ( 서버에는기본적으로 rpm -Uvh lsof i386.rpm 가설치되어있다. ) -87-

88 tar -zxvf lsof_4.64.orig.tar.gz cd lsof_4.64_src./configure linux 이때 Inventory Mode 를실행할것인지물어본다. Inventory Mode는패키지의이상유무를판단하 는것으로서테스트한다. 후에 Customization에대해서도물어보지만모두디폴트값으로사용해도 무방하다. (./Configure linux 한이후에나오는질문에모두 enter 만입력하면된다) make make install 여기까지이상없이되었다면모든설치가완료가된것이다. 사용을편리하게하기위해서생성된 lsof 명령을 PATH 가걸려있는디렉토리로복사한다. path 가걸려있는디렉토리의확인은쉘스크립트할때알아보았다. (echo $PATH) < 사용법 > 설치가완료되었다면이제는사용법에대해서알아보자 lsof < 옵션> -88-

89 < 그림 11-5 lsof 의출력 > 그림 11-5는옵션없이 lsof 를사용한그림이다. 서버에서동작하고있는모든프로세서열린파일들이출력되므로 more 명령어를사용해서한화면씩나누어본것이다. lsof 의주요옵션을알아본후에그옵션들을이용하여, 의심스러운포트와그포트를사용하는프로그램이무엇인지알아보도록하겠다. -89-

90 옵션설명 -t 현재동작되고있는프로세서의 PID 를출력한다. -p [pid] 해당 pid 가참조하고있는프로그램과파일들과라이브러리가출력된다. -i[:port] 현재열려있는소켓들에대해서출력한다.-i[:port] 특정포트에대해출력 도메인> 으로도가능. 대신도메인은 resolve되어서 IP 로변환이가능해야한다. -T 현재열려있는소켓들중에서 TCP에대한것만을출력 -U 현재열려있는소켓들중에서 UDP에대한것만을출력 -l 로그인계정대신에UID로표시 -n 호스트네임대신에 IP로서출력 -r [ 초] losf의명령을 -r 다음에지정한시간을주기로반복실행한다. -v lsof 에대한정보를출력한다. -u<user> 특정사용자에의해서실행되고있는프로그램과참조하고있는파일을출력한다. -u<uid> 를사용해도같은결과를얻는다. -c< 데몬> 특정데몬들이참조하고있는파일들을출력한다. 그외다른옵션들은 lsof -h 를통해서확인할수있다. 예제) 80포트는웹페이지를띄울수있도록 httpd 데몬이사용하는포트이다. 이미알고있는이포트를예로들어서사용중인프로세서와그프로그램이참조하는파일들을알아본다. 또한그프로그램을실행한유저에대해서도알아본다. < 그림 11-6 lsof 를사용하여특정포트확인 > -90-

91 < 그림11-7 lsof 를사용하여참조하고있는파일확인> 그림 11-7 은 lsof -p 687 명령으로그림 11-6에서확인된결과를참고로알아낸 PID를추적하여해당PID 가사용하고참조하고있는프로세서및파일들을확인한결과이다. 종합하면, 80번포트를사용하는것은 httpd 라는데몬이고, 여러데몬중에서 PID 687을추적하였더 니 /usr/local/apache/logs/error_log 등등의파일을참조하고있음을확인하였다. lsof 는매우유용한프로그램이므로, 위에있는옵션들만이라도반드시숙지하여두기바란다. 이번장에서는보안에대해서알아보았다. 보안을단지몇장의페이지로설명을할수는없지만기본적으로알아두어야하는것들을정리해둔것이므로꼭숙지하기를바라며, 이번장에서설명되었던프로그램들을실제로꼭사용해보기바란다. 그리고반드시명심해두어야할것은아무리보안이철저하더라고해도보안에취약한패키지를사용한다거나취약한프로그램을사용하게되면, 보안설정과는무관하게시스템의보안이뚫리는경우가많다. certcc.or.kr 등을통해서취약한패키지나해킹동향을항상주의깊에살펴보아야하며, root 패스워드를주기적으로바꾸어주고시스템사용자들이사전식패스워드나, 짧고쉬운패스워드를사용하지않도록주의를주어야한다. 한순간의방심이소중한데이터를한번에날려버릴수도있다는것을깨닫고, 보안과백업을병행하여, 안전하고, 신뢰성있는서버를운영할수있는관리자가되어야할것이다. -91-

92 12. 설치 HOSTWAY SYSTEM TEAM. 이곳에서는 apache, mysql, php 등의설치와서버에필요한프로그램들의설치하는방법을살펴본다. ( 기본 APM의설치 - 설치순서는 mysql apache php apache ZendOptimizer 순으로 한다. static 설치) 참고 : 설치를하기위한파일들이존재하는경로는 /usr/local/src 로하기로한다 mysql mysql tar.gz을 참고사항을보기바람) tar -zxvf mysql tar.gz 으로압축을해제한다. 압축이해제되면 mysql 이란디렉토리가생성되어져있을것이다. cd mysql 으로이동한다. CFLAGS="-march=i686 -funroll-loops -fomit-frame-pointer"./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/usr/local/mysql/data 위의명령으로 configure 를실행한다. 단위의옵션은 i686에서최적화시키기위한옵션이므로 uname -a 명령으로자신의머신버전을확인한후에설정하도록한다. ( 최근에나온대부분의서버는 i686 이다.) < 그림 12-1 uname 으로머신확인 > configure 가에러없이정상적으로완료되었다면, make make install 명령으로 mysql 을컴파일한다. 이상없이컴파일되었다면 scripts/mysql_install_db를실행한다.( 한번만실행해야한다.) 이것을실행시키면 database 가생성이된다. 여기까지되었다면이제는 groupadd mysql /usr/local/mysql 이생성되었을것이다. mysql 을실행시킬사용자를생성한다. mysql이란그룹을생성하고 -92-

93 useradd -g mysql -s /bin/false mysql 쉘에접속할수없는 mysql 유저를생성한다. 보안상필요 다음 mysql 디렉토리및 data가보관되는 data 디렉토리의권한을설정한다. (mysql의 data디렉토리는반드시 mysql 이소유권자이어야한다.) chown -R root /usr/local/mysql chown -R /usr/local/mysql/bin chgrp -R mysql /usr/local/mysql chown -R mysql. /usr/local/mysql/data (data의소유와그룹권한을 mysql 로변경한다) /usr/local/mysql/bin/safe_mysqld --user=mysql --language=korean & 다음위와같은명령으로 mysql 을실행시키면설정이끝나게된다. < 그림 12-1 mysql 동작확인 > < 참고!!> mysql에는 test라는 database가생성되는데필요가없는 database 이므로삭제한다. /usr/local/mysql/bin/mysqladmin -u root -f DROP test 삭제후 mysql 을갱신해준다. /usr/local/mysql/bin/mysqladmin -u root reload php static으로설치를하면 DSO보다속도가빠르므로 static 으로설치를한다. ( 하지만호스트웨이에서는확장성을위해서아파치를 DSO 로설치를하고, php는 static으로설치를 한다.) php를 static으로설치를하기위해서미리apache를 configure 를해준다. (configure 만한다.) apache tar.gz을 서버에다운받은압축파일을올려놓고압축을해제한다. tar -zxvf apache_ tar.gz 압축을해제하면 apache_ 이란디렉토리가생성될것이다. cd apache_1.3.27로이동하여 -93-

94 CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer"./configure --prefix=/usr/local/apache HOSTWAY SYSTEM TEAM. 위의명령으로 configure 한다. apache configure 가정상적으로되면. php tar.gz을 다운받은 php 를서버에업로드한다. tar -zxvf php tar.gz 로압축을해제한다. 압축을해제되면 php-4.3.2rc1 디렉토리가생성될것이다. cd php 로이동한다. CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer"./configure --prefix=/usr/local/php4 --with-apache=../apache_ with-mysql=/usr/local/mysql --with-db --with-gd --with-jpeg-dir=/usr --with-png --with-zlib --enable-tracvars --disable-debug --enable-pic --enable-shared --enable-sockets --with-db2 --enable-dbase --enabl parse --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-calendar --enable-inline-optimization --enable-trans-sid 위의옵션으로./configure 한다. 위의옵션대로설치할필요는없으며, 각자설치하여사용하고자하는서버의특성에맡게설치를하면되겠다. 호스트웨이에서기본설치시에는위의옵션에 imap 을추가설치하여포함한다../configure 가이상없이수행되었다면, make make install로서컴파일을마무리한다. 설정이완료된후에 php.ini-dist 파일을열어 register_globals = Off를 On 으로변경시켜준다. 이것은기존에사용하던 php 버전과의호환을위한것이다. 그리고나서php.ini-dist 를 /etc/php.ini, /usr/local/php4/lib/php.ini 로복사해준다. cp php.ini-dist /etc/php.ini cp php.ini-dist /usr/local/php4/lib/php.ini apache apache 는동적으로컴파일하게될것이다. php 설치가정상적으로에러없이끝났다면이제는 apache 를설치한다. apache는이미앞에서소스를받아서압축을푼후 configure 까지해놓은상태이다. 그러나 php를인식하기위해서다시한번 configure 를해야한다. cd /usr/local/src/apache_ 로이동하여 -94-

95 CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer"./configure --prefix=/usr/local/apache --enable-rule=shared_core --enable-module=so --activate-module=src/modules/php4/libphp4.a 위와같은옵션으로 configure 를한다. 이상없이./configure 가되었다면. make make install 로서컴파일을한다. 컴파일이완료되면 /usr/local/apache/bin/apachectl start 명령으로 apache 를실행한다. 실행시키기전에 php를위해서 httpd.conf에서설정해줘야하는부분이있는데그것은 2장의 httpd.conf 설정 section 2 를참고하기바란다 Zend-Optimizer 설치 php 성능을향상시키기위해서는 Zend 를설치해주어야한다. 호스트웨이에서는기본적으로각각설치되는 php 버전에맡는 Zend 를같이설치한다. ZendOptimizer-2[1].1.0a-Linux_glibc21-i386.tar.gz을 으로부터다운받는다. 다운받은 Zend 를서버에업로드한다. tar -zxvf ZendOptimizer-2.[1].1.0a-Linux_glibc21-i386.tar.gz 압축을해제한다. 압축을해제하면 ZendOptimizer-2.1.0a-Linux_glibc21-i386 이라는디렉토리가생성된다. cd ZendOptimizer-2.1.0a-Linux_glibc21-i386 로이동한다../install 이란명령을실행시키면다음과같은창이뜬다. < 그림 12-2 ZendOptimizer install 실행화면 > -95-

96 < 그림12-3 ZendOptimizer 의설치경로> < 그림12-4 php.ini 의경로설정> 다음아파치의사용하느냐, conf 의경로는어디냐, apache의 bin 디렉토리경로는어디냐등등을묻 는데모두 OK 를선택하면된다. < 그림12-5 php 의버전설정> 설치된 php 의버전을선택하는부분이다. 1 번자동으로검색을선택하면못찾는경우도발생하므로, 2 번수동으로버전선택을선택한다. -96-

97 < 그림 12-6 php 버전수동선택 > php 버전을수동으로선택한다. 여기서설치한것은 php 이므로 5번 4.3.x 를선택한다. OK 를선택해서다음으로넘어가면설정이모두되었다는멘트창이뜨며, apache를재시작할것인지묻는창이뜬다. 설치된 Zend를사용하기위해서는재시작을해줘야하므로 Yes 를누른다. 잠시기다린후에 Apache was successfully restarted 되었다는창이뜨면설정이끝난것이다. 설정이끝난후에 php.ini 파일이 /usr/local/zend/etc/php.ini 에생성이되며, /etc 의 php.ini는 /usr/local/zend/etc/php.ini 의심볼릭링크로설정이된다. 그리고 cp /usr/local/zend/etc/php.ini /usr/local/php4/lib/php.ini 로복사를해준다. 그리고나서 apache를재가동하면 php 설정이갱신되어읽혀진다. 웹페이지를확인할수있는곳에다음과같은 php 코드를입력하여 test.php란이름으로저장하고 웹에서확인하면 php 및각종옵션의상태와 ZendOptimizer가정상적으로작동을하는지확인할수 있다. <??> phpinfo() -97-

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

운영체제실습_명령어

운영체제실습_명령어 운영체제실습 리눅스네트워크기본개념및설정 서 기옥 Contents 네트워크용어정의 IP 주소 네트워크기본명령어 네트워크관리명령어 네트워크설정파일 telnet 서버설정 네트워크용어정의 네트워크 (Network) : 전자적으로데이터를주고받기위한목적으로연결된 2 개이상의컴퓨터시스템 IP 주소와 Ethernet 주소 IP 주소 : 네트워크에연결된시스템을구분하는소프트웨어적인주소

More information

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

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

More information

Microsoft PowerPoint 통신 및 압축 명령어.ppt

Microsoft PowerPoint 통신 및 압축 명령어.ppt 컴퓨터특강 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 PING 원격지컴퓨터의상태 (accessible 여부 ) 를확인 $ ping host-name // alive or dead check $ ping s host-name // packet 송수신확인 Page 2 1 TELNET (1/4) telnet 은원격지에있는상대방컴퓨터에자신의컴퓨터를접속하여,

More information

작성자 : 기술지원부 김 삼 수

작성자 : 기술지원부 김 삼 수 작성자 : 기술지원부김삼수 qpopper 설치 qpopper란무엇인가? 메일수신을하기위해필요한프로그램으로 qpopper는가장인기있는 email 클라이언트에의해사용되는인터넷 email 다운로딩을위한 POP3프로토콜을사용합니다. 그러나 qpopper는 sendmail이나 smail과같이 SMTP프로토콜은포함하고있지않습니다. (

More information

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

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

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

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

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

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf Snort Install Manual Ad2m VMware libnet-1.1.5.tar.gz DebianOS libpcap-1.1.1.tar.gz Putty snort-2.8.6.tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconfig 명령어로현재 IP를확인해본다. 2) vi /etc/network/interfaces 네트워크설정파일에아래와같이설정을해준다.

More information

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

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월 메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail 8.13.4 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. sendmail, SPF

More information

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

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

More information

KISA-GD

KISA-GD KISA-GD-2011-0002 2011.9 1) RD(Recursive Desired) 플래그 : 리커시브네임서버로하여금재귀적 (recursive) 질의 ( 항목 1.3. 참고 ) 요청을표시함. RD 플레그값이 0 이면반복적 (iterative) 질의를요청 2) AA 플래그 : Authoritative Answer 의약자로써, 네임서버가해당응답데이터를자신이보유하고있는지유무를표시

More information

MySQL-Ch10

MySQL-Ch10 10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,

More information

Discrete Mathematics

Discrete Mathematics 컴퓨터특강 () 2005 년봄학기 문양세컴퓨터과학과강원대학교자연과학대학 PING 원격지컴퓨터의상태 (accessible 여부 ) 를확인 $ ping host-name // alive or dead check $ ping s host-name // packet 송수신확인 Page 2 TELNET (1/4) telnet 은원격지에있는상대방컴퓨터에자신의컴퓨터를접속하여,

More information

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to  TCP/IP Sockets: C Version 인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)

More information

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이 Local Backup 지침 < 로컬백업지침 ver 1.0> 아래의로컬백업지침은원격백업지침의기초가됩니다. 1. 준비사항 1) 운영중인하드디스크와는별도로백업하려는 Data 용량의최소 4 배이상되는하드디스크를준비한다. 2) 백업하드디스크의용량이남을지라도백업용도외에는사용하지않는다. 3) 백업하려는데이타항목을선정하여, 백업디렉토리를트리구조화한다. 2. 백업방법 1)

More information

LXR 설치 및 사용법.doc

LXR 설치 및 사용법.doc Installation of LXR (Linux Cross-Reference) for Source Code Reference Code Reference LXR : 2002512( ), : 1/1 1 3 2 LXR 3 21 LXR 3 22 LXR 221 LXR 3 222 LXR 3 3 23 LXR lxrconf 4 24 241 httpdconf 6 242 htaccess

More information

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

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월 메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. qmail, SPF 인증모듈설치

More information

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

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

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

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월 메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix 2.7.1 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. postfix,

More information

Network seminar.key

Network seminar.key Intro to Network .. 2 4 ( ) ( ). ?!? ~! This is ~ ( ) /,,,???? TCP/IP Application Layer Transfer Layer Internet Layer Data Link Layer Physical Layer OSI 7 TCP/IP Application Layer Transfer Layer 3 4 Network

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

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

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

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

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install the PDI on CentOS 2013.04 G L O B E P O I N T 1 Ⅰ linux 구성 II Pentaho Install 2013, Globepoint Inc. All Rights Reserved. 2 I. Linux 구성 2013, Globepoint Inc. All Rights Reserved. 3 IP 설정 1. 설정파일

More information

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라 APACHE INSTALL GUIDE 1.3.X VERSION -ANYCERT- 목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라우저테스트

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

Microsoft PowerPoint - 02-Shell-Programming

Microsoft PowerPoint - 02-Shell-Programming 2. 쉘프로그래밍 상명대학교소프트웨어학부 쉘 (Shell) 쉘 : 명령어해석기 단말기나파일로부터입력된명령을해석하여적절한명령을실행 시스템환경변경, 명령어입력편의를제공 쉘의종류 Bourne Shell(sh) /bin/sh Korn Shell(ksh) /bin/ksh C Shell(csh) /bin/csh Bourne Again Shell(bash) /bin/bash

More information

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Apache( 단일도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl_new [root@localhost httpd]#

More information

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

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Oracle hacking 작성자 : 임동현 (ddongsbrk@naver.com) 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Skill List 1. Oracle For Pentest 1. Find TNS Listener (Default 1521 port) (with nmap or amap) 2. Get the

More information

INDEX 1. 개요 DNS 서버구축하기 DNS 구축에필요한프로그램설치 DNS 설정 호스트추가. (zone 파일생성 ) 상위기관에네임서버등록.( 네임호스트추가 ) 활용

INDEX 1. 개요 DNS 서버구축하기 DNS 구축에필요한프로그램설치 DNS 설정 호스트추가. (zone 파일생성 ) 상위기관에네임서버등록.( 네임호스트추가 ) 활용 Linux Server - DNS - Copyright @ 2012 Good Internet 소속 IDC 실 E-mail tech@tongkni.co.kr - 1 - INDEX 1. 개요... 3 2. DNS 서버구축하기.... 4 2.1 DNS 구축에필요한프로그램설치.... 4 2.2 DNS 설정.... 5 2.3 호스트추가. (zone 파일생성 )...

More information

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 필수설치프로그램 Sendmail 서버구축을위한준비... -

목차 1. 시스템구성 개요 정의 목적 환경 준비사항 필수설치프로그램 Sendmail 서버구축을위한준비... - Sendmail 8.14.4 Build for RHEL4 (x86) writer : 이경호 목차 1. 시스템구성... - 2-1.1. 개요... - 2-1.1.1. 정의... - 2-1.1.2. 목적... - 2-1.1.3. 환경... - 2-2. 준비사항... - 3-2.1. 필수설치프로그램... - 3-2.2. Sendmail 서버구축을위한준비... -

More information

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt 1 아파치, HTTP, APM 소개 APM 설치하기 순천향대학교컴퓨터학부이상정 1 아파치, HTTP, APM 소개 순천향대학교컴퓨터학부이상정 2 소개 정식명칭 : Apache HTTP server 관련홈페이지 : www.apache.org GNU GPL 라이센스를통해무료로배포되는소프트웨어 현재 50% 이상의웹서버소프트웨어시장점유율 안정적으로동작 www.amazon.com이나

More information

Apache install guide

Apache install guide APACHE INSTALL GUIDE 2.X.X VERSION INAMES CO. LTD. 목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라우저테스트 2. 주의사항 신규및갱신구분 CSR 직접생성여부 5. 이슈 *:80 443 포트 VirtualHost 대상 Error_log 3. 인증서설치

More information

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다 10 강. 쉘스크립트 쉘스크립트 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다른운영체제로이식되지않음 -스크립트언어를사용하면컴파일과정이없고인터프리터가소스파일에서명령문을판독하여각각의명령을수행

More information

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [ 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra

RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [  사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Gra RedHat Linux Fedora Core 4 + APM 소스컴파일설치 김희균 [http://huikyun.tistory.com] 사전준비 : 리눅스시디, 리눅스설치공간준비와컴퓨터의 IP 주소와넷마스크, 게이트웨이주소기록 1. Linux 시디로부팅을한다. 2. Graphic mode 와 Text mode 중 Graphic mode 사용을위해

More information

Microsoft Word - Lab_080104A.docx

Microsoft Word - Lab_080104A.docx BASH Shell Script 3rd Lab 1. 쉘스크립트 간단한쉘스크립트 $ vi hello.sh (hello.sh) echo hello world $ chmod 755 hello.sh $./hello.sh hello world #! 은쉘에게이프로그램을실행하기위해서 #! 다음에오는아규먼트를실행프로그램으로사용한다는것을알려주기위해서사용된다. Unix/Linux

More information

/chroot/lib/ /chroot/etc/

/chroot/lib/ /chroot/etc/ 구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어

More information

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

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

More information

Linux 메일서버 CentOS 에서메일서버 ( 센드메일 ) 구축하기 제출일 전공사이버경찰학과 과목사이버수사학학번 담당교수안미정교수님이름한믿음 이문서는나눔글꼴로작성되었습니다. 설치하기

Linux 메일서버 CentOS 에서메일서버 ( 센드메일 ) 구축하기 제출일 전공사이버경찰학과 과목사이버수사학학번 담당교수안미정교수님이름한믿음 이문서는나눔글꼴로작성되었습니다. 설치하기 CentOS 에서메일서버 ( 센드메일 ) 구축하기 제출일 2016.05.17 전공사이버경찰학과 과목사이버수사학학번 10121372 담당교수안미정교수님이름한믿음 이문서는나눔글꼴로작성되었습니다. 설치하기 메일서버 1. 메일서버란? 메일서버란 MTA(Mail Transfer Agent) 라고도불리며, 수신되는전자우편을받아주고송신되는전자우편을배달하기위해전달해주는역할을하는일종의응용프로그램을말한다.

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

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

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

INDEX 1. 개요 데이터백업스크립트작성 crontab 을이용한자동백업예약 활용 - 다른서버에백업하기

INDEX 1. 개요 데이터백업스크립트작성 crontab 을이용한자동백업예약 활용 - 다른서버에백업하기 Linux Server - Data Backup - Copyright @ 2011 Good Internet 소 속 IDC실 이 름 정명구매니저 E-mail tech@tongkni.co.kr - 1 - INDEX 1. 개요... 3 2. 데이터백업스크립트작성.... 4 3. crontab 을이용한자동백업예약.... 7 4. 활용 - 다른서버에백업하기.... 10-2

More information

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Apache( 단일도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

<B8AEB4AABDBA2E687770>

<B8AEB4AABDBA2E687770> - 아파치 - * 웹서버 : 웹서비스를하는프로그램또는컴퓨터웹서비스에대한데몬은 httpd 데몬이아파치이다. * 웹브라우저 : 마이크로소프트인터넷익스플로러, 넷스케이프내비게이터등... http(hypertext Transfer Protocol) 라는프로토콜은해당주소의웹서버에게 http 라는프로토콜로서비스를요청. http는웹서버로부터 html형식인파일을 client가볼수있는페이지로열어주게된다.

More information

2-11Àå

2-11Àå Chapter 11 script kiddies.... 24.., script kiddies..,... 215 1 TCP/IP., TCP/IP. IP IP..,. IP. TCP/IP TCP( UDP).. 0 65535.., IP, IP,,. (, ). 216 Chapter 11 IP. IP.... 1024 (0 1023 ).... A B. B IP, A. IP,

More information

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - release note-VRRP_Korean.doc VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 DHCP & DNS 조성현 목차 DHCP LAB CHROOT DNS Primary (DNS LAB) Secondary RNDC RNDC 원격 2 DHCP LAB DHCP LAB(1) IP 주소할당 C-Class 의사설네트워크중 10 번째사설네트워크를사용 체크해제 Gateway IP 변경 C 클래스사설아이피대역대 (192.168.0.0~192.168.255.255)

More information

VPN제안서

VPN제안서 DNS 운영과실무 IDC 운영팀정해상 Tel : 02-3149-4822 E-mail : hsjung@elim.net 목차 1. DNS 개념이해 2. DNS 관련용어정리 3. DNS 질의 / 응답경로이해 4. DNS의기본Zone File 이해 (BIND Zone File 기준 ) 5. WINDOWS SERVER DNS 설치 6. WINDOWS SERVER DNS

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

More information

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E > 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 소켓 (Socket) (1/2) Socket 이란? 서버와클라이언트가서로특정한규약을사용하여데이터를전송하기위한방식 서버와클라이언트는소켓연결을기다렸다가소켓이연결되면서로데이터를전송 현재네트워크상에서의모든통신의근간은 Socket 이라할수있음 Page 2 1 소켓 (Socket) (2/2)

More information

슬라이드 1

슬라이드 1 UGENS SNC Techinical Report OEL6 + 12C RAC 사원최재정 UGENS SNC 목차 1. 12c 설치된곳에자료수집 2. SERVER DB 삭제 3. 12c grid 설치 4. oracle 12c 설치 5. 확인 2 Vi.bash_profile if [ -f ~/.bashrc ]; then. ~/.bashrc fi # User specific

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

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

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

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

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조 운영체제실습 소프트웨어관리 2016. 6 표월성 passwd74@naver.com cherub.sungkyul.ac.kr 목차 Ⅶ. 소프트웨어관리 1. 소스코드컴파일을이용한소프트웨어설치 2. RPM패키지를이용한소프트웨어설치 3. YUM패키지를이용한소프트웨어설치 4. APT패키지를이용한소프트웨어설치 5. Telnet서버설치 6. ssh서버 (openssh) 설치

More information

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase startup-config Erasing the nvram filesystem will remove all configuration files Continue? [confirm] ( 엔터 ) [OK] Erase

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 멀티및와일드인증서의경우포트번호를동일하게설정이가능하다. (https 통신으로 443 으로통일가능 ) 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. [root@localhost New]$ cp star.ucert.co.kr* /webtob/ssl

More information

Microsoft Word - CAE 클러스터 환경 구축-ABAQUS.doc

Microsoft Word - CAE 클러스터 환경 구축-ABAQUS.doc ABAQUS 클러스터환경구축문서 1. ABAQUS 설치및라이센스서버설치 작성일 : 2008년 9월 30일작성자 : 클루닉스 / 서진우 설치할서버의적절한위치에아바쿠스설치패키지를복사해둔다. (CD로설치시에는생략 ) 그런후 setup 명령을수행한다. Setup 명령을수행할때는반드시 setup 파일의절대경로를이용하여실행하는것을권장한다. Setup 파일이있는디렉토리안에서실행할경우에러를발생한다.

More information

Microsoft PowerPoint - 16_Linux_DNS_Server

Microsoft PowerPoint - 16_Linux_DNS_Server DNS 서버구축및운용 BIND (Berkeley Internet Name Domain) Doo-ok Seo clickseo@kw.ac.kr http:// Contents 도메인이란? DNS 서버설치및설정 2 도메인이란? 도메인이란? 도메인이름원칙 도메인이름체계 DNS 역할및작동과정 DNS 서버설치및설정 3 도메인이란? 도메인 (Domain) IP 주소를대신하는문자화된별칭

More information

DNS (Domain Name System) Build for RHEL4(x86) Writer : 이경호

DNS (Domain Name System) Build for RHEL4(x86) Writer : 이경호 DNS (Domain Name System) Build for RHEL4(x86) Writer : 이경호 목차 1. 시스템구성... - 2-1.1. 개요... - 2-1.1.1. 정의... - 2-1.1.2. 목적... - 2-1.1.3. 환경... - 2-2. 준비사항... - 3-2.1. 필수설치프로그램... - 3-2.2. DNS 서버구축을위한준비...

More information

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

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여 100G 백업계정 서비스 이용안내 (주)스마일서브 가상화사업본부 클라우드 서비스팀 UPDATE 2011. 10. 20. 목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법...4 1.

More information

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

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

슬라이드 1

슬라이드 1 TCPdump 사용법 Neworks, Inc. (Tel) 070-7101-9382 (Fax) 02-2109-6675 ech@pumpkinne.com hp://www.pumpkinne.co.kr TCPDUMP Tcpdump 옵션 ARP 정보 ICMP 정보 ARP + ICMP 정보 IP 대역별정보 Source 및 Desinaion 대역별정보 Syn 과 syn-ack

More information

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

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for 메일서버등록제(SPF) 인증기능적용안내서 (Exchange 2003 - Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for Exchange 2016 년 6 월 - 1 - 목 차 I. 개요 1 1. SPF( 메일서버등록제)

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

제20회_해킹방지워크샵_(이재석)

제20회_해킹방지워크샵_(이재석) IoT DDoS DNS (jaeseog@sherpain.net) (www.sherpain.net) DDoS DNS DDoS / DDoS(Distributed DoS)? B Asia Broadband B Bots connect to a C&C to create an overlay network (botnet) C&C Provider JP Corp. Bye Bye!

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Apache( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl [root@localhost httpd]# cp

More information

망고100 보드로 놀아보자-4

망고100 보드로 놀아보자-4 망고 100 보드로놀아보자 -4 Minicom,tftp,nfs 설정,vnc 설정 minicom 설정 Minicom 설정 >#yum install minicom >#ls /dev/ttyusb* ># minicom s Minicom 설정 Serial Device :/dev/ttyusb0 Baudrate:115200 Hardware Flow control: NO

More information

SPECweb Install

SPECweb Install SPECweb2005 Install & Configure Guide in Linux(fedora 13) Version # 작성일작성자 E-mail 설명 1.00 2011.3.3 김호연 hykim@q.ssu.ac.kr 첫버전작성함 본문서는 SPECweb2005를설치하고구동하는과정을설명합니다. 본문서의목적은, 어떠한시행착오없이 SPECweb2005을보다쉽게사용할수있도록함에있습니다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Table of contents 1. 구성도 Maxgauge For MySQL 설치정보... 6 설치파일정보... 6 포트정보... 6 주요디렉토리... 6 소프트웨어기동 / 종료... 7 기동... 7 종료 Maxgauge For MySQ

Table of contents 1. 구성도 Maxgauge For MySQL 설치정보... 6 설치파일정보... 6 포트정보... 6 주요디렉토리... 6 소프트웨어기동 / 종료... 7 기동... 7 종료 Maxgauge For MySQ MaxGauge for MySQL Installation Guide Table of contents 1. 구성도... 4 2. Maxgauge For MySQL 설치정보... 6 설치파일정보... 6 포트정보... 6 주요디렉토리... 6 소프트웨어기동 / 종료... 7 기동... 7 종료... 7 3. Maxgauge For MySQL 설치... 9 설치전준비사항...

More information

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt Practice #1 APM Install 2005. 8. 31 Lee Seung-Bok http://hpclab.uos.ac.kr Contents 2 APM 소개 Apache 설치 PHP 설치 MySQL 설치기타사항 Q & A APM(Apache,, PHP, MySQL) 소개 3 Apache PHP 현재전세계에서가장보편적으로사용되고있는오픈소스웹서버안정성및우수한기능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 사용자계정관리 운영체제실습 목차 Ⅲ. 사용자계정관리 4.1 사용자계정관리 4.2 그룹관리 4.3 사용자계정관련파일 4.4 패스워드관리 4.5 사용자신분확인 4.1 사용자계정관리 사용자생성관련명령어 사용자생성 : useradd / adduser 사용자삭제 : userdel 사용자정보변경 : usermod 패스워드설정및변경 : passwd 그룹생성관련명령어 group

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Apache( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음

More information

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

사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System) - 1 대의시스템을동시에여러사람이접속하여쓸수있게하는시스템 u 사용자 (user) - 시스템관리자 : root (=Super user) - 운영체제실습 사용자계정관리 2017. 6 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 사용자계정관리 1. 사용자계정관리 2. 그룹관리 3. 사용자계정관련파일 4. 패스워드관리 5. 사용자신분확인 사용자계정관리 1. 사용자계정관리 사용자 (user), 그룹 (group) u 다중사용자시스템 (Multi-User System)

More information

단계

단계 본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다. Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조...

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08. 도메인과호스팅서비스 1. 도메인등록하기 2. 호스팅서비스로서버구축하기 3. 홈페이지구축하기 DNS의구조와동작원리를이해한다. 자신만의도메인을등록할수있다. 등록한도메인으로무료호스팅서버를구축할수있다. FTP 프로그램인파일질라를활용할수있다. 웹에디터인콤포저로간단한웹페이지를제작할수있다. 도메인을구매하고서버를구축한뒤간단한 HTML 프로그램을작성하여홈페이지를만들수있다

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/port

하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/port [FreeBSD] 아파치와 PHP 설치및설정하기 [un]ion http://ko.shutterpress.net 0.1: 초기버전 0.2: httpd.conf의 Directory 지시자관련수정보완문제해결의오탈자수정보완 phpinfo.php 파일관련수정보완 FreeBSD 의포트시스템을이용하면아파치웹서버와 PHP 설치및설정이어렵지않 게가능하다. 아래과정대로명령어를입력해서설치하고설정하면된다.

More information

Chapter 05. 파일접근권한관리하기

Chapter 05. 파일접근권한관리하기 Chapter 05. 파일접근권한관리하기 00. 개요 01. 파일의속성 02. 파일의접근권한 03. 기호를이용한파일접근권한변경 04. 숫자를이용한파일접근권한변경 05. 기본접근권한설정 06. 특수접근권한 파일의속성을이해하고설명할수있다. 접근권한의종류와표기방법을이해하고설명할수있다. 접근권한을바꾸기위해기호모드에서원하는권한을기호로표기할수있다. 접근권한을바꾸기위해숫자모드에서원하는권한을숫자로표기할수있다.

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Microsoft Word - enterprise-linux-2-1.doc

Microsoft Word - enterprise-linux-2-1.doc 2. 리눅스 Server 구축및실무운영 이단원에서는리눅스운영체제를이용하여실무에서주로사용되어지는시스템구축기술과운영기술에대해다루도록하겠습니다. 이단원에서소개되는기술의부분은실무구축기술에중점을두고있으며, 이론적인접근은최소화하고있습니다. 이론적인자세한설명은각분야별전문서적을참고하시길바랍니다. 2.1. DNS (Domain Name System) DNS (Domain Name

More information