[개인학습] Personal Git 시작

URL

http://git.rcol.kr

소개

개인 Git 공간을 Github처럼 열람할 수 있도록 구축하였습니다.
현재는 막 시작한 단계라 자료는 거의 없지만 앞으로 아래 목적으로 활용할 계획입니다.

  • 개인 Study 자료의 정리 (서적 Study, Article 등을 정리)
  • 라이브러리 또는 기술 분석(Open Source, IT Technology)
  • 개인 프로젝트의 버젼 관리
  • 앞으로 작성할 Lecture 및 Article 자료의 기반이 되는 Archive 구축

당분간 다룰 주제는 아래와 같습니다.

  • Javascript
  • Java
  • PHP
  • 기타 웹 기술

물론 흥미로운 것들이 있다면, 이것저것 다룰 생각입니다!

구성

이 공간은 누구나 보실 수 있도록 아래와 같이 구성되어 있습니다.

Index

주제별로 나누어진 Repository 리스트가 표시됩니다.
Repository 별로 설명 및 하위 주제 List 및 링크가 제공됩니다.

git1

Repository

Repository를 선택하면 다음과 같이 Content File List 및 Readme 항목이 표시됩니다.
상단의 ZIP, TAR 버튼으로 Repository 내의 파일을 다운로드 하실 수 있습니다.

git2

 

Content

Repository 내의 특정 파일을 선택하면, 파일의 내용 및 히스토리를 확인하실 수 있습니다.

git3

 

Commits

Git 공간의 Commit 이력을 통해, 활동을 확인 하실 수 있습니다.

git4

 

[개인학습] RCOL Portfolio Blog

What is RCOL?

부끄럽지만 RCOL이라는 이름의 유래는 Alcohol Coding입니다.

“술에 취해 읽어도 머리속에 남는, 안주 같은 IT 이야기”를 목표로 하는 IT 강좌/정보 블로그를 만들고 싶었고, 예전부터 가지고 있던 목표였습니다.

생각이 문득 든 후로 시간이 많이 흘렀고, 아직도 안주 같은 IT 이야기를 만들기에는 턱없이 부족하여, 발음이 비슷한 RCOL로 사이트 이름을 정하게 되었습니다. 훗날 IT에 관심이 많은 분들에게 안주 거리가 될 수 있는 IT 이야기를 만들어 갈 수 있는 자신이 되었을 떄, 당당하게 Alcohol Coding이라는 타이틀을 달고 싶습니다.

사실 본인은 술이 많이 약합니다 하하!

Introduce Protfolio Blog

rcol1

포트폴리오 홈페이지를 오픈하였습니다.

대학교 재학 시절부터 현재까지 수행했던 주요 활동 및 업무를 연도별(Year), 업무별(Works), 개인작업(Study) 별로 카테고리를 분류하고 있습니다.

목적는 포트폴리오를 포함하여, 앞으로 공부해 나가면서 각종 자료 및 정보를 종합적으로 정리할 Customizing Blog를 만드는 것이며, 포트폴리오 홈페이지는 그 일부입니다. (블로그는 현재 공사중입니다.)

나아가 개인적으로 공부하면서, 진행하고 싶은 각종 강좌자료를 공유하는 공간으로 발전시켜 나가고 싶습니다.

Portfolio Page : http://rcol.kr/portfolio

Blog(공사중) : http://rcol.kr

본 게시물에서는 Portfolio Blog 소개 및 개발 환경, 후기에 대해 말씀드리려 합니다.

Responsive Layout for Web, Mobile, Tablet

본 포트폴리오 사이트는 반응형 웹을 이해하는 목적으로 개발을 진행하였습니다.

ㅁ PC 1920 (Best)

rcol_1920

rcol_1920_post

ㅁ PC 1366

rcol_1366

ㅁ PC 1024 (접기 상태)

rcol_1024_fold

rcol_1024_post

ㅁ Mobile

rcol_mobile

ㅁ Tablet & Mobile Horizontal

rcol_tablet

Compatible for Browser

본 포트폴리오 홈페이지는 IE7 이상의 대부분의 브라우져를 지원하도록 고려하였습니다.

INTERNET EXPLORER 9+
CHROME
FIREFOX
SAFARI
Best
Compatible
 rcol_ie9
INTERNET EXPLORER 8 Good
Compatible
 rcol_ie8
INTERNET EXPLORER 7 Compatible  rcol_ie7
INTERNET EXPLORER 6
& LOWER
Not Support

Develope Environment

본 사이트는 아래 환경을 바탕으로 구성하였습니다.

구분 항목 내용
System Environment Type Linux Server VM Hosting
OS CentOS 7
WebServer NGINX + PHP-FPM (Compiled)
Database Mysql (Compiled)
Develope Environment Server-Side PHP
WordPress CMS
WordPress 전용 Custom 테마 개발
Front-Side Javascript
JQuery
JQeuryUI
Isotope Library (Masonry Layout)
Markup LESS (CSS Precompiler)
CSS
HTML

Epilogue & To Do

“술에 취해 읽어도 머리속에 남는, 안주 같은 IT 이야기”를 목표로 하는 IT 강좌/정보 블로그를 만들고 싶었고, 예전부터 가지고 있던 목표였습니다.

이를 위한 첫걸음으로 자신이 개발자로써 걸어온, 앞으로 개발자로써 걸어갈 발자국을 남길 수 있는 공간을 만들고 싶었습니다. 최근 이런 공간을 만들고자 고민하고 자료를 찾으면서, CMS 커스터마이징 및 Web Front-End 구현에 관심을 가지고 공부하였습니다.

만들고 나니 기획 및 구현 단계에서 여러가지 아쉬운 점이 많은 공간인 채로 완성하였습니다.

Responsive Web, Image Preload를 통한 Progress Animation 구현, 사용자 Event 및 Animation Event에 대해 순차적으로 처리될 수 있도록 제어하는 Event Queue를 구현, CMS Customizing을 통한 Blog 구현을 수행하였으나, 여러가지로 미흡한 부분이 많게 느껴집니다.

하지만 앞으로는 이 공간을 여러가지로 채워나가는 것을 목표로 하려 합니다. 프로젝트 소개는 물론 Blog에서 진행하게 될 Programming Language Study, Open Library Study, Open source Study, IT 분야 자료 번역, IT 분야 강좌 등의 컨텐츠를 진행하면서 마무리지은 내용들을 발자국으로 채워가려 합니다.

발자국이 많이 채워졌을 때, 이 공간은 물론 자신이 만들어내는 모든 것이 보다 발전해 있을 것이라 생각합니다.

[개인학습] NetFlow5 Monitor – 네트워크 트래픽 모니터링 프로그램

소개

2012년 대학교 재학중 개인학습을 위해 진행한 프로젝트입니다.

시스코 라우터에서 제공하는 Netflow Protocol을 이용해 라우터를 통과하는 트래픽을 분석할 수 있는 프로그램입니다. 단순히 Network Interface의 트래픽양 뿐만 아니라 Source IP, Destination IP, Port, Protocol 정보 등 보다 상세한 트래픽 정보를 모니터링 할 수 있습니다.

본 프로젝트는 아래의 목표로 진행되었습니다.

• 네트워크과 프로그래밍 능력의 증진
• Netflow Protocol 분석 및 Protocol 디자인의 이해

동영상보기 (BGM 주의)

링크로 이동하여 HD화질로 보실 수 있습니다.

0:33 – 네트워크 환경
4:20 – 프로그램 실행 동작
8:11 – 안드로이드 앱 동작
11:30 – 타 시스템에서의 동작

개발환경

netflow_1

프로그램명 NETFLOW5 MONITOR
개발언어 C#
라이브러리 .NET Framework 3.5
Windows Forms Chart Controls
SQLite Data Provider for ADO.NET
프로그램명 NETFLOW5 MONITOR CLIENT
개발언어 Android
라이브러리 Android 4.0.3

Cisco Router 장비의 트래픽을 분석

netflow_2

Netflow 기술은 Cisco 라우터에서 지원하는 트래픽 분석 기술입니다. Cisco사는 전 세계 라우터시장의 2/3 이상을 차지하고 있으며 표준이라고 할 수 있을 정도로 폭넓게 쓰입니다. 타 모니터링 기술에 비해 자세한 상태 및 구조 확인이 가능하며 Layer4까지 트래픽을 실시간 모니터링 할 수 있습니다. 하지만 라우터상에서는 관련 요약정보가 캐쉬로 저장되어 사용자가 확인하고 분석하기에는 어려움이 많습니다. 이에 라우터는 NetFlow Collector에게 트래픽 정보를 주기적으로 송신합니다. 본 프로그램은 이 정보를 수집 분석하여 사용자에게 보여주는 프로그램 입니다.

트래픽 분석 자료를 시각 자료로 가공하여 제공

netflow_3

총 트래픽 용량, 총 패킷수등의 전반적인 자료를 제공합니다. 트래픽 유출 및 유입 정보를 설정한 시간대별로 통계를 내어 그래프로 사용자에게 제공합니다. 어떤 프로토콜 서비스 유형이 빈번하게 사용 되었는지 프로토콜 ID 분포도를 원형 그래프로 사용자에게 제공합니다.

Router로부터 수신한 트래픽 데이터 정보를 표시, Sqlite를 통해 기록

netflow_4

라우터로부터 패킷 정보를 수신하는 즉시 사용자가 알아보기 쉬운 형태로 표시됩니다. 수신기록에서 패킷에 대한 상세한 정보를 조회가 가능합니다.

netflow_4_2

이 정보는 일자별로 분류되어 Sqlite 데이터베이스 파일로 저장됩니다. 프로그램에서 일자별로 조회가 가능하며, Sqlite를 지원하는 Management Tool을 통해 관리가 가능합니다.

안드로이드 앱과 연동

netflow_5

본 프로그램과 연동하여 트래픽 통계 정보 및 데이터베이스 일자별 조회가 가능한 전용 안드로이드 앱입니다. 바탕화면에서 사용가능한 앱위젯을 지원합니다.

netflow_5_2

Netflow5 Monitor는 TCP 연결을 이용한 정보 서비스를 제공합니다. 이 정보를 전용 안드로이드 앱에서 수신하여 XML Parsing 과정을 거친 후 사용자에게 보여집니다. XML은 다양한 플랫폼에서 사용되어 질 수 있는 범용 규격 이기 때문에 안드로이드 이외의 기타 플랫폼에서도 이 정보를 활용할 수 있습니다.

문서 다운로드

해당 프로그램 설명 문서를 다운로드 받으실 수 있습니다.

문서 다운로드

netflow_pdf

[개인학습] Stick Calendar 달력 앱 – 안드로이드 맛보기

소개

2012년 대학교 재학중, 개인 학습을 위해 만들어본 간단한 달력 안드로이드 앱입니다.

당시 세로로 긴 달력 위젯을 쓰고 싶었는데 제공하는 안드로이드 앱이 보이지 않아, 안드로이드 기초 학습을 겸하여 Stick 형태의 위젯 디자인을 컨셉으로 제작해 보았습니다.

동영상 보기

링크로 이동하신 후 HD화질로도 보실 수 있습니다.

막대 형태의 달력 앱 위젯 제공

sticale_1

Stick Calendar는 이름과 같이 막대 형태의 달력 위젯을 제공합니다. 일자별 메모 내용이 함꼐 표시되며 위젯을 터치하면 달력 앱이 실행됩니다.

일자별 메모 기록 및 백업

sticale_2

일자별 메모 기능을 지원하며, 데이터는 SQLite를 사용하여 저장합니다. 메모백업을 통해 Text 형태로 내보내기, 가져오기 기능을 제공합니다.

프로그램 구조 요약

sticale_3

 

[학사졸업논문] 데이터링크 계층의 취약점 공격 유형 분석 및 예방

소개

2011년 4학년 2학기 학사 졸업논문으로 진행한 프로젝트 입니다.

Dynamips 및 vmware를 이용한 L2 영역 네트워크를 가상으로 구축합니다. 가상 네트워크에는 Client와 Attacker가 함께 구성되어 있으며, Attacker는 BackTrack에서 제공하는 툴을 이용하여 공격 패턴을 시뮬레이션 결과를 확인합니다. 시뮬레이션 후 Packet Dump를 통해 패킷이 어떠한 형태로 변조되었는지 비교하고, 실 네트워크 시스템에서는 어떠한 방법으로 공격을 방어하고 있는지 연구합니다.

논문 문서 다운로드

아래 링크를 통해 논문 문서를 다운로드 받으실 수 있습니다.

문서 다운로드

datalink_cover

가상 네트워크 구축 후 취약점 공격 시뮬레이션 및 방어 대책을 연구

datalink_1

데이터링크 계층 취약점 공격 시뮬레이션을 위해 공격자, 사용자, 스위치, 라우터로 구성된 가상 네트워크 환경을 다이나밉스를 이용해 구축합니다. 환경 구축 후 공격자 PC에서 다양한 공격 방법을 시뮬레이션합니다.

 ARP Poisoning 공격

datalink_2

IP주소와 MAC주소를 맵핑시켜주는 ARP는 요청과 응답에 의해 목적지의 IP주소를 바탕으로 목적지의 MAC주소를 찾게됩니다. 목적지로부터 응답을 받으면 해당 MAC주소로 패킷을 포워딩합니다. 이때 응답패킷을 오염시켜 패킷을 가로채는 ARP Poisoning공격을 시뮬레이션합니다.

MAC Flooding 공격

datalink_3

스위치는 프레임을 수신하면 송신자의 MAC주소와 그 프레임을 수신한 LAN 포트번호를 연관 지어 자동적으로 MAC Table에기억, 관리하게 됩니다. 그리고 도착지의 MAC주소를 알 수 없는 경우 <그림15>의 우측과 같이 스위치는 우선 동일 VLAN상에서 수신포트를 제외한 모든 포트로 프레임을 전송합니다. 그리고 만약 응답패킷이 돌아오면 그 수신처의 MAC주소와 LAN포트를 연관지어 MAC Table에 추가합니다. 이후로는 해당 수신처를 가진 프레임은 기억된 포트를 통해 스위칭 하게 되는데 이 MAC주소를 무작위로 변조, 패킷을 날려 MAC Table이 꽉 차도록 만든 후 모든 포트로 패킷을 전송하게 만드는 방법을 MAC Flooding 공격이라고 합니다.

STP MiTM 공격

datalink_4

STP MiTH(Man In The Middle) 공격은 루트브릿지 선정과정의 취약점을 이용한 공격입니다. 루트브릿지 선출 과정 중 BID의 변화에 따라 루트브릿지가 변화하며 경로 재구축을 시작하는데 이 과정을 공격자가 개입하여 자신을 스위치로 속이고 조작된 BPDU에 우선순위를 높게 한(낮은 수치) BID정보를 담아 전송함으로써 공격자 호스트가 루트브릿지로 선출되고 공격자호스트를 중심으로 경로가 재구축됨으로써 패킷 도청 및 변형이 가능해집니다.

VLAN Hopping 공격

datalink_5

VLAN Hopping공격중 하나로써 dot1q Tag를 확장하여 VLAN Tag를 2중으로 붙여 패킷을 전송하는 방법입니다. 원래 게이트웨이를 통하지 않으면 VLAN간 통신이 불가능하지만 이방법을 사용하면 공격자는 공격대상에게 임의의 패킷을 게이트웨이를 통하지 않고도 전송이 가능하게 됩니다.

VLAN 추가 & 삭제 공격

datalink_6

VTP(VLAN Trunking Protocol)는 시스코 스위치제품에 쓰이는 프로토콜입니다. VTP를 이용하면 SERVER로 동작하는 스위치에서 VLAN 수정을 할 경우 Client로 동작하는 스위치 모두에게 똑같이 적용됩니다. 이것으로 인해 같은 VLAN을 복수의 각 스위치에게 설정 할 필요가 없어지며 유지보수가 용이해집니다. 하지만 VTP동작 중 VLAN의 변경점을 업데이트 할시 Summary와 Subset Advertisement에 의해 업데이트되는데 Summary패킷을 수신하면 자신의Revision과 수신패킷의 Revision 수치를 비교하여 자신의 수치보다 높다면 VTP Server쪽으로 Subset Advertisement를 요구, 이 패킷을 수신하여 Vlan정보를 갱신하게 됩니다. VLAN 추가삭제 공격은 이 같은 특성을 악용한 공격방법으로 Attacker 자신을 VTP서버로 속이고 높은 Revision수치를 담은 거짓패킷을 보냄으로써 거짓된 Vlan정보를 수신 받아 VLAN정보를 수정하도록 만드는 공격 입니다.

참고 문헌 및 출처

[1] “호스팅서비스에대한ARP Spoofing대책 (PDF)“, 사쿠라네트워크주식회사
[2] “ARP Cache Poisoning 공격에 대한 방어 (PDF)”, 오사카 산업대학 데라오마 료카,
[3] “정보통신용어해설 ARP 패킷 포맷”, http://www.ktword.co.kr/abbr_view.php?m_temp1=2188
[4] “Catalyst 3550 설정가이드22 동적ARP검사“, http://www.cisco.com/japanese/
[5] “MAC 주소 테이블의 설정”, http://www.n-study.com/network/switch1.htm
[6] “랜 환경에서의 부정 접근 대책”, http://www.allied-telesis.co.jp/solution/switch_sec/taisaku.html
[7] “포트 유니케스트 및 멀티케스트 플러딩 방지(PDF)“, Cisco Japan
[8] “후니의 시스코 네트워킹“, 진강훈, 사이버출판사
[9] “STP동작의 흐름“, http://www.careerdesign.co.jp/index.php?option=com_content&view=article&id=303&catid=54
[10] “VLAN의 개요와 설정“, http://www.careerdesign.co.jp/index.php?option=com_content&view=article&id=298&catid=55
[11] “Catalyst 3560 설정가이드25 옵션의 스패닝트리 개요 및 설정“, http://www.cisco.com/japanese/
[12] “VLAN (가상LAN)간의 라우팅 개요“, http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/rt/1700/51scg/chapter06/1070_01_6.PDF
[13] “IEEE802.1Q 터널링 및 2계층 프로토콜 터널링의설정”, http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/sw/cat60/iosscg/chapter13/13_dot1qtnl.html
[14] “Vlan Hopping에 관하여” http://blog.naver.com/PostView.nhn?blogId=fz007&logNo=70110855712
[15] “VLAN 트렁크 프로토콜의 이해(PDF)”, http://www.cisco.com/cisco/web/support/JP/100/1000/1000942_21.pdf
[16] “VTP의 기초학습”http://jibun.atmarkit.co.jp/lskill01/rensai/ccnps/02/01.html
[17] “ARP Poisoning [Spoofing] 악성코드 감염사고 분석(PDF)“, KISC, http://www.krcert.or.kr/unimDocsDownload.do?fileName1=ARP%20Poisoning.pdf&docNo=TR2008005&docKind=2
[18] “다이나밉스“, 피터전, NeverStop
[19] “랜 스위칭 I”, 피터전, NeverStop