본문 바로가기

Learning/└◆Security Section

[실습환경 구축] DNS,FTP,WEB,MAIL 서버구축

 

  1.실습환경 구축(3) DNS,FTP,WEB,MAIL 서버구축

 

 서비스 설정

 

 DNS(chroot 구성) 서버 구성

(linux200 Server)

  

 FTP 서버 구성(vsftpd)

(linux200 Server)

 

 WEB 서버 구성(Apache)

(linux200 Server)

 

 

 MAIL 서버 구성(sendmail)

(linux200 Server)

 

 

chroot 구성을 통한 DNS 서버 설정

   

(주의) 보안적인 설정은 별도로 하지 않는다.

  나중에 취약점 테스트를 위해 기본 설정만 한다.

 

리눅스 시스템(linux200.example.com)에서 DNS 서버를 구성한다.

도메인 이름: example.com

 

새로운 도메인 등록

www.example.com 192.168.31.133

ftp.example.com 192.168.31.133

mail.example.com 192.168.31.133

 

 

사용 시스템

- firewall

- linux200(DNS Server)

 

 

 

DNS 서버 설정 과정

 

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

# service named restart

# chkconfig named on

 

# vi /etc/named.caching-nameserver.conf

options {

         listen-on port 53 { any; };       <----- '127.0.0.1' 부분을 'any'로 변경

//       listen-on-v6 port 53 { ::1; };    <----- 주석처리

         directory "/var/named";

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

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

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

  

         // Those options should be used carefully because they disable port

         // randomization

         // query-source port 53;

         // query-source-v6 port 53;

  

         allow-query { any; };             <----- '127.0.0.1' 부분을 'any'로 변경

//       allow-query-cache { localhost; }; <----- 주석처리

};

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

view localhost_resolver {

        match-clients { any; };           <----- '127.0.0.1' 부분을 'any'로 변경

        match-destinations { any; };      <----- '127.0.0.1' 부분을 'any'로 변경

        recursion yes;

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

};

 

 

 

# vi /etc/named.rfc1912.zones

..... (중략) .....

zone "example.com" IN {

      type master;

      file "example200.zone";

};

 

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

      type master;:

      file "example200.rev";

};

 

# cd /var/named/chroot/var/named

# vi example200.zone

:%s/192.168.20.200/192.168.31.133/g (실습 IP가 다르다면 치환)

$TTL 4

@                IN SOA ns1.example.com. root.example.com. (

                                           42              ; serial (d. adams)

                                           3H              ; refresh

                                          15M              ; retry

                                           1W              ; expiry

                                           1D )            ; minimum

                               IN NS       ns1.example.com.

ns1.example.com.               IN A        192.168.20.200

 

;; (1) WEB Server

www                            IN A        192.168.20.200

 

;; (2) FTP Server

ftp                            IN A        192.168.20.200

 

;; (3) MAIL Server

example.com.                   IN MX 10    mail.example.com.

mail                           IN A        192.168.20.200

 

;; (4) etc

cafe                           IN A        192.168.20.200

 

# vi example200.rev

$TTL    4
@       IN      SOA     ns1.example.com. root.example.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      ns1.example.com.
200     IN      PTR     ns1.example.com.
~                                               

 

# ln -s /var/named/chroot/var/named/example200.zone /var/named/example200.zone

# ln -s /var/named/chroot/var/named/example200.rev /var/named/example200.rev

 

# chown root:named /var/named/chroot/var/named/example200.*

 

# service named restart

 

# vi /etc/resolv.conf

search example.com

nameserver 192.168.20.200

nameserver 168.126.63.1

 

 

 

 

 

 

FTP 서버 설정

 

(주의) 보안적인 설정은 별도로 하지 않는다.

나중에 취약점 테스트를 위해 기본 설정만 한다.

 

리눅스 시스템(linux200.example.com)에서 FTP 서버를 구성한다.

 

root 사용자로 원격에서 접속이 가능해야 한다.

 

 

 

FTP 서버 설정

# yum -y install vsftpd

 

# cd /etc/vsftpd

# vi ftpusers

-> root 사용자 라인 삭제

# vi user_list

-> root 사용자 라인 삭제

 

# service vsftpd restart

# chkconfig vsftpd on

 

 

 

 

 

 

 

WEB 서버 설정

 

(주의) 보안적인 설정은 별도로 하지 않는다.

나중에 취약점 테스트를 위해 기본 설정만 한다.

 

리눅스 시스템(linux200.example.com)에서 WEB 서버를 구성한다.

도메인 이름: www.example.com

 

기본적으로 설치된 패키지(Apache)를 가지고 작업을 한다.

 

 

Apache Web Server 설정

# yum -y install httpd

 

# vi /etc/httpd/conf/httpd.conf

:se no // :251 <enter>

251

265

355

362

ServerAdmin root@example.com

ServerName www.example.com:80

#UserDir disable

UserDir public_html

 

# echo "Apache Web Server : Test Page" > /var/www/html/index.html

# su - user01

$ mkdir ~/public_html

$ chmod 755 $HOME

$ echo "Apache Web Server : user01 Page" > ~/public_html/index.html

$ exit

 

# service httpd restart

# chkconfig httpd on

 

 

 

 

 

 

 


MAIL 서버 설정

(주의) 보안적인 설정은 별도로 하지 않는다.

나중에 취약점 테스트를 위해 기본 설정만 한다.

 

리눅스 시스템(linux200.example.com)에서 MAIL 서버를 구성한다.

도메인 이름: mail.example.com

 

기본 패키지(sendmail)를 가지고 구성한다.

   

(필요하면 실습)

윈도우 2008 시스템에 메일 서버를 구성하고

리눅스(linux200.example.com)DNS 설정을 집어 넣는다.

새로 구성되는 2008 서버에는 test.com 도메인 구성을 한다.

 

 

 

 

Linux Mail Server 구성

 

# yum -y install sendmail sendmail-cf dovecot

 

# vi /etc/mail/sendmail.cf

Djmail.example.com

O EightBitMode=pass8

O DaemonPortOptions=Port=smtp, Name=MTA

95 ,174 ,265 se nu

 

# vi /etc/mail/local-host-names

example.com

mail.example.com

 

# vi /etc/mail/access

.....

Connect:mail.example.com RELAY

Connect:example.com RELAY

Connect:192.168.20 RELAY

Connect:192.168.10 RELAY

 

# makemap hash /etc/mail/access < /etc/mail/access

 

# service sendmail restart

# chkconfig sendmail on

 

# vi /etc/dovecot.conf (set nu : 20 )

protocols = imap imaps pop3 pop3s

 

# service dovecot restart

# chkconfig dovecot on

 

 

--------------------------------------------------------------------------------------------------

 

 

 

 

윈도우즈 DNS/FTP/WEB/MAIL 서버 설정

 

 

(주의) 윈도우즈(win2008/win7) 방화벽은 기본적으로 내려간 상태라고 가정한다.

 

사용시스템

- firewall

- windows 2008

- windows 7

 

 

1. (편리한 기능) windows 2008 서버 환경을 windows 7 환경처럼 사용하기

 

(window2008)

관리도구 > 서버관리자 > 기능 > 기능추가 > 데스크탑경험 > 설치

 

시스템 재부팅 과정을 진행한다.

 

바탕화면 아이콘 생성

바탕화면에서 > 오른쪽 마우스 선택 > 개인 설정 > 바탕 화면 아이콘 변경

 

보기 설정

바탕화면에서 > 오른쪽 마우스 선택 > 작은 아이콘 보기

 

<CTRL + ALT + DEL> 사용 안하도록 설정

관리도구 > 로컬 보안 정책 > 보안 설정 > 로컬 정책 > 보안 옵션

대화형 로그온: [Ctrl+Alt+Del] 사용할 필요없음 : 사용

대화형 로그온 : 로그온을 시도하는 사용자에 대한 메시지 제목 속성 : 경고

대화형 로그온 : 로그온을 시도하는 사용자에 대한 메시지 텍스트 속성 : 인증된 사용자만 접근

 

2. telnet 서비스 open

 

telnet 서비스

(window2008)

관리도구 > 서비관리자 > 기능 > 기능추가 > 텔넷서버/텔넷클라이언트 > 설치

관리도구 > 서비스 > telnet 서비스 enable cmd: services.msc(서비스)

 

 

(window7)

제어판 > 프로그램 및 기능 > windows 기능 사용/사용 안함 > 텔넷서버/텔넷클라이언트

제어판 > 관리도구 > 서비스 > telnet 서비스 enable

제어판 > 관리도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자 > soldesk > 속성

> TelnetClients 소속 그룹을 추가

제어판 > 전원옵션 > 디스플레이 끄는 시간 설정

> 디스플레이 끄기 : 해당사항없음

 

 

3. WEB/FTP 서비스 open

IIS/FTP 서비스

(window2008)

관리도구 > 서버관리자 > 역할 > 역할추가 > [v] 웹서버(IIS) > ....(역할 서비스 cgi,ftp서버)

> '응용프로그램개발,FTP 서버' 선택

 

http://192.168.20.201 확인

관리도구 > IIS(인터넷 서비스 관리자) > ... > Default Web Site > 하단 '컨텐츠 보기'

C:\inetpub\wwwroot 디렉토리 확인

C:\inetpub\wwwroot 디렉토리에 새로운 index.htm 파일 생성

 

IIS는 바로 가동되나 FTP서비스는 따로 가동시켜야한다.

 

IIS키고 -> 시작페이지 -> FTPserver 생성 ->  SSL없음

 

 

  FTP IPv4 주소 및 도메인 제한

 

허용 제한 규칙 추가

192.168.20.0

255.255.255.0 ( 고정 IP )

 

 

사용 권한 편집

ANONYMOUS LOGON 추가 (사용자 또는 그룹 선택)

 

 

 

4. MAIL 서비스 open

 

MAIL 서비스

 

(주의) DNS 서버 설정은 Linux 서버(EX: linux200)에서 설정

 

(linux200)

 

test.com 도메인 등록한다.

(DNS ) ns1.test.com 192.168.20.200

(WEB ) www.test.com 192.168.20.201

(MAIL) mail.test.com 192.168.20.201

(FTP ) ftp.test.com 192.168.20.201

 

# vi /etc/named.rfc1912.zones

.....

zone "test.com" IN {

type master;

file "test200.zone";

};

 

# cd /var/named/chroot/var/named

# cp example200.zone test200.zone

# vi test200.zone

:%s/example.com/test.com/g

:%s/192.168.20.200/192.168.20.201/g

 

$TTL 4

@ IN SOA ns1.test.com. root.test.com. (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

IN NS ns1

ns1 IN A 192.168.20.200 <---- 점검하고 변경

 

; WEB Server

www IN A 192.168.20.201

 

; FTP Server

ftp IN A 192.168.20.201

 

; MAIL Server

test.com. IN MX 10 mail.test.com.

mail IN A 192.168.20.201

 

; Test Server

linux200 IN A 192.168.20.200

win2008 IN A 192.168.20.201

win7 IN A 192.168.20.202

 

# chown root:named test200.zone

# ln -s /var/named/chroot/var/named/test200.zone /var/named/test200.zone

# service named restart

 

# nslookup -q=MX test.com

# nslookup mail.test.com

 

 

 

(windows2008)

linux200 서버를 DNS 서버(EX: 192.168.20.200)로 지정한다.

(테스트) IE: http://www.example.com (http://www.test.com)

 

hMailServer 다운로드

hMailServer 설치하기

관리자 암호 입력: soldesk1.

hMailServer 설치후 설정하기

connect > 암호 입력 > welcome 화면에서 'Add domain' 선택 > save

왼쪽 상단의 'domain' > 'test.com' >> 'Accounts' 항목 선택하고 'Add' > save

(주의) 미리 soldesk(암호: testmail1.)사용자가 추가되어 있어야한다.

왼쪽 상단의 'Settings' > Advanced > Auto-ban > 'Enabled' 부분에 클릭을 제거 > save

(로그인 실패시 계정제거 안하기)

General : test / soldesk1.

 

 

(windows7) 따로안함 서버만 세팅 되어있으면 됨

linux200 서버를 DNS 서버(EX: 192.168.20.200)를 지정한다.

(테스트) IE: http://www.example.com (http://www.test.com)

MAIL 클라이언트 설정을 한다.

 

5. telnet 서비스 open(linux200)

 

(linux200)

 

# telnet localhost

Trying 127.0.0.1...

telnet: connect to address 127.0.0.1: Connection refused

telnet: Unable to connect to remote host: Connection refused

 

# chkconfig krb5-telnet on

# service xinetd restart

 

# telnet localhost (root는 로그인 안됨)

root 사용자로 로그인

user01 사용자로 로그인

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

 

linux200.example.com (Linux release 2.6.18-348.el5 #1 SMP Tue Jan 8 17:57:28 EST 2013) (2)

 

login: root

Password: (soldesk1.)

Login incorrect

login: user01

Password: (user01)

You have mail.

 

$ exit

#

 

# vi /etc/securetty

......

pts/1

pts/2

pts/3

pts/4

pts/5

pts/6

pts/7

pts/8

pts/9

pts/10

pts/11

 

# telnet localhost

root 사용자로 로그인

 

# tty

/dev/pts/#

 

# exit

#