서버쪽 개발을 하는 사람들을 보면 다들 자기만의 툴사용 방식이 있는데,

나같은 경우 putty로 직접 서버에 붙어서 하는 편이다.


들어가기 앞서 내가 보았던 서버 개발 방식을 몇가지 이야기하려하는데 잡설이므로 스크롤을 내려도 좋다.

조금내려서 1. Vundle 다운로드 항목부터 보시길.


가장 기본적인 방법으로는 로컬컴에서 코딩을 한 후 그 수정본을 ftp로 업로드해서

확인해보는 것이다.

이 방법은 '서브x임' 같이 자신이 평소 사용하던 편집기를 사용할 수 있다는 점을 장점으로 꼽을 수 있다.

그런데 이건 매번 수정할 때마다 업로드를 위해 '파일x라'같은 ftp 툴을 이용해야 한다는 점이 매우 번거롭다.


이보다 좀 더 진화한 방법은, 로컬컴에서도 같은 서버를 만들어 놓고, 로컬에서 테스트를 거치면서 개발을 하다가 메이저한 업데이트가 있을 때에만 서버에 소스를 업로드하여 동기화하는 것이다. 

이 방법은 처음에 언급했던 방법에서 장점은 그대로 보존하고 단점은 보완한 방식이라고 할 수 있다. 

하지만 이러한 방식은 윈도우-리눅스 간의 크로스 플랫폼을 지원하지 않는 서버 프로그램엔 적용할 수 없다는 단점이 있다.

뭐 단점이라고 해봤자 대부분 지원하니까 크게 느껴지진 않을테지만 말이다.

대신 크로스 플랫폼을 지원하는 프로그램이더라도 플랫폼마다 설정방식의 차이가 있어 버그가 발생할 수 있는 경우를 고려해야 한다.

그리고 이 방식은 서버에 직접 붙어서 작업을 하는 것이 아니므로 작업하다 뭔가를 날리거나 하는 등의 실수를 하더라도 안전하다는 장점이 있다.

이런 점에선 내가 사용하는 방법보다 더 좋다고 볼 수 있다.


마지막으로 내가 사용하는 방법은 앞에서 말했듯이 그냥 바로 서버에 붙어 작업하는 것이다.

오로지 콘솔만으로... 문자로만 이루어진 스크린을 앞에 두고 과거 선인들이 느꼈던 고뇌(?)를 몸소 체험해 가면서 말이다.

이러한 방식의 장점은, 개발할 수 있는 장소가 물리적으로 한정되어 있지 않다는 점이다.

위에서 서술했던 두 방법은 평소 자신이 작업하던 환경이 아닌 새로운 곳에서 작업을 하려면 개발환경 세팅을 처음부터 다시해야 한다.

하지만 서버에 직접 붙는다면 처음 한번만 하고나선 나중에 터미널로 붙기만 하면되니, 직장에서든 집에서든 PC방(?)에서든 작업을 이어서 할 수 있다. 

PC방같이 공개장소에서 접속하는 경우 PK관리같은 각별한 보안 관리가 필요하겠지만...

뭐 암튼 그런 장점이 있다.

단점이라면... 그 외 모든것?

ㅋㅋㅋ 그래도 일단 익혀두면 그 성취감과 편리함이 단점들을 모두 커버하는 것 같다.



1. Vundle 다운로드

vi 플러그인 관리자 툴인 Vundle 을 다운로드하자.

먼저 git이 필요하다. git을 설치하자


root@glassylife:~# apt-get update
root@glassylife:~# apt-cache search git | grep '^git '
root@glassylife:~# apt-get install git

일단 나는 root 로 접속했기 때문에 그냥 했는데 일반계정으로 접속했다면


NormalAccount@glassylife:~# sudo apt-get update

와 같이 실행하려는 명령어 앞에 sudo를 붙이면 된다.

만에 하나 sudo를 사용해도 권한에러가 발생한다면 구글에 "sudoers"라는 키워드를 이용해 검색해보라.


일반 유저래도 흙수저 은수저가 있다. sudo를 사용할 수 있는 은수저가 되기 위해선 sudoers 라는 그룹에 속해 있어야 한다.

update는 로컬과 원격의 패키지 저장소의 데이터를 싱크시켜주는데 패키지를 설치할 때 습관적으로 한번씩 해주자.

패키지 저장소라고는 했는데, 말에 조금 어폐가 있지만 딱히 적당한 표현이 생각나질 않아서 일단 그냥 두고 나중에 수정해야겠다.

여기서 말하는 패키지 저장소는 실제로 패키지의 바이너리 데이터를 보관하는 게 아니라 패키지의 바이너리 데이터가 어디에 있는지, 버전은 몇인지와 같은 메타데이터를 관리하는 저장소이다.


apt-cache search 는 로컬 패키지 저장소에 찾으려는 패키지가 있는지 검색한다. 

없으면 패키지가 있는 원격저장소를 직접 찾아 등록시켜줘야한다.

대부분 잘 될것이기 때문에 이 명령어는 사용하지 않아도 되지만, 혹시라도 다음과정에서 git 패키지 설치가 안 되는 분은 로컬 저장소에서 git을 검색해 있는지 확인해 보고 없다면 갓-구글에게 "restore ubuntu default repo"나 이와 비스무리한 키워드로 검색해보길 바란다.

다음으로 apt-get install git 명령어로 git을 설치한다.


이제 git으로 Vundle 소스를 clone 한다. 


root@glassylife:~# git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim




2. Vundle 설정 및 플러그인 설치

별거 없다. Vundle 깃헙에 있는 Quick Start 항목을 그대로 따라한다.

Vundle 소스를 받은 후 ~/.vimrc 파일을 수정해준다. 없으면 만들어 준다.


root@glassylife:~# vi ~/.vimrc


일종의 vim 스크립트 파일인데 다음과 같은 코드를 넣어줘야 vi를 사용할 때 Vundle이  작동한다.


set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http://vim-scripts.org/vim/scripts.html Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git'

" The sparkup vim script is in a subdirectory of this repo called vim. " Pass the path to set the runtimepath properly. Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line


나중에 플러그인을 추가할 때 여기에서 플러그인을 눈치껏 추가해주면 된다. 

소스 중간쯤에 보이는 Plugin 'plugin_name' 과 같은 형식으로 추가해주면 된다.

그럼 플러그인 추가 방법도 알았겠다 NERDTree를 추가해보자


참고로 NERDTree 플러그인은 pwd를 기준으로 디렉토리 구조를 비주얼라이징 해주거나 파일을 열 수 있도록 도와준다.

코딩을 하다보면 여기저기에 나눠진 소스들을 확인하고 수정하게 되는데,

이 때 소스경로를 직접 입력하지 않고도 파일에 접근 할 수 있게 도와준다.

써보면 안다 얼마나 편한지를...


다음과 같이 rstacruz/sparkup 다음줄에 밑의 소스 2줄을 추가해준다.

참고로 쌍따옴표(")는 주석이다.


...
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" NERDTree Plugin
Plugin 'scrooloose/nerdtree'


코드를 넣었으면 저장을 하고, 닫는다.

그리고 다음 명령어로 플러그인 설치를 한다.


root@glassylife:~# vim +PluginInstall +qall


또는 vim의 명령어 모드에서 :PluginInstall 로도 설치할 수 있다.


이제 vim에 들어가서 명령어 모드에서 :NERDTreeToggle 를 입력해 보자

다음과 같이 왼쪽에 뭔가 불쑥 튀어 나온다. 오오...

나는 현재 빈 폴더에서 vi 를 실행시켜서 특이할만한게 없다.



이미지나 직접 확인해 볼 수 있듯이 사용설명을 보려면 '?'을 입력하면 된다.

그 외에 기본적인 사용 방법은 


Ctrl+h,j,k,l 로 윈도우를 옮겨다니거나

:q 로 윈도우를 닫을 수 있다.


3. Vi 설정

매번 명령어를 입력해 NERDTree를 불러오기 귀찮으니까 단축키로 등록해 놓자.

F7키에 등록 시켜놓는게 일반적이다.


다시 ~/.vimrc 파일을 열고 맨 끝에 다음 소스를 추가한다.


...
" map NERT Tree to key 'F7'
nmap <F7> :NERDTreeToggle<CR>


추가한 김에 간단한 vi 설정도 넣자...

마찬가지로 맨 끝에 넣는다


...
" vim settings
set number           " show line number
set ts=2             " tab size is 2 spaces
set autoindent       " use auto indent
set cindent          " use C style indent
set smartindent      " use smart indent
set shiftwidth=2     " shifting size is 2 spaces
set paste            " turn off autoindent when you paste code
set hlsearch         " hilight searching results
set noexpandtab      " turn off auto replacing tab with spaces

뭐... 그럭저럭 쓸만한데 이쁘지가 않다.

color scheme을 지정해보자


다시 .vimrc로 돌아가서.. 플러그인을 추가해준다.

NERDTree 플러그인 추가해줬던 줄 밑에 다음 소스를 추가해 준다


...
Plugin 'scrooloose/nerdtree'
" solarized color scheme
Plugin 'altercation/vim-colors-solarized'


그리고 맨 끝에 다음과 같이 설정을 추가해 준다...


...
" setting soarized color scheme
set t_Co=256
set background=dark
highlight Normal ctermbg=NONE
highlight nonText ctermbg=NONE
let g:solarized_termcolors=256
hi Comment term=bold cterm=bold ctermfg=2
colorscheme solarized


다시 다음 명령어로 플러그인을 설치해주고...


root@glassylife:~# vim +PluginInstall +qall


vi을 열면...! 



알록달록한게 매우 맘에 든다ㅋㅋㅋ 매우 흡족.




4. Plugin 검색

이제 능동적으로 필요한 플러그인을 찾고 설치해보자

플러그인 검색은 vi의 명령어 모드에서 :PluginSearch 를 입력한다.



무슨 플러그인 4000개 씩이나...


그럼 왼쪽에 윈도우가 하나 생기는데 vi에서 일반적으로 단어 찾는 단축키인 / 를 이용해 적당한 검색 키워드를 입력한다.



taglist 라고 검색하니 'taglist-plus'라는 플러그인을 찾을 수 있었다.

이제 이걸 그대로 NERDTree 추가했듯이 ~/.vimrc 파일에 넣어준다.

그리고 :PluginInstall 해주는거 까먹지 말고!!





Posted by nfyfamraa
,




후... 드디어 마지막이네요.


1. VNC를 깝시다!

root@kali:~# apt-get install tightvncserver -y



흠.. 저는 이미 깔려있네요.  아까 업데이트 하면서 깔렸나 봅니다.

이제 tightvncserver 명령어를 실행해서 초기 설정해주면 되는데 저는 캡처를 못 떠서 이건 사진 없이 그냥 적을게요...

root@kali:~# tightvncserver

이 명령어를 실행시키면 vnc에 접속할 때 비번을 설정하라고 합니다.

vncserver 명령어로 서버를 엽니다.

root@kali:~# vncserver

이제 원격지에서 접속을 시도해봅시다.

저는 tiger VNC Viewer 를 사용했습니다.

현재 최신 안정 버전은 1.6.0 버전이며 다음 링크에서 다운받을 수 있습니다.

https://bintray.com/tigervnc/stable/tigervnc/1.6.0




안되네요.




2. VNC 화면을 마테로 설정하자!

회색화면이 뜨는 이유가 적절한 데스크탑 어플리케이션을 못찾기 때문이라는 것 같네요.

데스크탑을 마테로 설정해 줍시다.

먼저 마테를 설치합니다.

root@kali:~# apt-get install mate-core mate-desktop-environment-extra* mate-themes



마테 설치가 끝나면 계정의 홈 디렉토리의 .vnc/xstartup 파일을 vi로 열어서 수정해 줍시다.

root@kali:~# vi ~/.vnc/xstartup



이제 저장하고 기존에 열었던 서버는 닫고 다시 열어 봅시다.

root@kali:~# vncserver -kill :1
root@kali:~# vncserver


kill 옵션 뒤에 쌍따옴표와 세션 번호를 적게되는데 vnc 서버를 열 때마다 비어있는 순서대로 세션번호가 할당됩니다.

그리고 기본설정으로 각 각 세션에 590x 포트가 할당되죠.

x는 세션번호로 1번 세션에는 5901 포트가 2번 세션에는 5902 포트가 할당되는 식입니다.

어떤 세션이 열렸는지 확인하고 싶을 때에는 다음 명령어를 사용하면 됩니다.

root@kali:~# netstat --tcp -an | grep 590*


자 이제 정말로 접속해 봅시다!



위 사진처럼 서버 주소와 세션번호를 적어주면 됩니다.

포트번호로 지정해주고 싶을 땐 아래처럼 콜론 두개를 쓰면 됩니다.



이제 처음에 설정했던 vnc 접속 비밀번호를 입력해주면...



접.속.







귿귿 ㅎㅎ

Posted by nfyfamraa
,




후... 이제 VMware 를 설치해봅시다.

제가 VMware 를 설치하는 이유는 칼리 위에 여러개의 취약점 서버를 만들어 놓고 사용하기 위해서입니다. 매번 서버 바꾸려먼 설정하기 귀찮으니까 사용할 서버 몇개 동시에 올려 놓자는 거죠. 


* 설치하기 위해선 제일 먼저  루트 권한이 필요합니다

1. 자 VMware 홈페이지에 들어가서 최신버전을 다운받습니다.

http://www.vmware.com/products/player/playerpro-evaluation.html

현재 최신버전은 VMware-Player-12.1.1-3770994.x86_64.bundle 이네요




2. 설치받은 스크립트를 실행시킵니다

실행시기 전에 먼저 실행 권한을 주어야 합니다.

터미널을 키고 다음 명령어로 실행권한을 추가하고 ls -l 명령어로 실행권한이 잘 적용 되었는지 확인합니다. 그리고 나서 실행!

root@kali:~# chmod u+x 다운로드/VMware-Player-12.1.1-3770994.x86_64.bundle
root@kali:~# ls -l 다운로드/VMware-Player-12.1.1-3770994.x86_64.bundle
root@kali:~# 다운로드/VMware-Player-12.1.1-3770994.x86_64.bundle



다음과 같이 GUI 가 뜨면서 사용 약관에 동의 하냐고 묻습니다.

2번이 나오는데 두 번다 Yes.



실행시마다 업데이트 확인할 건지 묻는건데 저는 No



VMware software 에 사용자 정보를 제공할 것인지 묻는데 저는 No.



라이센스키를 묻는데 이건 빈공간으로 남겨놓고 Next를 눌러 패스합니다.



마지막으로 Install을 누르면 설치가 시작됩니다.



설치가 모두 끝나고 나선 Close를 눌러 닫아줍니다.




3. VMware 에 이미지를 돌려보자!

시작키를 누르고 또는 왼쪽 바로가기 패널에서 맨 아래에 있는 메뉴버튼을 누르고, vmware 라고 입력하면 설치된 프로그램중에서 vmware를 찾아줍니다. 



눌러서 실행해보면 다음과 같이 현재 실행중인 커널과 C 헤더 파일이 안 맞네 어쩌네 하면서 에러를 뱉네요.

다음 명령어로 커널 헤더파일을 설치합니다.

root@kali:~# apt-get install linux-headers-$(uname -r)

헤더파일을 설치하고 나서 다시 vmware 를 실행해보면 또 에러나네요...ㅎㅎ



4.4 버전 이 후로는 vmware를 설치하기 위해서 c코드를 조금 수정해야 한다는군요.

root@kali:~# tar -xvf /usr/lib/vmware/modules/source/vmmon.tar
root@kali:~# sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmmon-only/linux/hostif.c
root@kali:~# tar -cvf vmmon.tar vmmon-only
root@kali:~# mv vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar

먼저 vmmon.tar 파일을 현재 위치에 압축을 풀고 hostif.c 파일내의 get_user_pages를 get_user_pages_remote 로 치환해 줍니다. 

그후 다시 tar로 묶고 원래 파일과 바꿔줍니다.

이 과정을 vmnet.tar 의 userif.c 파일에 대해서 반복해 줍니다.

root@kali:~# tar -xvf /usr/lib/vmware/modules/source/vmnet.tar
root@kali:~# sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmnet-only/linux/userif.c
root@kali:~# tar -cvf vmnet.tar vmnet-only
root@kali:~# mv vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar


rm -rf 명령어로 임시로 작업했던 폴더를 지워줍시다.

root@kali:~# rm -rf vm*-only


자 이제 다시 vmware 를 시작해 봅시다.

이번에는 컴파일이 잘되었네요. 



이메일을 입력하라고 합니다. 입력해 줍시다.

후... 드디어 설치 했네요!





4. 마지막, 포트포워딩 설정 하기

이제 이미지를 돌려 봅시다. 저는 OWASP 이미지를 돌려보겠습니다.

그리고 ifconfig 명령어로 OWASP IP를 확인 봅니다.



192.168.219.128 이네요.

칼리의 터미널로 돌아와서 네트워크 에디터를 열어봅시다.

먼저 bin 폴더에 에디터를 링크시켜 놓고 vmware-netcfg 로 에디터를 실행합니다.

root@kali:~# ln -s /usr/lib/vmware/bin/vmware-netcfg /usr/bin/vmware-netcfg
root@kali:~# vmware-netcfg



vmnet8 을 선택하고 NAT Settings를 클릭합니다.



Port Forwading 의 Add 버튼을 클릭해서 포트포워딩을 지정해 줍니다.



Host port 가 외부에서 호스트 컴인 칼리로 접속할 포트고,

IP Adress 는 owasp 에 할당된 ip입니다. 아까 ifconfig로 확인 했었죠?

Virtual machine port 는 owasp 에 연결할 포트이고 

Description 에 대략적인 설명을 적습니다.

이렇게하면 칼리의 20080 포트로 오는 데이터들이 owasp 80 포트로 들어오게 되죠.

사진은 192.168.129.128로 적혀있는데 제가 잘못 입력하고 캡쳐뜬거라서 192.168.219.128 로 다시 입력했습니다.

Save -> Save 를 눌러주면 설정이 끝났습니다!

이제 같은 네트워크의 다른 시스템에서 접속해 보죠.



잘 되네요!



그럼 끗!

Posted by nfyfamraa
,




우분투는 자동으로 시행되게 설정된채로 배포되는데 칼리는 아닌가 보네요.

다음 명령을 이용해서 자동으로 시작하게 만들어 줍니다.

root@kali:~# update-rc.d ssh defaults



뭐라고 뜨네요. 자동시작에 등록된 서비스를 지우고 다시 설정해 줍니다.

root@kali:~# update-rc.d ssh remove
root@kali:~# update-rc.d ssh defautls



그리고 재시작 ㄱㄱ

재시작 후 다음 명령어로 서비스가 잘 실행되었는지 확인합니다.

root@kali:~# service ssh status

그럼 잘 실행될 수도 있고 위 사진처럼 inactive라도 뜰 수도 있습니다.


실행이 안된경우 vi로 /etc/rc.local 파일을 수정해 줍시다

root@kali:~# vi /etc/rc.local

아래 사진 처럼 exit 0 위에 다음을 입력해 줍니다.

/bin/sh -e /etc/init.d/ssh start


저장을 하고 재부팅을 시켜보면 정상적으로 실행된 것을 확인할 수 있습니다.


간단하게 설명하자면 리눅스는 부팅 레벨을 구분하고 레벨에 따라 부팅 방식이 달라지는데 level 3의 경우 콘솔로 부팅하게 되고 level 5 의 경우 GUI로 부팅하게 됩니다.

이 때 각 레벨에 따라 부팅시 실행될 서비스를 rcX.d/ (이 때 X는 런레벨입니다) 폴더에 관리하는데 폴더내용을 보면 실행될 서비스에 대해 심볼릭링크가 걸려있습니다.

여기서 링크를 직접 추가하지 않고 update-rc.d 명령어로 자동으로 추가하게끔 만들 수 있습니다.

하지만 칼리의 경우 update-rc.d 로 추가하고 rc5.d/ 폴더에 링크가 잘 담겨 있는것 까지 확인했는데도 자동으로 실행이 안되더라구요.

이 때 각 런레벨에 맞는 폴더에 담긴 링크들에 연결된 서비스들을 다 실행하고 마지막으로 공통으로 실행되는 스크립트가 rc.local입니다.

그래서 rc.local 스크립트 파일에 자동 실행되도록 직접 스크립트를 넣어준 겁니다.


끗!

Posted by nfyfamraa
,



얼마전에 침투 테스트 실습 환경 구축하기로 글을 올렸었는데 나중에 문제가 생겼는데 해결이 안되는것도 있고 제대로 정리되지가 않은 것 같아 이번엔 단계별로 나눠서 다시 올립니다.




1. 먼저 Kali linux 이미지를 받으세요

https://www.kali.org/downloads/

기서 현재 최신 버전을 확인할 수 있으며 저는 풀버전으로 받을거기 때문에 

"Kali Linux 64 bit" 이미지를 받았습니다.




2. 그리고 UUI를 다운받습니다.

http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

USB를 운영체제 부트 디스크로 만드는데 사용하는 툴인제 문서 작성 현재 Universal-USB-Installer-1.9.6.6.exe 버전이 최신이네요.

그때그때 최신으로 받아주시면 됩니다.




3. 이제 USB에 이미지를 굽습니다.

UUI를 실행시키면 먼저 약관동의 어쩌고 나오는데 Agree를 눌러줍니다.

그러면 설정 화면이 나오는데 배포판은 Kali Linux 이구요. 리스트박스에서 맨 아래에 찾아보면 있습니다.


다음으로 Step2. 의 Browse를 누르고 1번에 다운받은 이미지를 선택해 줍니다.

그리고 나서 Step3. 에서 USB를 선택하고 옆에 "We will format D:\ Drive as Fat32" 를 체크해줍니다.

이미 직접 포맷 하셨다면 체크 하지 않아도 됩니다.

다음 사진처럼 되죠?



마지막으로 Create를 눌러주면 아래 사진과 같은 모달박스가 또 뜨는데, 설정 확인하는 부분이니까 OK를 눌러주면 알아서 됩니다.





4. 이제 설치하려는 컴퓨터에 USB를 꽂고 부팅해 줍시다.

이 때 부팅 순서를 USB를 1번으로 해주시는거 잊지 마세요.

사진을 첨부하지 못해서 죄송하지만 글로 설명해 드리자면

부팅할 때 CMOS 창으로 들어가서 부팅 고급 옵션 탭에 들어가면 부팅 순서 바꾸기가 있습니다. 그거 들어가보면 보통 하드디스크나 CD-ROM이 1번인데 현재 꽂은 USB를 1번으로 올려주시면 됩니다. 그러고 나서 저장하고 다시 시작하기 하시면 됩니다.

그럼 용문양 배경에 인스톨 방식 선택하는 화면이 뜬느데 "Graphic Install" 을 선택해 줍니다.




5. 설치하기

다음은 순서대로 사진보고 따라하시면 됩니다.

먼저 언어를 설정하시고, '예' 를 눌러 줍니다.



다음으로 위치와 키보드를 설정합니다.



진행하다 보면 다음과 같이 설치 CD-ROM을 마운트 할 수 없다고 뜨는데



이 때 수동으로 마운트 시켜주어야 하므로 아니요를 눌러주고 다음과 같이 쉘을 실행해 줍니다.



쉘에 진입 하셔서 다음 사진과 같이 

~ # mount [usb위치] /cdrom

명령을 실행해 줍니다.

저는 ls 명령어로 실제 sdb1 가 잘 있는지 확인하였고 마운트 시킨후 다시 ls /cdrom 으로 마운트가 잘 되었는지 확인하였습니다.

컴퓨터에서 인식한 디스크 장치를 순서대로 sda, sdb, sdc 순으로 이름을 할당해 주기 때문에 usb 위치같은 경우 실제 환경마다 조금 씩 다를 수 있습니다.

저같은 경우 하드디스크 하나와 USB하나를 인식 시켰으므로 sda에는 하드디스크, sdb에는 usb가 잡혔습니다.

ls sdb*

명령어를 사용해 보시면  또 sdb sdb1 sdb2... 이렇게 넘버링이 되어있는걸 확인 할 수 있는데 이는 파티션 번호입니다.

숫자가 붙여있지 않은 sdb는 디스크 자체를 가리키며 sdb1은 첫번 째 파티션 sdb2는 두번 째 파티션 이런식이죠.

usb에는 따로 파티션을 나누지 않았기 때문에 sdb와 sdb1만 나타나는 것을 확인 할 수 있습니다.



exit 명령어로 쉘에서 나옵니다.



그리고 다시 "CD-ROM 찾기 및 마운트" 를 시도해 줍니다.

이번엔 인식이 잘되어서 설치가 정상적으로 진행되는데 간혹가다 안되는 때가 있습니다. 아니면 이 다음까진 정상적으로 잘 진행 되다가 GRUB가 설치되지 않을 때가 있는데 USB를 꽂고 뺄 때 데이터가 손상된 것으로 생각 되며 그 때는 USB에 설치디스크 굽는 과정부터 다시 시작해 주시면됩니다.

제건 USB가 오래된것이서 그런지 생각보다 오류가 자주 발생했네요.

저는 세 번이나 에러 났습니다 ㅠㅠ

다음으로 호스트 네임과 도메인을 설정하시면 되는데 전 도메인 이름까지 넣으면 괜히 불편해질거 같아서 사용하지 않았습니다.



다음으로 파티션하기 메뉴가 뜨네요. 저는 멀티부트를 선택할 것이므로 수동으로 파티션을 해주었습니다. 자동을 선택하면 아마 기존에 설치되어있던 윈도우가 날라가겠죠.. ㄷㄷ




파티션을 설정해주면 되는데 전 이미 나누어놨던게 있어서 4번을 포맷 하고 사용하였습니다.



파티션 삭제를 하면 아래 사진처럼 번호가 할당도지 않고 남은 공간으로 표시가 됩니다. 새로 파티션을 나누어야 하실 상황이라면 적당히 용량이 큰 파티션을 선택하셔서 나누시면 되는데, 윈도우가 깔려있는 C드라이브의 경우 (저는 1번 파티션이 C드라이브입니다.) 파티션을 나누게되면 윈도우가 부팅되지 않을 수 있으므로 D같이 운영체제가 설치되어 있지 않은 파티션을 나누길 권장합니다.



새파티션 만들기해서 주 파티션으로 설정하시고...



주 파티션으로 설정하게 되면 위와 같이 자동으로 EXT4 파일시스템으로 설정이되며 마운트 위치가 루트로 됩니다. 논리로 설정하시게되면 직접 선택해줘야 되요.

다음으로 준비를 마쳤습니다를 선택해주시고



파티션 나누기를 마치고 바뀐 사항을 디스크에 쓰기 를 선택합니다.



'아니요' 를 눌러줍니다.



여기선 '예' 를 눌러주면 파티셔닝이 진행되는데요 다 끝나면 루트 암호를 입력해 줍니다.


다음으로 네트워크 미러 사이트를 사용함으로 설정하시고



GRUB를 설치해 줍니다



하드디스크에서 부팅하는 거니까 sda로 선택해 줍니다.



설치 끝! USB를 뺴고 계속을 눌러 리부팅 해줍니다.

* 스크린 샷 찍어놓고 기억에 의존해서 순서 맞춰본거라 순서가 좀 틀릴 수 있습니다.



6. 한글이 깨지네요 한글 폰트를 다운받아 봅시다.

root 와 아까 입력했던 루트 비밀번호를 차례대로 입력해서 바탕화면으로 들어갑니다.

제일먼저 화면꺼짐 설정을 해줍시다.

한글 폰트 설치하는 동안 기다리게 되는데 자꾸 대기모드로 들어가서 불편합니다.

오른쪽 위의 삼각형을 클릭하고 잠자리(?) 아이콘을 클릭합니다



그러면 설정창이 뜨는데 거기서 우선 노란색 전기 모양 버튼을 클릭해서 전원옵션에 들어갑니다



(B) 가 있는 드롭박스를 클릭하고 마지막 아이템을 선택하고 나옵니다.



이번엔 가면 모양을 클릭하고 화면옵션에 들어갑니다


여기서 가장 첫번째 있는 메뉴를 클릭하고...



2개의 on/off 스위치가 있는데 첫번쨰꺼를 off 시켜줍니다



이렇게하면 화면이 안꺼집니다.

다음으로 왼쪽 바로가기 패널에서 터미널을 열고...


다음 명령어를 입력하여 패키지를 최신으로 업데이트 합니다

root@kali:~# apt-get update && apt-get dist-upgrade -y

그리고 나서 나눔 글꼴과 나비 한글 입력기를 설치해 줍니다.

root@kali:~# apt-get install fonts-nanum -y
root@kali:~# apt-get install nabi im-switch -y
root@kali:~# im-config -s nabi
root@kali:~# im-config -c

im-config -c 를 입력하게 되면 설정창이 뜨는데



여기서 엔터



왼쪽꺼로 맞추고 엔터



방향키로 움직여서 hangul로 맞추고 스페이스를 눌러 선택합니다

그리고 엔터


한글 깨짐 이슈는 다음 블로그를 참조했습니당 :)

http://lureout.tistory.com/573




여기까지 전부 마지셨다면 reboot 명령어로 재시작하세요!


끗!

Posted by nfyfamraa
,

곧 있으면 AWS free tier 기간이 끝나서 계정을 하나 새로 파기로 했다.

처음엔 그냥 기존 계정 지우고 나서 재생성하면 다시 1년짜리 프리티어를 받을 수 있을거라 생각했는데 역시나 약은 생각이었다.

계정관리 대쉬보드에 들어가보니 계정 탈퇴 또는 삭제하는 탭은 아예없고 대신에 계정 닫기 탭만 있더라. 

이렇게 계정을 지우지 않고 영구히 보존하는 시스템인가 보다.

그래서 어쩔수 없이 새로운 이멜로 계정을 새로 팠다.

그러고 나서 몇가지 기존 자료들을 새로운 인스턴스로 옮기고 기존의 계정은 인스턴스를 삭제하고 계정 닫기를 하였다.

이거 정말 중요한데 혹시나 나처럼 계정 옮길 예정이라면 기존에 사용하던 인스턴스는 꼭 닫아야 한다.

안그러면 무료기간 끝나고 얄짤없이 과금된다...


암튼 여차저차 새 인스턴스를 만들고 나서 서버 세팅을 하였는데 접속 할때마다 공개키인증을 하는게 넘 귀찮다. 

그냥 갠적으로 사용하는데 중요한 자료를 보관하는 것도 아니라서 공개키인증을 사용할정도로 보안수준을 높힐 필요성을 못 느껴서 간단히 패스워드 인증으로 하고 싶었다.

그래서 장장 몇시간동안 구글링을 통해 찾아본 결과 다음과 같이 SSH 세팅을 하면 되더라


일단 에디터로 /etc/ssh/sshd_config를 연다.

이 파일은 권한이 -rw-r--r-- 로 설정 되어있으므로 root계정또는 sudo로 열어야 한다.

그리고 PasswordAuthentication 를 찾는데, 이게 디폴트로 no일 것이다.

이걸 yes로 바꿔주면 된다.

그럼 세션 접속할 때 키파일 없이 해당 계정의 패스워드만 입력해서 접속하게 된다.


만약 특정 그룹 또는 계정에만 패스워드 인증을하고 나머지에겐 공개키인증을 하게 만들고 싶다면 PasswordAuthentication는 no로 두고 파일의 맨 끝에 다음을 추가한다.


Match ( user | group ) 계정 또는 그룹 이름

PasswordAuthentication yes



예를 들어 schtakadurr 라는 계정만 패스워드 인증을하고 나머진 공개키인증을 하고 싶다면

Match user schtakadurr

PasswordAuthentication yes

로 하면 된다.


여기서 중요한게 이 옵션을 파일의 맨 끝에 추가하지 않고 다른곳에 넣는다면 network error라는 메시지와 함께 접근이 거부된다.


여기까지 설정을 마쳤으면 저장을 하고 

sudo service ssh restart 로 ssh데몬을 재시작 하면 설정 끝


그럼 ㅅㄱ~

Posted by nfyfamraa
,