한국어

tc_backup


[토플로지]


먼저 VMWARE 설치되어 있는 본래의 운영체제에서 이더넷 카드를 추가하고 설정하여야 합니다.


위의 그림처럼 Vmnet의 이더넷 카드가 여러 개가 있습니다.(Vmweare에서 추가를 하셔야 합니다.)

같은 경우는 기존에 vmnet1 vmnet8 그대로 두고 3개를 추가하여, vmnet2, vmnet3, vmnet4 사용하겠습니다.

추가하고 다음에는 반드시 재부팅하여 주어야 이더넷 카드를 사용할 있게 됩니다.

vmnet2 windows, vmnet3 CentOS, vmnet4 Backtrack으로 연결하였습니다. 이 부분은 Vmware에서 OS별로 Settings 메뉴에서 Network Adapter에서 설정하여 주시면 됩니다.

Vmnet2 subnet 192.168.1.0/255.255.255.0 대역 대이므로 이더넷 카드에는 192.168.1.10 부여하였습니다.

vmnet3 subnet 192.168.2.0/255.255.255.0 대역 대이므로 이더넷 카드에는 192.168.2.20 부여하였습니다.

vmnet4 subnet 192.168.3.0/255.255.255.0 대역 대이므로 이더넷 카드에는 192.168.2.30 부여하였습니다.

vmnet ip 운영체제와 충돌이 되지 않게 설정하시면 됩니다. name server gateway 적지 않으시면 됩니다.

이유는 Vmnet 이더넷 카드는 그저 운영체제가 라우터를 거쳐서 지나갈 있는 통로역할만 하기 때문입니다.(토플로지에서 구름 모양이 되는 것임)


이제는 GNS3에서 환경에 맞게 그림처럼 연결해주어야 합니다.

구름을 클릭하여 Vmnet 이더넷 카드와 연결시켜주어야 가상의 라우터와 연결되어 연동이 됩니다.

GNS3 설치되어 있는 경로로 가게 되면 Dynamips 파일인 Network device list.cmd 파일이 존재합니다. 파일을 실행시켜보면 위에서 추가한 Vmnet 이더넷카드들의 고유 정보가 뜨게 됩니다. GNS3에서 구름을 클릭하게 되면 아래와 같은 창이 뜨게 되고 C0 누르면 아래와 같은 화면이 나오게 됩니다.



그림을 보게 되면 Generic Ethernet NIO (require Administrator access)라는 메뉴가 보입니다. 그곳을 누르면 이더넷 카드별로의 고유 정보가 뜨게 됩니다. 그러나 문자열이기 때문에 분별하기 어렵습니다. 그러므로 아까 말한 Network device list.cmd파일로 비교하여 확인하여 맞는 이더넷 카드를 선택한 Add 누른 OK 누르면 됩니다.

같은 경우는 windows Vmnet2 사용했기 때문에 vmnet2 맞는 것을 선택한 Add 하였습니다.

나머지 구름 2개도 위와 같은 방법으로 맞는 Vmnet 선택한 Add 하여 저장하면 됩니다.


이제는 Windows 가서 이더넷 설정을 해주어야 합니다.

IP 192.168.1.11 / 서브넷은 255.255.255.0 / 게이트웨이는 192.168.1.254


저는 11 것이지만 여러분이 이해하고 있다면 다른 것을 하여도 무관하다는 것을 알고 있을 것입니다. 그렇지 않다면 저와 동일하게 하는 것이 좋겠지요.


CentOS에서는 192.168.2.21 / 255.255.255.0 / 192.168.2.254

ifconfig eth0 192.168.2.21 netmask 255.255.255.0

route add default gw 192.168.2.254


Backtrack에서는 192.168.3.31 /255.255.255.0 / 192.168.3.254

ifconfig eth0 192.168.3.31 netmask 255.255.255.0

route add default gw 192.168.3.254


이제는 라우터 설정을 해주어야 합니다.

토플로지를 그리면 됩니다. 구름과 라우터는 FastEthernet 선이고, 라우터끼리는 Serial 선입니다.

R0 라우터는 telnet 포트 2000번으로 설정이 되어있습니다. SecureCRT Xshell 같은 Telnet 프로그램으로 접속하면 라우터로 접속할 있습니다. 윈도우 xp에는 기본으로 telnet 프로그램이 설치되어 있으므로 따로 깔지 않아도 됩니다. 그러나 비스타의 경우에는 따로 추가하거나 위에서 말한 프로그램과 같은 프로그램들을 사용하여야 합니다. GNS3에서는 Console 바로 접속 있도록 지원합니다.(, Telnet 설치되어 있어야 )




라우터를 선택하고 오른쪽 버튼을 누르면 위와 같은 메뉴가 나오게 됩니다. 거기서 Console 선택하면 됩니다. , 주의하여야 것은 라우터를 여러 선택하면 안됩니다. 위에 그림을 보게되면 왼쪽 라우터는 진한 색이고, 오른쪽으 R1 라우터는 연한 색입니다. GNS3에서는 선택을 하게 되면 살짝 진한 색이 되므로 드래그하거나 실수로 개를 선택하지 않도록 하여야 합니다.


R0 라우터는 기본적으로 2000 Port 사용합니다. R1 2001번입니다. Dynamips 기본적으로 2000번부터 Port 부여합니다. 물론 수정은 가능합니다. 화면에서처럼 Change console port 누른 변경하여 주시거나 net 파일을 수정하여 주시면 됩니다.


이제 라우터를 Start 시켜주어야 합니다.

GNS3 메뉴에서 녹색 화살표를 누르게 되면 Start 하게 됩니다.(라우터는 선택적으로 Start 시킬수도 있습니다.)

라우터를 키자마자 하여야 하는 것은 라우터 별로 그림에서 보는 메뉴인 Idle PC 잡기를 하여야 합니다. 누르고 나면 잠시 무언가 검색을 창이 뜹니다. 1~10개정도 선택할 있게 나오고 그중에 * 붙어 있는 것이 있습니다. 여러 개일 수도 있고 개도 없을 있습니다. 여러 개라면 개만 아무거나 선택하시면 되고, 개도 없다면 창을 끄고 다시 메뉴를 눌러서 Idle PC값을 검색하여야 합니다. 안잡힐 경우에는 수차례 반복하기도 합니다.
Idle PC
값을 잡지 않게 되면 라우터는 가상의 라우터이지만 실제 컴퓨터의 CPU 자원을 모조리 끌어가다 사용해버립니다. 그러므로 CPU 점유율은 100% 치닫게 되고, 느려져서 작업을 하기에 충분한 환경이 되지 못합니다. 잡아주게 되면 시스템 사양에 따라 안정화되어 40~80% 선으로 낮아지게 됩니다.


이제 기본적인 설정이 완료되었으니 라우터를 설정하여 주어야 합니다.

저는 개인적인 취향으로 SecureCRT 사용하겠습니다.

Protocol telnet, Hostname localhost 또는 127.0.0.1, Port 2000 하여 R0 라우터 접속을 시도합니다.

라우터를 키자마자 하게 되면 라우터 구동중이라 접속이 되지 않을 수도 있으니, 여유를 가집시다.


Connected to Dynamips VM "R0" (ID 0, type c7200) - Console port


라는 메시지가 보이고 멈춰 있습니다. 엔터를 쳐보시면


% Please answer 'yes' or 'no'.

Would you like to enter the initial configuration dialog? [yes/no]:


라는 문구가 뜨게 되는데 초기 설정을 것인지 물어보는 내용입니다. no 선택하여야 합니다.

그리고 엔터를 5번정도 쳐줍니다.

Router> 라는 프롬프트가 뜨게 됩니다. 라우터에 접속을 완료하였습니다.

라우터의 privilege 모드로 접속할려면 enable 명령어를 입력하면 됩니다.

아래 내용은 기본 라우터 설정이라 적용해놓으면 편리합니다. 복사해서 라우터에 붙여넣기 하면 처리되고 마지막 hostname 적어주시면 됩니다. enable 사용하여야 합니다. 아래 내용 설명은 생략하겠습니다.


//////////////////////////////////////////////////////////

conf t

enable password cisco

no ip domain-lookup

line console 0

no login

exec-timeout 0

logging syn

exit

line vty 0 4

password cisco

login

exit

hostname

//////////////////////////////////////////////////////////




이제는 명령어 위주로 적겠습니다. 귀찮으시면 복사해서 붙여넣기 하셔도 됩니다.

아래 명령어는 conf terminal 상황에서 사용하여야 합니다.


int fa1/0

ip add 192.168.1.254 255.255.255.0

no sh

exit

int fa1/1

ip add 192.168.2.254 255.255.255.0

no sh

exit

int se2/0

ip add 192.168.100.1 255.255.255.0

no sh

exit


여기까지가 기본 IP 설정입니다. 바로 이어서 RIPv2 설정을 하겠습니다.


router rip

version 2

network 192.168.1.0

network 192.168.2.0

network 192.168.100.0

exit


이렇게 하므로 자신의 라우터가 다이렉트로 연결된 주변의 모든 대역대를 라우팅 프로토콜로 광고하겠다는 것입니다.


이번에는 R1 라우터로 접속하여야 합니다.

위에 동일하게 localhost 2001번으로 합니다.


접속 후에 위처럼 기본 세팅을 해줍니다

int se1/0

ip add 192.168.100.2 255.255.255.0

no shut

exit

int se1/1

ip add 192.168.200.1 255.255.255.0

no shut

exit

router rip

version 2

network 192.168.100.0

network 192.168.200.0

exit


이번에는 R2 라우터로 접속합니다.

동일하게 기본 설정하여

int se2/0

ip add 192.168.200.2 255.255.255.0

no shut

exit

int fa1/0

ip add 192.168.3.254 255.255.255.0

no shut

exit

router rip

version 2

network 192.168.200.0

network 192.168.3.0

exit


이제 모든 라우팅 프로토콜이 세팅되었으므로 Windows에서 Backtrack으로, CentOS에서 backtrack으로, CentOS에서 Windows으로 ping 가는지 확인해보시기 바랍니다.

윈도우에서는 ping 192.168.3.31

ping 192.168.2.21

CentOS에서 ping 192.168.3.31


모두 정상적으로 가게 됩니다.

안될 경우 설정을 잘못 하셨다는 것입니다. ip 잘못 넣었다거나 하는 실수입니다. 다시 한번 확인해보시기 바랍니다.

확인하는 방법은 show ip int b하게 되면 ip up up 상태인지 확인 가능합니다.(conf t 상황이면 앞에 do 명령어를 적어주면 됩니다)


먼저 윈도우에서 tracert 명령어로 경로를 확인해보겠습니다.


보다시피 게이트웨이와 목적지 PC 잡히게 됩니다.(PC 있는 NIC 라우터의 역할도 수행할 있습니다.)


이제는 GRE Tunneling 구현할 차례입니다.

이번에도 명령어 위주로 적고 추가 설명을 덧붙이겠습니다.


R0 라우터에서


interface tunnel 0

tunnel mode gre ip

tunnel source se2/0

tunnel destination 192.168.200.2

ip add 192.168.250.1 255.255.255.0

exit

access-list 101 permit ip any any

route-map pbr1 permit

match ip address 101

set ip next-hop 192.168.250.2

interface fa1/0

ip policy route-map pbr1


이렇게 해주면 R1에서 GRE Tunnel 만들게 됩니다. 가상의 interface tunnel 0 이라는 것이 생기게 됩니다. sub interface loopback 정도로 이해하시면 됩니다. 가상이므로 실제로 나갈 경로를 se 2/0으로 해주고 도착지점을 192.168.200.2 설정해주었습니다.

그리고 정책을 설정하여 것입니다. 모든 ip 허용하는 access-list 만들었고, route-map명령을 통해 pbr1 이라는 정책을 만들었습니다.그리고 access-list 101 일치할 192.168.250.2 가도록 설정한 fa1/0 inbound 작동하도록 하였습니다.

, 윈도우에서 ping 보내거나 어떠한 작업을 요청하게 되면 gateway 192.168.1.254(R0라우터) 가도록 되어 있습니다. 그런데 192.168.1.254 가기 위해서는 R0라우터의 fa1/0 들어가서 라우터로 들어가도록 되어 있습니다. fa1/0으로 들어가기 때문에 inbound라고 합니다. 그때 192.168.250.2 가도록 설정한 것입니다.
아직은 192.168.250.2라는 ip 어디에도 없습니다. 그러나 제가 그렇게 설정한 이유는 R2라우터에 그렇게 ip 부여할 것이기 때문입니다. R0에는 터널을 만들면서 tunnel 0이라는 interface 192.168.250.1이라는 ip 부여해두었습니다.


이제 맞은편 R2라우터에도 터널을 만들어주어야 합니다.


interface tunnel 0

tunnel mode gre ip

tunnel source se2/0

tunnel destination 192.168.100.1

ip add 192.168.250.2 255.255.255.0


내용은 위의 설명과 같습니다만, source하고 destination 주소가 반대로 되어있습니다. 유의하셔야 합니다.

destination에는 가상으로 만든 interface 아닌 실제로 존재하는 interface ip 적어주어야 합니다.


여기까지 설정하면 half duflex 설정이 되었습니다. 윈도우에서 경로를 확인해보겠습니다.


그림에서 보다시피 갈때는 192.168.250.2 라는 터널 IP 사용하여 R2라우터까지 가지만 돌아올때는 터널을 사용하지 않고 있습니다. 이제 full duflex 공격자의 pc backtrack으로 forwarding되어 돌아갈 있도록 세팅하여 봅시다.


이제는 R2라우터에서 정책 수립만 2개를 구현해주면 됩니다.


access-list 101 permit ip any any

route-map pbr1 permit

match ip address 101

set ip next-hop 192.168.3.31

interface tunnel 0

ip policy route-map pbr1

interface tunnel 0

ip policy route-map pbr1

exit

route-map pbr2 permit

match ip address 101

set ip next-hop 192.168.250.1

interface fa1/0

ip policy route-map pbr2

exit


pbr1 pbr2 2개의 정책을 수립하였습니다.

먼저 위의 pbr1 R0라우터에서 터널을 통해 R2라우터의 tunnel 0 interface 패킷이 전달됩니다. 물론 가상이므로 물리적으로는 se2/0으로 들어옵니다만 가상으로 tuunel 만들어줬기 때문에 가능합니다. tuunel 0으로 들어오는 모든 ip 192.168.3.31 보내는 내용입니다. 192.168.3.31 공격자인 backtrack입니다. 이렇게 하면 backtrack까지 패킷이 전달됩니다. WireShark 패킷을 떠보시면 전달되는 내용을 확인할 있습니다.

두번째 pbr2입니다.

위의 정책으로 backtrack 전달된 패킷은 잘못온 패킷이므로 되돌아가야 합니다. 라우팅 프로토콜을 통해서 어디로 가야 할지 알고 있습니다. 그러나, 저희는 터널을 사용해야 합니다.

그래서 backtrack 전달된 패킷을 다시 되돌리는데 fa1/0으로 들어가게 되는 모든 패킷은 192.168.250.1 보내도록 하는 것입니다. 192.168.250.1 터널의 맞은편인 R0라우터가 도착지가 되는 것입니다. 터널을 통해 한번에 나온 패킷은 R0라우터에서 원래의 전달 장소인 Centos 전달되게 됩니다.


확인하기전에 공격자인 backtrack에서 포워딩 있도록 설정해주어야 합니다.

backtrack에서 sysctl net.ipv4.ip_forward=1 명령 주고 다음에 확인해보면 아래와 같습니다.



보는
것과 같이 윈도우에서 나간 패킷이 첫번째 게이트웨이를 거치고(1), 터널을 통해 도착하게 됩니다(2). 도착한 패킷은 공격자인 backtrack 도착하게 됩니다(3). 그러나 잘못 패킷이므로 되돌아가기 위해 게이트웨이로 갑니다(4). 게이트웨이로 가다보니 정책에 의해 터널을 통해 바로 192.168.250.1 도착하게 됩니다.(5) 그제서야 제대로 라우터는 제대로 목적지인 192.168.2.21 보내줍니다.(6)


이로서 터널링이 완료되었습니다. 터널링 뿐만이 아니라 포워딩까지 되었습니다.


windows에서 ping 192.168.2.21 쳐보고

wireshark 192.168.3.30 대하여 패킷을 캡쳐하여 보면 아래와 같습니다.



여기는 192.168.3.30 컴퓨터인데 192.168.2.21 가야하는 패킷이 들어온 내용이 보입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
140 ETC [시외버스] 부천, 안양 <-> 속초,양양 시간표 [1] file 엔신 2009-01-16 15813
139 Windows 윈도우즈 비스타 원격 데스크톱 다중 접속 [2] 엔신 2009-01-13 12128
138 Ambiguous 프로그램 제거 툴 - Revo Uninstaller [1] file 엔신 2009-01-10 10648
137 Ambiguous 일회성 이메일 yopmail.com file 엔신 2009-01-10 28694
» CCNA GRE Tunneling file 엔신 2008-12-17 14159
135 Windows 비스타(Vista) 울티메이트(Ultimate) 서비스(Services) 설정 file 엔신 2008-12-13 10042
134 Security Nessus 설치, 사용법 file 엔신 2008-12-11 93608
133 Security Backtrack3 Final에서 sshd 가동하기 [2] 엔신 2008-12-08 11677
132 ETC 노트북 MAC Address(맥어드레스), 제품번호(SN) secret 엔신 2008-11-29  
131 Ambiguous 디스크 조각모음(Defragmenter) 벤치마크 기사 정리~ file 엔신 2008-10-14 12340
130 Ambiguous 구글(google) 애플리케이션(Apps)의 cname 안내 오류로 인한 혼란가중 [2] file 엔신 2008-09-29 15018
129 Security 어셈 레퍼런스(?) 엔신 2008-09-17 6881
128 Programming strcpy()와 memcpy() 엔신 2008-08-20 9764
127 Programming 널 포인터(NULL Pointer) 엔신 2008-08-16 8671
126 Programming time.h 시간 2 엔신 2008-08-12 8340
125 Programming time.h 시간 엔신 2008-08-11 25416
124 Programming 문자열 처리 함수 < string.h > [2] 엔신 2008-07-26 9743
123 ETC 책책책 책을 읽읍시다 file 엔신 2008-07-02 7866
122 Ambiguous MBR 디스크와 GPT 디스크 엔신 2008-06-20 14496
121 Windows 환상의 psexec.exe 사용법 엔신 2008-06-19 22452