2016년 12월 7일 수요일

windows 2008 r2 TLS v1.2 활성화

WWDC 2016에서 앞으로 앱 -> 서버 접속이 필요한 경우 서버는 TLS v1.2 를 지원해야 한다는 발표가 있었다.

적용 시기는 2017년 1월 1일부터라고 들었던 것 같은데.....

몇 일전부터 안되는 듯 하다.

참고 :
http://nopdin.tistory.com/1818
https://forums.developer.apple.com/message/156662#156662

그래서 서버(windows 2008 r2)에 TLS 1.2 를 활성화 해야한다.

windows 2008 r2 서버의 TLS 1.2 활성화 방법은 아래를 참고하여 진행하였다.
참고 :
http://www.sysnet.pe.kr/2/0/1834
https://community.spiceworks.com/topic/589388-enable-tls-1-2-and-tls-1-1-on-a-2008-server

registry 수정
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000

그런데 위 레지스트리 추가 후 서버를 재시작하였으나, TLS 1.2 적용이 되지 않았다.

TLS 적용 확인 여부는 아래 사이트에서 확인할 수 있다.

https://www.ssllabs.com/ssltest/index.html

쨌든.... 레지스트리 수동 추가로 진행한 방법이 적용되지 않아서 자동으로 protocol 관련 레지스트리를 추가해주는 IIS Crypto 2.0 을 사용하여 TLS 1.2 를 적용하였다.

다운로드는 아래 사이트

https://www.nartac.com/Products/IISCrypto

사용법은 서버에 적용할 protocol 등을 선택 후 apply 로 끝난다.


이후 서버를 재 시작하여 적용 여부를 위 사이트에서 확인 및 앱에서 서버 접속을 확인하니 잘되었다.

2016년 11월 24일 목요일

php 로 Active Directory 의 lastLogon 구하기

php로 Active Directory 인증/조회/수정을 할 수 있도록  adLDAP class 를 사용하고 있다.



lastLogon 특성을 매 분마다 수집하여 사용하고자 한다.

그런데 문제는 AD 서버가 2대인데 사용자 인증에 사용된 서버에서만 lastLogon 특성 값이 업데이트가 된다.

그래서 양쪽 서버에서 조회한 값을 비교해서 합쳐주도록 했다.
$options1 = array("domain_controllers" => array("ad1st"));
$options2 = array("domain_controllers" => array("ad2nd"));

$adldap1 = new adLDAP($options1);
$adldap2 = new adLDAP($options2);

$users = $adldap1->user()->all(true,"*", true);
$lastLogons = array();
foreach($users as $id => $name ) {
    $info1 = $adldap1->user()->infoCollection($id, array("*"));
    $mktime1 = round(convertWindowsTimestamp($info1->lastLogon));

    $info2 = $adldap2->user()->infoCollection($id, array("*"));
    $mktime2 = round(convertWindowsTimestamp($info2->lastLogon));

    if( $mktime1 >  $mktime2 ) {
        $mktime = $mktime1;
        $auth = "ad1st";
    } else if( $mktime1 < $mktime2 ) {
        $mktime = $mktime2;
        $auth = "ad2nd";
    } else {
        $mktime = $mktime1;
        $auth = "ad1st";
    }

    $lastLogon = date("YmdHis", $mktime);
    $lastLogons["$id"] = array("auth" => $auth, "lastlogon" => $lastLogon);
}

전체 사용자 정보를 담은 인스턴스를 생성 후 각 사용자 마다 lastLogon 정보를 찾아서 비교 후에 다시 배열로 저장했다.

그런데 lastLogon 의 값은 linux 의 mktime() 값과 다르기에 convertWindowsTimestamp()를 사용하였다.

function convertWindowsTimestamp($wintime) {
   return $wintime / 10000000 - 11644473600;
}


2016년 10월 18일 화요일

Xenceter 6.1 에서 ubuntu 16.04 설치 후 vm 시작 시 오류


ubuntu 16.04 를 설치가 완료된 후 vm 시작 시 아래와 같이 오류가....

The bootloader for this VM returned an error -- did the VM installation suceed? Unable to find partition containing kernel.


여러 이유가 있겠지만 내가 해결했던 방법은


위 링크에서 처럼

xenserver console 에서 /usr/lib/python2.4/site-packages/grub/GrubConf.py 파일을 수정

if arg.strip() == "${saved_entry}":
    arg = "0"
>> 부분을 아래 처럼 수정 후 vm 시작이 정상적으로 되었다.
if arg.strip() == "${saved_entry}":
    arg = "0"
elif arg.strip() == "${next_entry}":
    arg = "0

* xencenter 에 ubuntu 16.04 template 추가는 아래 링크를 참고 함





2016년 9월 21일 수요일

jira login 후 dashboard 로딩 관련 트러블슈팅

JIRA Software 를 급하게 설치 후 운영중이다.

그런데 login 이후 dashboard 가 로딩되기까지 오래 걸리는 증상이 발생하였다.

1. 방화벽에 icmp 설정 추가
2. 1번 조치 취한 후 하루가 지난 후부터 다시 로그인 시 dashboard 로딩이 오래 걸림
  • /var/atlassian/application-data/jira/log/atlassian-jira.log 내용을 살펴보니
    failed: Connection time out 발생
  • /etc/hosts 파일에 127.0.0.1 domain 추가
  • jira 재 시작 이후 증상 사라짐

2016년 7월 14일 목요일

centos static ip 설정

centos static ip 설정하기

ifconfig 로 인터페이스 이름 확인
# ifconfig 
...
...
# cd /etc/sysconfig/network-scripts 

ifcfg-인터페이스명  파일을 편집기로 수정
예)
DEVICE=eth0
HWADDR=0c:c4:7a:xx:xx:xx
IPADDR=192.168.202.2
NETMASK=255.255.255.0
GATEWAY=192.168.202.1
DNS1=192.168.20x.xx
DNS2=192.168.20x.xx
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPV6INIT=no

서비스 재 시작
# service network restart 

2016년 7월 5일 화요일

Docker OSX Volume mount


mac 에서 Docker(Docker for MAC)를 사용하게 됐다.

로컬 디렉토리를 docker container 의 volume 과 마운트를 하려고 하는데... 제대로 되지 않는다.

아래는 정상적으로 마운트되지 않는 방법(?)

/data/volume-test 라는 디렉토리를 만들고 권한을 현재 로그인 사용자로 부여했다.

$ sudo mkdir /data/volume-test

$ sudo chown -R devmimic:staff /data/volume-test


container를 실행한다.

$ docker run -it --name volume-test -v /data/volume-test:/data ubuntu /bin/bash

root@090813b56cf6:/# touch /data/test


Ctrl + P, Ctrl + Q 를 순서데로 입력하여 container 에서 빠져 나온다.

$ ls -al /data/volume-test


container 에서 생성한 test 파일이 보이지 않는다...

$ touch /data/volume-test/test2

$ docker attach volume-test

 Enter 2번 

root@090813b56cf6:/# ls -al /data


역시 로컬에서 생성한 test2 파일이 보이지 않는다.

그래서 찾아보니....

If you are using Docker Machine on Mac or Windows, your Engine daemon has only limited access to your OS X or Windows filesystem. Docker Machine tries to auto-share your /Users (OS X) or C:\Users (Windows) directory. So, you can mount files or directories on OS X using.
http://docs.master.dockerproject.org/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume

결론
mac os 로컬 디렉토리를 마운트하려면 경로를 ~/directory 로 지정해라.

~/directory == /Users/현재로그인계정/directory

쓰다보니 귀찮아져서 결론은 짧게 ㅎㅎ

다른 디스크 볼륨의 디렉토리를 마운트한다면?

ln -s 로 심볼릭 링크를 현재 로그인 계정 디렉토리에 만들면 된다.









2016년 6월 10일 금요일

Mac OS terminal color setting and vim setting


아래의 코드를 ~/.bash_profile 에 추가한다.
#terminal color
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

vim 에서 줄번호 표시를 하거나 tab 공백 크기등의 설정은 ~/.vimrc 파일에 아래 내용을 추가한다.

filetype plugin indent on
syntax on
set tabstop=4
set ruler
set number

2016년 5월 27일 금요일

Failed to parse SourceMap

Chrome 업데이트 후 개발자 도구에서 아래 그림과 같이 Failed to parse SourceMap 알림 메시지가 보인다.


해당 메시지는 개발자도구 > 설정(F1) 에서 변경 가능하다.
업데이트 후 기본 옵션이 선택된 상태로 변경이 된 것 같다.

위 그림과 같이 붉은색 네모 박스의 옵션이 켜져 있다.

위 옵션을 제거 후 새로고침을 해보면 Failed to parse SourceMap 알림 메시지는 사라진다.

SourceMap 에 대해서는 링크로 대체한다.
https://blog.outsider.ne.kr/916
- http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/



2016년 5월 13일 금요일

mac os 에서 python 개발 환경 구성하기

1. homebrew 설치(설치되어 있다면 pass)
: homebrew 는 mac os 용 팩키지 관리 툴이다.
terminal.app 실행 후

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

xcode 설치 한적이 없다면 xcode command line developer tools 설치를 하게된다.
xcode 설치 후 license agree 가 필요하기에 실행 후 agree 하도록 한다.

2. pyenv(파이썬 버전 관리) 설치하기
$ brew update
..
..
$ brew install pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

3. pyenv-vitualenv(개발 환경 관리) 설치하기
$ brew install pyenv-vritualenv
..
..
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

설치 이후 터미널을 재 시작하여 pyenv version 을 보자
system 밖에 안 보인다면 어찌 해야 할까?

pyenv install -list 를 하면 pyenv 설치 할 수 있는 목록이 나온다.
$ pyenv install 2.7.11
..
$ pyenv install 3.5.1
..
등 원하는 버전을 설치한다.

zlib extention 관련 error 가 발생한다면 아래와 같이 설치한다.
$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 2.7.11
..
$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v 3.5.1
..
pyenv versions 를 하면 설치된 버전을 확인 할 수 있다.
$ pyenv virtualenv 2.7.11 venv2711 #가상 환경 생성

$ pyenv activate venv2711 #가상 환경 실행
가상 환경 종료 시
$ pyenv deactivate

4. 각 버전 별 개발 환경 구축하기
: 가상 환경이기에 sudo 를 사용하지 않음
4-1. pip 설치
easy_install pip

4-2. django 설치
pip install Django==1.9.6 #설치할 버전


* pyenv에서 설치할 버전이 보이지 않는다면? pyenv 를 업그레이드 해줘야 한다.
brew upgrade pyenv-virtualenv

2016년 4월 25일 월요일

MAC OS X + XAMPP

MAC 에 XAMPP 설치를 해보자.

XAMPP 란? Apache + MariaDB + php + perl 을 포함한 PHP 개발 환경을 제공하는 오픈 소스 패키지다.

설치 파일은 아래 링크에서

https://www.apachefriends.org/index.html

설치는 패키지 파일을 더블 클릭 > next 클릭으로 완료된다.

manager-osx 를 실행해보면 Apache Web Server 는 실행 중이다.

MySQL Database Server 를 시작 후 터미널을 열어 root 암호를 설정해야 한다.

초기 설치 시 default root 암호는 설정 되어 있지 않으니 필히 설정하도록 하자.

/Applications/XAMPP/bin/mysqladmin --user=root password "newpass"

이후 phpMyAdmin 을 접속해보자.

주소창에 http://localhost 입력 후 우측 상단의 phpMyAdmin 을 클릭하면....

어라? 접근이 거부된다!는 당연한 것이.. phpmyadmin 설정을 변경해야한다.

/Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php
..
$cfg['Servers'][$i]['password'] = 'newpass';

에 위에서 변경한 암호를 입력해야 한다.

이후 http://localhost/phpmyadmin 에 접속해보면 바로 접속이 되는 것을 확인 할 수 있다.

그런데... config.inc.php 파일에 계정 정보를 기록하는것이 좀 그렇다.

그럴경우에는 auth_type 을 http 로 변경해 주자. 물론 http 로 변경 할 경우 user 와 password 는 공백으로 수정해야 한다.

$cfg['Servers'][$i]['auth_type'] = 'http';

auth_type 과 관련한 내용은 아래 링크를 참고하자.

https://wiki.phpmyadmin.net/pma/Auth_types




2016년 3월 30일 수요일

Notepad++ ftp 로 AWS EC2 인스턴스 접근

Editplus ftp 로 AWS EC2 인스턴스 접근글에 이어서 이번에는 notepad++ 로 접근하는 방법을 알아본다.

Editplus 설정법은 아래 링크에서...
http://commonkb.blogspot.kr/2016/03/editplus-ftp-aws-ec2.html

Notepad++ 는 아래 링크에서 다운로드 할 수 있다.

https://notepad-plus-plus.org/download/

Notepad++ 는 프리웨어로 GPL 라이선스이다.

Notepad++ is a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.

1. Notepad++ 를 실행 후 플러그인(NppFTP)을 설치해야한다.


위 이미지는 이미 nppftp를 설치한 상태이다. Available 탭에서 NppFTP를 검색하여 설치하면 된다.

2. NppFTP 를 설치하면 우측에 FTP windows 가 추가된다.
FTP windows 를 닫았을 경우에는 플러그인 > NppFTP > show NppFTP window 를 체크하면 된다.

3. 톱니바퀴 > Profile settings 에서 새 연결 정보를 등록하자.

4. Connection 탭에서 입력 할 부분은 다음과 같다.

  • Hostname : Public DNS or IP
  • Connection type : SFTP
  • Port : 22
  • Username : ubuntu
5. Authentication 탭에서 변경 할 부분은 다음과 같다.

6. 5번에서 등록하는 프라이빗 키는 EC2 생성할 때 다운로드 한 키 페어(.pem)를 변환 없이 등록하면 된다.

쓰고보니 editplus 보다 훨씬 쉽네....




쉽게 쓸수 있는 웹 이미지 에디터 - pixlr

간단한 이미지 편집을 할 때 주로 사용하는 이미지 에디터를 소개한다.


https://pixlr.com/editor/

간단한 작업(모자이크, 편집 등 )은 pixlr 로 다 가능하다.




Editplus ftp 로 AWS EC2 인스턴스 접근

인스턴스 생성 후 키 페어(.pem) 파일을 다운로드 받았다면

아래 링크의 아마존 가이드를 참고하여 프라이빗 키로 변환을 한다.

http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html

키 변환에 필요한 puttygen 은 아래 링크에서 다운로드

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


1. Editplus 를 열고 ftp 설정을 열어보자.



2. 추가 버튼을 클릭하고 ftp 서버에 EC2 인스턴스의 Public DNS or IP 를 입력한다.
  Username 에는 ubuntu


3. 암호화 셀렉트 박스에는 sftp(aes128-cbc) 또는 sftp(3des)를 선택하고 Pageant 사용에 체크한다.


4. Pageant 를 실행 후 (실행하면 트레이 아이콘에 활성화 된다.) 마우스 우클릭 Add Key 로 프라이빗 키를 선택한다.




5. 이후 Editplus 에서 ftp 접속을 해보자.

Editplus ftp 접속할때에는 항상 pageant 가 활성화(add key)되어 있어야 한다.






2016년 3월 29일 화요일

Ubuntu APM(apache2 + php5 + mysql) 설치

apache2 + php + RDS(mysql) 를 사용해야 할 일이 생겼다.

우선 Ubuntu instance 생성 후

$sudo apt-get update 

를 실행한다.

1. apache2 설치

$sudo apt-get install apache2

2. php5 설치

$sudo apt-get install php5

3. RDS 를 사용할 것이기에 mysql 은 client 로 설치한다.

$sudo apt-get install mysql-client

4. php5 + mysql 연동

$sudo apt-get install php5-mysql

3번에서 mysql-server 로 설치할 경우에는 

$sudo apt-get install mysql-server


apache2 vitualhost 설정

cp /etc/apache2/sites-available/000-default /etc/apache2/sites-available/example.com.conf

default 파일을 example.com 용으로 복사

ServerAdmin, ServerName, DocumentRoot 등의 설정 후

vi /etc/apache2/apache2.conf 

에 Directory 설정 추가

이때 유의 할 점은 apache2 버전이 2.2 일 경우에는 

Order allow, deny

Allow from all

apache2 버전이 2.4 이상일 경우

Require all granted

로 설정한다.

그렇지 않으면.... error.log 에서 'client denied by server configuration' 오류를 볼 수 있다.

vitualhost 활성화

sudo a2ensite example.com

sudo service apache2 restart


vitualhost 비활성화

sudo a2dissite example.com

sudo service apache2 restart





2016년 1월 16일 토요일

웬열! 어남택이라니...

웬열! 어남택이라니...

그동안 재밌게 봤었는데.... 20화 보기가 싫어졌다.

완전 실망이다.

응답하라 1998 19화를 본 후....





2016년 1월 5일 화요일

windows 10 메일 및 일정 앱에서 동기화가 안될 때

windows 10 의 기본 메일 앱에서 계정 추가로 추가한 계정은 동기화가 잘되는데 기본 계정은 동기화가 되지 않는다.

기본 계정을 삭제하고자 했지만, 계정 삭제가 활성화 되지도 않았다.

구글링 중 찾은 방법은 windows powershell 을 관리자 권한으로 실행 후 아래 명령어를 실행한다.

Get-AppxPackage *windowscommunicationsapps* | Remove-AppxPackage

위 명령어를 실행하면 메일 및 일정 앱이 삭제가 된다.

이후 설정 > 계정 > 내 메일 및 계정에서 기본 계정이 삭제가 가능했다.

이 부분은 조금 애매한데... 다른 앱에서 사용하는 계정 중 microsoft 계정을 삭제 후에 기본 계정이 된 것 일수도 있다.

기본 계정 삭제 후 시스템을 재 시작한다.

로그인 후 스토어에서 메일 및 일정 앱을 재 설치한다.

이후 메일 앱을 실행하여 계정을 추가하고(기본 계정은 삭제하였으니...) 동기화를 진행하면 잘 되었다.

아래는 참고했던 microsoft forum 글이다.

http://answers.microsoft.com/en-us/windows/forum/windows_10-security/windows-10-mail-not-syncing/d4156ffa-326d-497d-ac9a-79e86cc6ae96?auth=1

--------------------------------------------------------------------
추가 사항 위와 같이 진행 후 구글 계정을 추가하려고 하니 아래 오류 코드 발생
0x8007042b
windows 10 메일 앱에서 구글 계정 추가가 안되는 사항이 많은가 보다....

아래 링크의 내용을 쭉 살펴보다가 해결되었다는 글이 있어서 시도해보니 잘 되었다.

http://answers.microsoft.com/en-us/windows/forum/apps_windows_10-outlook_mail/cant-add-gmail-account-to-windows-10-mail-app/97d4e308-54a8-4afe-b74f-501b1ea0fa2a?page=15

방법은


  1. 시작 > 실행 > services.msc 입력 후 "Credential Manager" 서비스를 찾는다.
  2. "Credential Manager" 서비스를 중지 후 시작 유형을 자동으로 변경 후 시스템을 재 시작한다.
  3. 구글 계정 추가가 가능해졌다 ^^


서비스만 종료 후 서비스 재 시작해보았으나, 같은 오류 코드가 발생된다.
시스템 재 시작을 꼭 해야 하는 것 같다.