세미나 동영상 ....





VPN


보안성이 없는 네트워크를 보안 통신을 하는 기술


- Authenticity 상대방이 정말 상대방인지

- Integrity 데티터가 중간에 변경되지는 않았는지

- Confidentiality 누가 중간에 데이터를 훔쳐보지는 않았는지


- Remote-access

- LAN to LAN


- 전통적 양방향

- EasyVPN^TM (VPN Client가 붙고, VPN 허브 장비가 서비스를 push)



# VPN protocol, 보안

1. 암호화 알고리즘 Confidentiality 

- 대칭형(Symetric Encryption), 데이터 암호화, 3DES, AES

- 비대칭형(Asymmetric Encryption), 상대방인증, RSA


2. Hash 알고리즘 Integrity 

- 데이터에 특정 함수를 돌려서 정해진 길이의 고유 값을 생설

- Hash에서 고유값은 중복되지 않음

- hash 자체에는 보안기능이 없음

=> HMAC(Hash Message Authentication Code)

: 공유키를 넣어 Hash, MD5, SHA-1


3. DH(Diffie-Hellman) 알고리즘

: 보안이 안된 통신 채널을 통하는데도 결과적으로 둘만 알고있는 비밀 공유키를 생성하는 신기한 알고리즘

인터넷을 공유하는 떨어진 두 호스트 사이에, 같은 Hash key값을 가질 수 있을까? Shared Key!


4. Split Tuneling

- 말 그대로 터널 나누기

- 내부망 이외의 목적지로 접속 시 VPN Head-end를 통하지 않고 직접 통신을 허용 함





5. IKE/IPSec

- IPSec 

- IKE는 두 단계로 구성

데이터를 암호화 통신을 하기위해 통신을 해야하는데, 그 데이터(IKE Phase 1)도 암호화 하고 싶을때, 

 이 암호화단계를 위해 주고받는 또하나의 데이터 사용하는 방식(IKE Phase 2)

(1) IKE Phase1 : IKE Phase 2를 준비하는 단계, 상대방을 검증하는 작업을 수행, 


(2) IKE Phase 2 :  상대방을 검증하는 작업을 수행하지 않음


- Tunnel == SA (Security Assosation), 양 끝의 호스트들이 각각 SA를 생성


<염두해야 할 것?>

- 넌 누구니? 

- key는?

- 어떻게 할까?(SA)


 (2-1) IKE Main Mode


 -------phase 1 작업 시작-----------

  a. 어떻게 할까? Transform Set, 어떤 암호화 방식을 쓸까? 어떤 해쉬방식을 쓸까?

  b. key는 어떻게 할까? DH사용

  c. 넌 누구니? 실제 암호화!

 -------phase 1 작업 끝, phase 작업 2t 시작-------------

  d. phase 1 작업이 끝나면 터널이 생성됨. phase1 tunnel == IKE tunnel 

  e. 넌 누구니? phase1에서 했으므로 여기선 안해도됨

  f. key는? 사용자에 선택에 따라, 할수도 있고, 

      (PFS(Perfect forward security) : phase 1과 2에서 다른 keyr값을 사용하는 방식)

   PFS는 default로 켜져있기때문에 phase2에서는 보통 Key교환이 새로 이루어 짐

  g. How? IPSec은 어떻게해서 데이터를 전송할까?

  h. 이때 생기는 터널이 IPSec 터널

 -------phase 2 작업끝------------------------------------


  (2-2) Aggressive

  - 넌 누구니, key는, 어떻게 할까를 하나로 때려박아용 (기존에 key부분을 노출시키지 않던 방식에서 해당 부분은 한번에 묶어서 노출함)



- 실제 추가적인 사용자 인증이나 IP 할당은? IKE Extensions기능을 사용

  a. Extened Authentication (Xauth) - 사용자인증

  b. Mode Config - IP 자동할당

  c. Dead Peer Detection(DPD) - 상대방의 생사여부를 확인


- IKE Extention은 IKE phase 1.5에 해당 




#  SSL VPN ?

- 넷스케이프에서 개발한 보안 통신 프로토콜

- 웹서버와 브라우저 간에 보안 터널생성

- 인증 암호화 무결성 지원

- 대부분의 브라우저 및 SSL VPN 클라이언트에서 구현

- 포트 443을 통해 Https:// 통신 (TCP 443)


1. 구현방법

- Clientless : 클라이언트 없이

- Thin Client : 클라이언트를 쪼~끄만걸 빠는 방식 (쪼그만 클라우드)

- Client-Based : Full 클라이언트를 방식(뭐든 다 써야할때..)




2. 고려사항

- 접속 전 : 레지스트리검사, 파일유무 검사, OS 버전 검사

- 접속 후 : Cookie, URL 히스토리, Cache, 다운로드 파일은?


.. 가상키보드,,,VDI 등 제공...



# Remote-Access VPN 디자인 가이드 

:  인입장비(방화벽, VPN)를 가지고 제어


- 과거 : FW, VPN을 수평적으로 배치하여 서로의 단점이 발생

- 개선된 디자인 : VPN, 방화벽 역할 분리, IPSec, SSL을 분리하여 운영

- 최근 추세 :  목표가 하나이므로 VPN, IPSec, SSL을 하나로 통합








'Network/Infra' 카테고리의 다른 글

로드밸런싱 서버, 캐시 서버  (0) 2015.12.27
스토리지 프로토콜?  (0) 2015.08.13
[SDN] Ryu_OpenFlow 1.3 REST 연동  (0) 2015.05.11
[SDN] Ryu_OpenFlow 1.3 트래픽모니터  (0) 2015.05.10
[SDN] Ryu_OpenFlow 1.3 스위칭허브  (0) 2015.05.03

# 유클리디안 거리점수


: 그럼  제곱 제곱 제곱이 되는뎅.....

 말이 안되는 알고리즘인뎅...? 2^ ==> 제곱으로 속도가 떨어지는거지???? 


... 유사도 계산 시 나타낼  수 있는 범위를 0~1로 잡고(정규화), 실수로 표현한다.

하.. 이게 왜. 효육적이지? 실수로 가면 속도가..........................................


제곱은 알고리즘에서..for로 처리하니깐.. ~~~



# 피어슨 상관점수

: 1, 0, -1

- 0이라는 기준을 잡는 조건은?

- 평균? 상관계수? 


- 전체적인 상관관계를 나타낼 수 있찌만 두 객체간의 유사도는 측정할 수가 없다는 단점이 있다.

- 궂이 이 이론을 사용하는 이유는 ? 두 객체간 상관관계의 판별로만 사용한다. 


# 유사도 계산을 할때는 

 1. 피어슨이 1위

 2. 유클리디안이 2위

 3. 3위는 기타 많은 것들이 있당...?


# 예를들어

 1 : 객체간의 양의 상관관계가 나오면 함께 파는게 낫다.

 0 : 객체간에 0의 상관관계가 나오면 

 -1: 객체간의 -1의 상관관계가 나오면 함께팔지않는게 낫다.

'Development > Data Science' 카테고리의 다른 글

[집단지성] 4.7 클릭학습 개념  (0) 2015.05.14
[집단지성] 군집화  (0) 2015.05.09
[집단지성] 4. 검색과 랭킹 - 6. 유입 링크 사용하기  (0) 2015.05.04
집단지성  (0) 2015.04.21

OpenStack 소스레벨 접근하기


[inatall script]


[API 사용하기]

# dev Doc

# SDK

- jcloud : 클라우드 관련하여 거의 모든 소스를 커버하고있음

  > github에 올라간 잘 짜여진 예제 소스들 참고하자!

- pkgcloud 


[contribute]

- openstack.org에서 회원으로 가입 한 후 개발자커뮤니티와 연동하여 개발

- 슬쉐에 공유된 부대표님 ppt보고 해보자


[writings]

- 개발자가 알아야할 가상화 정보를 많이... 가이드? 해주고있다..


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



1. keystone

 $ keystone user-list

 $ keystone --debug user-list
   : curl부분이 실제 실행되는 부분

root@ubjuno-contnet:~# which keystone
/usr/bin/keystone

$ vi /usr/bin/keystone

* 다른곳의 소스를 imporing만 하고있음.
그부분을 찾자!


root@ubjuno-contnet:~# ps -ef | grep keystone
keystone  2471     1  3 19:42 ?        00:01:03 /usr/bin/python /usr/bin/keystone-all
keystone  3849  2471  0 19:43 ?        00:00:00 /usr/bin/python /usr/bin/keystone-all
keystone  3850  2471  0 19:43 ?        00:00:00 /usr/bin/python /usr/bin/keystone-all
keystone  3851  2471  0 19:43 ?        00:00:00 /usr/bin/python /usr/bin/keystone-all
keystone  3852  2471  0 19:43 ?        00:00:00 /usr/bin/python /usr/bin/keystone-all
root      9110  8463  0 20:17 pts/1    00:00:00 grep --color=auto keystone
root@ubjuno-contnet:~#
root@ubjuno-contnet:~# which keystone-all
/usr/bin/keystone-all
root@ubjuno-contnet:~#
root@ubjuno-contnet:~# vi /usr/bin/keystone-
keystone-all     keystone-manage
root@ubjuno-contnet:~# vi /usr/bin/keystone-all

* main을 찾아요. main이 구현되어있음.

* wsgi, 데몬으로 서비스가 http프로토콜의 경우 웹서버를 띄우지 않아도 웹서버에 올려준거처럼 되어있음
(일반적으로 wsgi는 웹서버의 기능을 떼어 위의 부가서비스들을 따로 운영하게 한다. 미니멀을 지향?, 해당 부가서비스들은 쓰레드로 동작되어 콜되어지는 형태)
* monkeypatch
 - use_eventlet()에 넣어서 돌리면 스레드를 돌려서(green이라는 스레드 풀같은걸로) wsgi로 올려서 OpenStack상의 데몬을 띄운다.


=>임베디드 어쩌고저쩌고?


* 웹에서 쓰레드가 필요한 이유...? 웹서비스들을 스레드로 돌려야 가벼움(자원을 공유하므로)


* admin_workers / public_workers를 구분하여 

server로 ㄱㄱ


root@ubjuno-contnet:~# vi /usr/lib/python2.7/dist-packages/keystone/openstack/common/service.py

- python 2,3버전 대는 완전 다름.
- 소스단에서의 가상화라는 것을 제공하는데(3버전), 가상화하여 묶어서 소스영향력을 줄인다.

* 파이썬 라이브러리들은 지속가능한 걸 선호해야함(너무 금방 사라져버리니까.. 안정화된 걸 골라써야햇)

* tree명령어로 keystone 구조보기
$ tree -L 1 /usr/lib/python2.7/dist-packages/keystone

* 파이썬도 컴파일을 하면 중간코드 형태로 파일이 떨어진다. (.pyc)
*

root@ubjuno-contnet:~# tree -L 1 /usr/lib/python2.7/dist-packages/keystone/auth/
/usr/lib/python2.7/dist-packages/keystone/auth/
├── controllers.py
├── controllers.pyc
├── core.py
├── core.pyc
├── __init__.py
├── __init__.pyc
├── plugins
├── routers.py
└── routers.pyc

1 directory, 8 files


root@ubjuno-contnet:~# tree -L 1 /usr/lib/python2.7/dist-packages/keystone/assignment/
/usr/lib/python2.7/dist-packages/keystone/assignment/
├── backends
├── controllers.py
├── controllers.pyc
├── core.py
├── core.pyc
├── __init__.py
├── __init__.pyc
├── routers.py
├── routers.pyc
├── schema.py
└── schema.pyc

1 directory, 10 files


root@ubjuno-contnet:~# tree -L 1 /usr/lib/python2.7/dist-packages/keystone/assignment/backends/
/usr/lib/python2.7/dist-packages/keystone/assignment/backends/
├── __init__.py
├── __init__.pyc
├── kvs.py
├── kvs.pyc
├── ldap.py
├── ldap.pyc
├── sql.py
└── sql.pyc

0 directories, 8 files

* identity controllers : 메소드와 url을 매핑해주는 로직
- v2 deprecated... 
- v3_to_v2() : 현재 버전 2를 버리지 못하고 해당 함수등을 사용해서 v3로 그냥 맵핑을 시켜주는 형태로 가고있음. 나중에 v2는 한번에 버릴 수 있겠지..

root@ubjuno-contnet:~# vi /usr/lib/python2.7/dist-packages/keystone/assignment/backends/sql.py
* sql 만들기
* create table...
=> DDL, SQL RPM .. 왜 이부분에 프로그래머블하게 SQL을 만들어서 쿼리하는 식으로 가는건가?
-> 결론... sql을 몰라도 (여러 DB를 다룰때..) 정책적으로 SQL 생성이 가능하도록...



# ERD 

여기까지 MVC!
-------------------------------------------------------------------------

root@ubjuno-contnet:~# vi /usr/lib/python2.7/dist-packages/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py
: ovs를 구동시키는 소스들이 다 들어있네

* 전통적인 아주 예전 스타일의 소스코드 스타일인 이유.... 
- 스레드 풀을 받아오기 위해 일수있어,
- 하지만 인프라에대한 소스인데 어쩜 이럴 수 있지?


root@ubjuno-contnet:~# vi /usr/lib/python2.7/dist-packages/neutron/agent/dhcp_agent.py
* dhcp agent
- 런처(server)처럼 떠있다가 dnsmasq를 제어하는 형식





할거 많다...............

------------------------------------------------------------------
 453  tree -L 1 /usr/lib/python2.7/dist-packages/
 454  tree -L 1 /usr/lib/python2.7/dist-packages/keystone
 455  tree -L 1 /usr/lib/python2.7/dist-packages/keystone/auth/
 456  tree -L 1 /usr/lib/python2.7/dist-packages/keystone/middleware/
 457  tree -L 1 /usr/lib/python2.7/dist-packages/keystone/assignment/
 458* tree -L 1 /usr/lib/python2.7/dist-packages/keystone/assignment/b
 459  tree -L 1 /usr/lib/python2.7/dist-packages/




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

[이 외...]

oslo
분산처리
하둡
디자인패턴

파이썬 <-> R 











+ Recent posts