Google Authenticator를 이용하여 SSH 접속하는 방법에 대해 알아보겠습니다.


많은 서비스들이 이중인증방식(Two-Factor Authentication)으로 OTP를 사용하고 있습니다.

OTP 방식 중에는 시간동기화 방식(TOTP), 이벤트 방식(HOTP), 질의/응답방식이 있으며 그 중에 시간 동기화 방식과 이벤트 방식의 차이점은 아래 표를 참고 하시면 됩니다.


구분 

 내용

 시간동기화 방식

 Time-based One-Time Password (TOTP)

 - 일정시간에 따라 지속적으로 암호값이 변함 (기본 30초)

 - 시간동기화 방식 알고리즘으로 HMAC-SHA1은 HOTP와 같은 방법으로 암호 생성

 - 비밀키와 현재 유닉스 시간을 결합하여 암호 생성 (HOTP(K, TC))

 이벤트 방식

 HMAC-based One-Time Password (HOTP)
 (Hash Message Authentication Code)

 - 이벤트가 발생 시 암호값 생성

 - 이벤트 기반 알고리즘으로 HMAC-SHA1를 이용하여 암호 생성

 - 비밀키와 카운터 값을 결합하여 암호 생성 (HOTP(K, C))


TOTP방식은 암호가 주기적으로 변경되고 짧은 시간동안만 유효하기 때문에 HOTP보다 안전한 방식으로 알려져 있습니다.


Google Authenticator는 위 두가지 방식을 모두 지원하고 있으며, 사용자 서비스에 맞게 원하는 방식으로 구현이 가능합니다.

더 자세한 내용을 원하시면 아래 위키를 참조하시면 됩니다.

https://en.wikipedia.org/wiki/Google_Authenticator


그럼 Google Authenticator 설치를 진행 해 보겠습니다.



** Google Authenticator 설치 과정 **


1. 패키지 설치 (설치확인 후 설치 되지 않은 패키지만 설치)

 # yum -y install git pam-devel autoconf automake libtool gcc 


git : 형상관리 도구로 github에 있는 google authenticator 소스를 복사하기 위한 툴

pam : Google 인증을 사용하기 위한 인증 모듈

Autoconf/automake/libtool : 소스코드 빌드를 위한 툴

gcc : 컴파일러



2. Google Authenticator PAM module 다운로드

 # git clone https://github.com/google/google-authenticator-libpam



3. Build & Install

 # cd google-authenticator-libpam/

 # ./bootstrap.sh

 # ./configure --libdir=/lib64  <-- 64비트일 경우 추가

 # make && make install


※ 리눅스 Bit 확인

# getconf LONG_BIT


위 과정을 완료하시면 /usr/lib64/security 디렉토리 안에 pam_google_authenticator.so 모듈이 설치됩니다.



4. PAM Config 설정

PAM 설정에서 auth required pam_google_authenticator.so nullok 부분을 추가하시면 됩니다.

authenticator.so 뒷 부분은 옵션을 설정하는 부분으로 여러가지 옵션을 사용할 수 있으며,

nullok 옵션은 OTP를 설정하지 않은 User는 OTP인증 없이 로그인 할 수 있도록 하는 옵션입니다.

즉, 모든 User에게 OTP를 적용하려면 nullok 옵션을 빼시면 됩니다.

** OTP 해제하는 방법은 기존 설정은 그대로 두고 해당 부분만 주석 처리한 후 SSH를 재시작 해주시면 기존대로 OTP없이 접속 가능합니다.

 # vi /etc/pam.d/sshd



5. SSH Config 설정

sshd_config 에서 아래 부분에 대하여 사용하도록 설정을 변경합니다.

ChallengeResponseAutientication을 제외하곤 기본값으로 yes로 되어 있을 겁니다.

설정이 완료되면 저장 후 ssh 서비스를 재시작 합니다.

 # vi /etc/ssh/sshd_config

 PasswordAuthentication yes
 ChallengeResponseAuthentication yes
 UsePAM yes

 # service sshd restart



6. 계정 TOTP 설정

아래 파란색 질문에 대하여 Y로 진행하시면 되고, 붉은색의 URL과 Secret Key는 비밀키를 전달하는 데 사용 됩니다.

URL의 경우 QR코드를 통하여 자동 등록하는 방법이며, Secret Key는 직접 수동으로 입력하는 방법이라 둘 중 한 가지 방식으로 선택하여 진행하시면 됩니다. 아래에서는 두 가지 방법에 대하여 설명 드리겠습니다.

 # google-authenticator 

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@localhost%3Fsecret%3D5VNTBITJHEH2GGSVOLTFZMDAKA%26issuer%3Dlocalhost
Failed to use libqrencode to show QR code visually for scanning.
Consider typing the OTP secret into your app manually.
Your new secret key is: 5VNTBITJHEH2GGSVOLTFZMDAKA
Your verification code is 024646
Your emergency scratch codes are:
  60700042
  28183432
  27147472
  84160543
  62329722

Do you want me to update your "/root/.google_authenticator" file? (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, a new token is generated every 30 seconds by the mobile app.
In order to compensate for possible time-skew between the client and the server,
we allow an extra token before and after the current time. This allows for a
time skew of up to 30 seconds between authentication server and client. If you
experience problems with poor time synchronization, you can increase the window
from its default size of 3 permitted codes (one previous code, the current
code, the next code) to 17 permitted codes (the 8 previous codes, the current
code, and the 8 next codes). This will permit for a time skew of up to 4 minutes
between client and server.
Do you want to do so? (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y


여기까지 오셨으면, 서버 작업은 완료되었습니다.

실제 OTP를 사용하기 위해서는 사용자 휴대폰에 Google OTP 앱을 설치하여 진행하여야 합니다.



7. Google OTP 설치 및 등록

Google OTP 추가 방법에는 위에서 말씀 드린 것 처럼 바코드 스캔과 키 입력을 통한 방법이 있으며,

먼저 바코드 스캔을 통한 OTP 등록을 먼저 진행 해 보겠습니다.

아래 순서대로 따라 오시면 됩니다.


①                                                                                                  ②


③                                                                                                 ④





 ** 키 입력을 통한 수동 등록

①                                                                                                  ②




여기까지 Google Authenticator의 설정이 끝났으며, 이제 SSH 접속 시 OTP를 이용하여 접속이 가능합니다.

아래는 PuTTY와 SecureCRT를 이용한 접속 화면이며, SecureCRT의 경우 OTP를 이용하기 위하여 옵션 수정이 필요합니다.


** PuTTY


** SecureCRT





** SecureCRT 옵션 설정 방법

1. Session Options > SSH2 > Keyboard Interactive 순서 변경


2. Keyboard Interactive > Properties > Store password 체크 해제












4년만에 OWASP TOP 10 2017년 RC1 버전이 나왔네요..



아직 확정 버전은 아니지만, 2013년과 비교 했을 때 기본적인 항목에서 크게 변경되는 부분은 없어 보입니다.


취약점 점검 때 많이 참조하고 있는 항목들입니다.


관련 자료는 아래 링크에서 확인 하시면 됩니다.

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project










가상머신 네트워크 구성의 이해라는 주제로 포스팅을 해볼까 합니다.


특정 프로그램에 대하여 국한되어 있지 않고

가상머신 네트워크에 대한 기본적인 개념만 가지고 있으면,

어떤 가상머신에서도 충분히 구성 하실 수 있으시리라 봅니다.


일반적으로 가상머신에서 지원하는 방식은 크게 3가지로 구분할 수 있습니다.


1. 브리지(Bridge)

2. 호스트(Host-only)

3. NAT


브리지와 호스트는 가상머신에서 제공하는 네트워크 스위치라고 생각하시면 되고,

NAT는 방화벽이나 가정에서 사용하는 인터넷 공유기라고 생각하시는게 이해하기가 쉽습니다.


각 방식의 차이점은 아래와 같습니다.


                                                    - 브리지 : 인터넷 가능, 사용자 네트워크와 동일 대역

                                                    - 호스트 : 인터넷 불가능(폐쇄망), 사용자 네트워크와 다른 대역

                                                    - NAT    : 인터넷 가능, 사용자 네트워크와 다른 대역



하지만, 호스트와 NAT 구성의 조합으로 인터넷을 가능하게 할 수 있습니다.


아래 그림에서 가상머신의 NAT 기능은

내부 네트워크의 IP(사설IP)를 외부 네크워크 IP(공인IP)로 변경해 주어 인터넷을 가능하게 하는 기능입니다.




아래와 같이 호스트와 NAT 구성으로 간단한 네트워크를 구성할 수 있습니다.



위와 같이 방화벽 즉, NAT 구성하기 위한 서버에서는 호스트와 NAT 두 개의 네트워크 카드가 필요합니다.

호스트 대역에 있는 PC가 인터넷을 가능하게 하려면 방화벽에서 추가 설정이 필요합니다.

방화벽을 윈도우라고 가정하고 아래와 같이 설정을 하시면 됩니다.


NAT 네트워크의 속성으로 들어갑니다.


아래와 같이 [공유] 텝에서 첫번째 항목을 체크 후 확인을 클릭합니다.


위 설정을 완료하면 내부 네트워크의 PC에서 인터넷이 가능합니다.












리눅스에서 명령어 입력 시 로깅을 남기는 방법에 대하여 알아보도록 하겠습니다.

해커의 행위 분석이라던지 시스템 작업 시 원인 분석용으로 사용하기에도 아주 유용합니다.


function cmdlog
{
f_ip=`who am i | awk '{print $5}'`
cmd=`history | tail -1`
if [ "$cmd" != "$cmd_old" ]; then
  logger -p local1.notice "[1] From_IP=$f_ip, PWD=$PWD, Command=$cmd"
fi
  cmd_old=$cmd
}
trap cmdlog DEBUG



logger 명령어를 사용하면 임의로 로그를 생성할 수 있습니다.


ex)

# logger hahaha

# tail -1 /var/log/message

Jul 26 16:37:13 Host root: hahaha



syslog의 Log Level을 지정하기 위해서는 아래 그림의 Facility와 Severity Level에 대한 설정이 필요합니다.

Facility는 프로그램의 형식이며, Severity Level은 로깅에 대한 심각성 정도(레벨)라고 생각하시면 됩니다.

더 자세한 사항은 아래 링크를 참조하시기 바랍니다.

https://en.wikipedia.org/wiki/Syslog

Facility

[그림출처] https://en.wikipedia.org/wiki/Syslog

Severity level

[그림출처] https://en.wikipedia.org/wiki/Syslog



ex)

# logger -p local1.notice logging test

# tail -1 /var/log/message

Jul 26 17:00:46 Host root: logging test


기본적으로 logger를 사용하면 /var/log/message 에 로깅이 되는데 다른 파일에 로깅을 하길 원하면 /etc/rsyslog.conf에 새로운 위치를 추가 해주시면 됩니다.



/var/log/cmdlog에 설정 후 messages에 로깅 되지 않도록 local1.none 설정을 해 줍니다.


해당 쉘 스크립트를 Global하게 적용하기 위해서 /etc/profile.d/에 작성한 스크립트를 넣어 둡니다.


마지막으로 설정을 적용하기 위해 데몬을 재시작 합니다.


#/etc/init.d/rsyslog restart















국내에서 제작되어진 cpc 형태의 광고를 통해 수익을 내는 (주)마이크로네임즈의 [해보고] 광고에

대하여 알아보도록 하겠습니다. 우선 해당 광고는 사용자 몰래 설치되어 특정 키워드 검색 시 해당 키워드

성격에 맞는 광고주 사이트를 팝업 창으로 띄워 광고 수익을 내는 형태의 악성코드입니다.


해당 악성파일은 카스퍼스키 제품에서 진단명 Adware.Win32.Hebogo.cq 으로 진단하고 있습니다.



악성파일 실행 시 사용자 몰래 하기의 파일들이 생성이 되며, 자가 삭제되는 형태의 악성파일입니다.





 

  생성파일 정보


 C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common


 C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\MicroProCon.exe - 업데이트 파일


 C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\MicroProProc.exe - 메모리 상주


 C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\Uninstall


 C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\Uninstall\Uninstall.exe - 프로그램 삭제



 

  레지스트리 생성 정보


 [HKCU\Software\Microsoft\Windows\CurrentVersion\Run]

MicroProCon=C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\MicroProCon.exe -iCtjxI


 [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

MicroProProc=C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\MicroProProc.exe -iCtjxI


 [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MicroNames Multi Language Convert Service3.0]



시스템 재부팅 시 자동 시작 되도록 레지스트리에 등록이 되어 있는 것을 확인 할 수 있으며,

MicroProCon.exe 파일은 재부팅 시 서버와의 통신을 통해 최신 리스트를 업데이트 하는 역할을 수행합니다.


 

 





 

  프로세스 정보


MicroProcProc.exe 파일은 프로세스에 로드되어 사용자가 특정 키워드 입력 시 관련 광고 사이트

팝업창을 띄우는 역할을 합니다.




여름 옷이란 키워드 입력 시 옷과 관련 된 사이트가 새창으로 생성되는 것을 확인 할 수 있습니다.

또 아기와 관련된 키워드를 입력하면 유아용품 사이트가 팝업 됩니다.

 


 






 

 프로그램 삭제 방법


정상적으로 설치가 되지 않을 경우 프로그램 추가/제거 항목에 없기 때문에 수동으로 삭제하여야 합니다.

하기 위치의 Uninstall.exe 를 실행시켜 제거 한 후 나머지 파일 및 레지스트리 값을 수동으로 삭제 해 주시면 됩니다.


위치 : C:\Documents and Settings\(사용자계정)\Application Data\MicroLab\MyEngin\Common\Uninstall










악성코드 감염 사이트 접속 시 시스템 파일 변조를 통하여 온라인 게임 계정 탈취를 목적으로한

악성코드에 대하여 알아보겠습니다.

해당 파일은 카스퍼스키 제품에서는 진단명 Trojan.Win32.Generic 으로 진단하고 있습니다.


ws2help.dll 파일은 온라인 게임 계정 탈취를 목적으로 한 악성코드에 주로 이용되는 단골 고객이며,

신규 공격 기법이 아니라 히스토리 목적으로만 포스팅 합니다.





 

 악성파일 정보






 

 생성파일 정보


C:\Documents and Settings\Administrator\Local Settings\Temp\VnrYne173.exe

C:\WINDOWS\System32\ws2help.dll (악성파일)
C:\WINDOWS\System32\ws2help.dll.(영문+숫자 임의명 3자리).tmp (원본 백업 파일)
C:\WINDOWS\System32\ws2helpXP.dll (원본 백업 파일)




최초 악성파일인 rund11.exe 파일이 실행되면 VnrYne173.exe 라는 파일을 생성하며, 자가 삭제 됩니다.







VnrYne173.exe 파일은 시스템 파일인 ws2help.dll 원본 파일을 ws2help.(영문+숫자 임의명 3자리).tmp와

ws2helpXP.dll 로 백업한 후 ws2help.dll 악성파일을 생성합니다.







ws2help.dll 파일을 호출하는 모든 프로세스에 인젝션 되어 동작하며, 시스템에 설치된 백신을 무력화 하여

온라인 게임 계정을 탈취하는 기능을 수행합니다.






ws2help.dll 이 탈취하는 온라임 게임 리스트는 다음과 같습니다.


 - 던파,메이플스토리
 - 피파온라인, 레이시티
 - 리니지
 - 카발2
 - 와우
 - 바람의나라



그리고 악성코드에 대해 시스템에 설치된 백신을 무력화 시킵니다.


 - 바이러스체이서
 - 네이버pc그린
 - v3
 - 알약






 

 예방 방법


1. ws2help.dll 파일 이름을 변경 (ex. old_ws2help.dll)

2. WFP로 인하여 정상적인 파일 복구되는지 확인 (복구 안될 시 ws2helpXP.dll을 ws2help.dll 로 변경

3. 재부팅 후 악성파일 삭제







Microsoft 에서 2013년 6월 정기 보안 업데이트 5건을 발표했습니다.



<영향받는 소프트웨어>

 - Windows XP 서비스 팩3
 - Windows XP Professional x64 Edition 서비스 팩2
 - Windows Server 2003 서비스 팩2
 - Windows Server 2003 x64 Edition 서비스 팩2
 - Windows Server 2003 서비스 팩2 Itanium
 - Windows Vista 서비스 팩2
 - Windows Vista x64 Edition 서비스 팩2
 - Windows 7 서비스 팩 1
 - Windows 7 x64 서비스 팩0, 1

 - Windows 8 x86, x64

 - Windows Server 2008 서비스 팩2
 - Windows Server 2008 x64 서비스 팩2
 - Windows Server 2008 서비스 팩2 Itanium
 - Windows Server 2008 R2 x64 서비스 팩 1
 - Windows Server 2008 R2 x64 서비스 팩 1 Itanium
 -
Windows Server 2012

 - Windows RT

 <요약>

 Internet Explorer 누적 보안 업데이트, Windows 커널의 취약점으로 인한 정보 유출, 커널 모드 드라이버의 취약점으로 인한 서비스 거부, Windows 인쇄 스풀러 구성 요소의 취약점으로 인한 권한 상승, Microsoft Office의 취약점으로 인한 원격 코드 실행 문제점을 보완한 Microsoft 2013년 6월 정기 보안 업데이트를 발표하였습니다.

 <상세정보>

 [MS13-047] Internet Explorer 누적 보안 업데이트(2838727)

 이 보안 업데이트는 Internet Explorer에서 발견되어 비공개적으로 보고된 취약점 19건을 해결합니다. 가장 위험한 취약점으로 인해 사용자가 Internet Explorer를 사용하여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행이 허용될 수 있습니다. 가장 위험한 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.


 [MS13-048] Windows 커널의 취약점으로 인한 정보 유출 문제점(2839229)

 이 보안 업데이트는 비공개적으로 보고된 Windows의 취약점 1건을 해결합니다. 이 취약점으로 인해 공격자가 시스템에 로그온하고 특수하게 조작된 응용 프로그램을 실행하거나 로그인한 로컬 사용자가 특수하게 조작된 응용 프로그램을 실행하도록 유도할 경우 정보 유출이 발생할 수 있습니다. 이 취약점을 악용하려면 공격자가 유효한 로그온 자격 증명을 가지고 로컬로 로그온할 수 있어야 합니다. 이 취약점으로 인해 공격자가 직접 코드를 실행하거나 해당 사용자 권한을 상승시킬 수는 없지만 영향을 받는 시스템의 손상을 악화시키는 데 사용할 수 있는 정보를 생성할 수 있습니다.


 [MS13-049] 커널 모드 드라이버의 취약점으로 인한 서비스 거부 문제점(2845690)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Windows의 취약점을 해결합니다. 이 취약점으로 인해 공격자가 특수하게 조작된 패킷을 서버에 보낼 경우 서비스 거부가 발생할 수 있습니다. 최선의 방화벽 구성 방법과 표준 기본 방화벽 구성을 이용하면 기업 경계 외부에서 들어오는 공격으로부터 네트워크를 보호할 수 있습니다.


 [MS13-050] Windows 인쇄 스풀러 구성 요소의 취약점으로 인한 권한 상승 문제점(2845690)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Windows의 취약점을 해결합니다. 이 취약점으로 인해 인증된 공격자가 프린터 연결을 삭제할 경우 권한 상승이 허용될 수 있습니다. 이 취약점을 악용하려면 공격자가 유효한 로그온 자격 증명을 가지고 로그온할 수 있어야 합니다.


 [MS13-051] Microsoft Office의 취약점으로 인한 원격 코드 실행 문제점(2839571)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Office의 취약점을 해결합니다. 취약점으로 인해 사용자가 영향을 받는 버전의 Microsoft Office 소프트웨어를 사용하여 특수하게 조작된 Office 파일을 열거나, 전자 메일 리더로 Microsoft Word를 사용하면서 특수하게 조작된 전자 메일 메시지를 Outlook에서 미리 보거나 열 경우 원격 코드 실행이 발생할 수 있습니다. 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

 <참조사이트>

 한글 : http://technet.microsoft.com/ko-kr/security/bulletin/ms13-jun

 영문 : http://technet.microsoft.com/en-us/security/bulletin/ms13-jun



Create Customer Gateways set



    - BGP 연동을 위한 게이트웨이를 설정한다. 

   

  • VPC -> Customer Gateways -> Create Customer Gateways
  • Routing : Dynamic
  • BGP ASN : 65000 (default)
  • IP : F50B Firewall Public IP (wan1에 설정한 IP입력)


Virtual Private Gateways set


    - AWS의 Virtual Private Gateway를 생성한다.
            ※ 이미 같은 VPC로 생성되어 있으면 추가 작업 없이 VPN Connections 설정으로 간다.


  1. VPC -> Virtual Private Gateways -> Create Virtual Private Gateway
  2. VPC -> Virtual Private Gateways -> Attach to VPC








VPN Connections set  


    - AWSF50B 장비간의 VPN 접속을 위한 세팅을 한다.

  • VPC -> VPN Connections ->Create VPN Connection
  • BGP를 통한 접속이므로 Use dynamic routing 으로 선택하여야 한다.





  • BGP 및 IPsec 설정을 위한 confiruration을 제공하며 사용자 벤더에 맞는 항목을 선택하여 다운받으면 된다. (기본적으로 Generic을 선택하면 됨)









F50B Firewall set


    - AWSF50B 장비간의 VPN 접속을 위한 세팅을 하며, 다운받은 Configuration 파일을 참조하여 설정한다.
    일반적인 셋팅 순서는 다음과 같으며 Tunnel 1, Tunnel 2 두 개의 Connection 을 설정하면 된다.
  1. Router -> Dynamic -> BGP Setting
  2. VPN -> IPsec -> Auto Key(IKE) Setting
  3. System -> Network -> Interface -> IP Setting
  4. Policy Setting



  • Router -> Dynamic -> BGP Setting

#1



#2







  • VPN -> IPsec -> Auto Key(IKE) Setting (Phase1과 Phase2는 1세트로 구성)
    • Create Phase1 (2set)
    • Create Phase2 (2set)



    - Create Phase1


#1


#2






    - Name : Nickname
    - IP Address : Virtual Private Gateway (Outside AWS IP)
    - Local Interface : wan1 (F50B External Interface)
    - Mode : Main
    - Authentication Method : Preshared Key
    - Pre-shared Key : (refer to BGP configuration)
    - Advanced Setting : (refer to Image)



    - Create Phase2



    - Name : Nickname

    - Phase 1 : choose Phase1

    - Advanced Setting : (refer to Image)



  • System -> Network -> Interface -> IP Setting








  • Policy Setting
    • Inbound / Outbound : any all


    - 여기까지가 BPG 및 IPsec 설정이 다 끝났으며 AWS에서 VPN Connection이 정상적으로 되었는지 확인한다.


  • Check the VPN Connection (AWS)



'할롬::컴터 > AWS정보' 카테고리의 다른 글

[AWS] NetworkACL & SecurityGroup 개념  (6) 2013.05.14
[AWS] CLI Command Line 사용방법  (0) 2013.05.13



Microsoft 에서 2013년 5월 정기 보안 업데이트 10건을 발표했습니다.



<영향받는 소프트웨어>

 - Windows XP 서비스 팩3
 - Windows XP Professional x64 Edition 서비스 팩2
 - Windows Server 2003 서비스 팩2
 - Windows Server 2003 x64 Edition 서비스 팩2
 - Windows Server 2003 서비스 팩2 Itanium
 - Windows Vista 서비스 팩2
 - Windows Vista x64 Edition 서비스 팩2
 - Windows 7 서비스 팩 1
 - Windows 7 x64 서비스 팩0, 1

 - Windows 8 x86, x64

 - Windows Server 2008 서비스 팩2
 - Windows Server 2008 x64 서비스 팩2
 - Windows Server 2008 서비스 팩2 Itanium
 - Windows Server 2008 R2 x64 서비스 팩 1
 - Windows Server 2008 R2 x64 서비스 팩 1 Itanium
 -
Windows Server 2012

 - Windows RT

 <요약>

 Internet Explorer 누적 보안 업데이트, HTTP.sys 취약점으로 인한 서비스 거부 문제점, .NET Framework의 취약점으로 인한 스푸핑 문제점, Lync의 취약점으로 인한 원격 코드 실행 문제점, Microsoft Publisher의 취약점으로 인한 원격 코드 실행 문제점, Microsoft Word의 취약점으로 인한 원격 코드 실행 문제점, Microsoft Visio의 취약점으로 인한 정보 유출 문제점, Windows Essentials의 취약점으로 인한 정보 유출 문제점, 커널 모드 드라이버의 취약점으로 인한 권한 상승 문제점을 보완한 Microsoft 2013년 5월 정기 보안 업데이트를 발표하였습니다.

 <상세정보>

 [MS13-037] Internet Explorer 누적 보안 업데이트(2829530)

 이 보안 업데이트는 Internet Explorer의 비공개적으로 보고된 취약점 11건을 해결합니다. 가장 위험한 취약점으로 인해 사용자가 Internet Explorer를 사용하여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행이 허용될 수 있습니다. 가장 위험한 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.


 [MS13-038] Internet Explorer 누적 보안 업데이트(2847204)

 이 보안 업데이트는 Internet Explorer의 공개된 취약점 1건을 해결합니다. 이 취약점은 사용자가 Internet Explorer를 사용하여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행을 허용할 수 있습니다. 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.


 [MS13-039] HTTP.sys 취약점으로 인한 서비스 거부 문제점(2829254

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Windows의 취약점을 해결합니다. 이 취약점으로 인해 공격자가 영향을 받는 Windows 서버나 클라이언트에 특수하게 조작된 HTTP 패킷을 보낼 경우 서비스 거부가 발생할 수 있습니다.


 [MS13-040] .NET Framework의 취약점으로 인한 스푸핑 문제점(2836440)

 이 보안 업데이트는 .NET Framework의비공개적으로 보고된 취약점 1건과 공개적으로 보고된 취약점 1건을 해결합니다. 가장 위험한 취약점으로 인해 .NET 응용 프로그램에서 특수하게 조작된 XML 파일을 수신할 경우 스푸핑을 허용할 수 있습니다. 취약점 악용에 성공한 공격자는 파일의 서명을 무효화하지 않으면서 XML 파일의 내용을 수정하고 인증된 사용자인 것처럼 종점 기능에 대한 액세스 권한을 얻을 수 있습니다.


 [MS13-041] Lync의 취약점으로 인한 원격 코드 실행 문제점(2834695)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Lync의 취약점을 해결합니다. 이 취약점으로 인해 공격자가 특수하게 조작된 콘텐츠(파일 또는 프로그램 등)를 Lync 또는 Communicator에서 프레젠테이션으로 공유한 다음 사용자가 초대를 수락하여 프레젠테이션 가능한 콘텐츠를 보거나 공유하도록 유도할 경우 원격 코드 실행이 허용될 수 있습니다. 어떠한 경우에도 공격자는 강제로 사용자가 공격자 제어 파일 또는 프로그램을 보거나 공유하도록 만들 수는 없습니다. 대신 공격자는 사용자가 Lync 또는 Communicator에서 초대를 수락하여 프레젠테이션 가능한 콘텐츠를 보거나 공유하게 하는 등의 조치를 취하도록 유도해야 합니다.


 [MS13-042] Microsoft Publisher의 취약점으로 인한 원격 코드 실행 문제점(2830397)

 이 보안 업데이트는 Microsoft Office에서 발견되어 비공개적으로 보고된 취약점 11건을 해결합니다. 이러한 취약점으로 인해 사용자가 영향을 받는 버전의 Microsoft Publisher로 특수하게 조작된 Publisher 파일을 열 경우 원격 코드 실행이 허용될 수 있습니다. 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.


 [MS13-043] Microsoft Word의 취약점으로 인한 원격 코드 실행 문제점(2830399)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Office의 취약점을 해결합니다. 이 취약점으로 인해 사용자가 영향을 받는 Microsoft Office 소프트웨어에서 특수하게 조작된 파일을 열거나 특수하게 조작된 전자 메일 메시지를 미리 볼 경우 코드 실행을 허용할 수 있습니다. 취약점 악용에 성공한 공격자는 현재 사용자와 동일한 권한을 얻을 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.


 [MS13-044] Microsoft Visio의 취약점으로 인한 정보 유출 문제점(2834692)

 이 보안 업데이트는 비공개적으로 보고된 Microsoft Office의 취약점을 해결합니다. 이 취약점으로 인해 사용자가 특수하게 조작된 Visio 파일을 열 경우 정보 유출이 발생할 수 있습니다. 이 취약점으로 인해 공격자가 직접 코드를 실행하거나 해당 사용자 권한을 상승시킬 수는 없지만 영향을 받는 시스템의 손상을 악화시키는 데 사용할 수 있는 정보를 생성할 수 있습니다.


 [MS13-045] Windows Essentials의 취약점으로 인한 정보 유출 문제점(2813707)

 이 보안 업데이트는 비공개적으로 보고된 Windows Essentials의 취약점을 해결합니다. 이 취약점으로 인해 사용자가 특수하게 조작된 URL을 사용하여 Windows Writer를 열 경우 정보 유출이 발생할 수 있습니다. 취약점 악용에 성공한 공격자는 Windows Writer 프록시 설정을 무시하고 대상 시스템에서 사용자가 액세스할 수 있는 파일을 덮어쓸 수 있습니다. 웹 기반의 공격 시나리오에서 웹 사이트는 이 취약점을 악용하는 데 사용되는 특수하게 조작된 링크를 포함하고 있을 수 있습니다. 공격자는 사용자가 웹 사이트를 방문하고 특수하게 조작된 링크를 열도록 유도해야 합니다.


 [MS13-046] 커널 모드 드라이버의 취약점으로 인한 권한 상승 문제점(2840221)

 이 보안 업데이트는 Microsoft Windows에서 발견되어 비공개적으로 보고된 취약점 3건을 해결합니다. 공격자가 시스템에 로그온하고 특수하게 조작된 응용 프로그램을 실행할 경우 이 취약점으로 인해 권한 상승이 허용될 수 있습니다. 이 취약점을 악용하려면 공격자가 유효한 로그온 자격 증명을 가지고 로컬로 로그온할 수 있어야 합니다.

 <참조사이트>

 한글 : http://technet.microsoft.com/ko-kr/security/bulletin/ms13-may

 영문 : http://technet.microsoft.com/en-us/security/bulletin/ms13-may





AWS를 처음 접할 때 많이 헷갈려 하는 부분이 바로 Network ACL과 Security Group일겁니다.

일반적으로 생각하는 방화벽과는 조금 다른 기능이라 그런 것 같습니다.

그리하여 오늘은 두 개의 보안 설정에 대한 개념정리를 해보겠습니다.


참고로 Network ACL은 VPC가 구성 되어야만 사용이 가능합니다.

VPC를 잠깐 설명드리자면 클라우드 환경에서 실제 IDC환경과 동일한 가상의 IDC환경을

구축 할 수 있도록 제공하는 기능입니다.


Network ACL은 외부간 통신을 담당하는 보안기능으로 서브넷 단위로 설정이 가능하며, Security Group는 내부간 통신을 담당하며 서버 단위로 정책을 설정할 수 있습니다.



 Network ACL : Stateless 필터링 방식

 Security Group : Stateful 필터링 방식


 ※ Stateful과 Stateless의 차이점

 Stateful : 요청 정보를 저장하여 응답하는 트래픽 제어를 하지 않음.

 Stateless : 요청 정보를 따로 저장하지 않기 때문에 응답하는 트래픽에 대한 필터링을 설정 해야함.



Network ACL과 Security Group의 전체적인 그림을 설명드리겠습니다.


경우1. 외부에서 접근

외부에서 서버로 접근하기 위해서는 Network ACL의 보안정책과 하위의 Security Group 보안정책에 적용됩니다.


경우2. 내부통신

동일 서브넷의 내부통신은 Security Group 보안정책만 적용됩니다.




여기까지만 보면 일반적인 보안이랑 크게 차이가 나지 않습니다.

하지만, Network ACL은 특정 포트와 통신 하기 위해서는 인바운드/아웃바운드 두 개의 정책을 다 써야한다고

명시되어 있습니다.




Network ACL은 기본적으로 인/아웃이 차단되어 있습니다.

예를 들어 80포트를 허용하였을 경우 방화벽의 경우는 아웃바운드가 차단이 되어도 외부에서 80포트로 접속하는데

문제가 되지 않지만, ACL의 경우는 아웃바운드가 차단이 되어 있으면 통신이 되지 않습니다.

위 이미지의 마지막 줄을 보시면 아웃바운드에 1024-65535 포트를 허용하라고 되어있습니다.


웹 서비스를 하기 위해서는 Network ACL의 인바운드/아웃바운드 정책이 하기 이미지와 같아야 합니다.

즉, 응답하는 서버의 sport도 허용 해주어야 통신이 됩니다.





여기에서 왜 1024-65535 포트를 허용하여야 하는지 궁금하신 분들도 계실겁니다.

위에서 언급한 것처럼 Stateless는 세션을 기억하지 않기 때문에 요청에 대한 응답을 할 경우 응답하는 대상의 Source Port 범위인 1024-65535를 추가 해주어야 한다는 말입니다.



그럼 Network ACL과 Security Group이 어떻게 동작하는 지 Case By Case로 알아보겠습니다.



 

 외부에서 내부로 들어오는 경우





위의 경우는 일반적인 사용자가 서버에 접근할 때 적용되는 정책입니다.

외부에서 요청이 오면 Network ACL 정책을 먼저 거친 후 Security Group 정책을 거치게 되며,

서버측 응답은 Security Group의 아웃바운드 정책은 거치지 않고 Network ACL정책만 거친 후 사용자에게 응답합니다.

여기서 주의 해야할 점은 Network ACL의 아웃바운드 정책에 1024-65535 정책이 없으면 응답을 할 수 없게 되는 것이죠..






위의 경우는 같은 서브넷에 서버가 존재할 경우는 Security Group정책만 따르게 됩니다.






위의 경우는 통신할 서버가 다른 서브넷에 존재할 경우 Case1 번과 같은 조건이기 때문에 1번과 동일하게 동작합니다.






 

 내부에서 외부로 나가는 경우


내부에서 외부로 나가는 경우는 위 3개의 Case와 반대로 생각하시면 됩니다.




위의 경우는 서버에서 외부로 접속을 시도할 때 Security Group의 아웃바운드 정책을 먼저 거친 후 Network ACL의 정책을 거치게 됩니다. 그리고 응답을 받을 때엔 Network ACL의 인바운드 정책만 적용이 됩니다.

여기서 주의해야 할 점은 Network ACL의 인바운드 정책에 1024-65535 정책이 있어야만 통신이 됩니다.






Case 2번과 동일합니다.





Case 4번과 동일합니다.





 

 결론


1. 서브넷이 다를 경우

: Network ACL 정책이 적용 됨


2. 서브넷이 같을 경우

: Security Group 정책만 적용 됨


3. Network ACL

: Stateless 기반으로 인바운드 / 아웃바운드 정책에 1024-65535 포트에 대하여 허용하여야 통신이 가능하다.


4. Security Group

: 방화벽 이라고 생각하시면 됨




'할롬::컴터 > AWS정보' 카테고리의 다른 글

[AWS] AWS-F50B간 BGP 설정  (0) 2013.05.21
[AWS] CLI Command Line 사용방법  (0) 2013.05.13




AWS를 사용하시다 보면 Management Console로만 사용하기에는 기능적으로 부족한 부분들이 있습니다.

그래서 AWS를 보다 완벽하게 사용하실려면 CLI를 통해서 작업을 하셔야 합니다.


기본적으로 CLI를 사용하기 위해서 AWS는 2가지 환경을 제공하고 있습니다.


1. 로컬PC를 통한 CLI환경 구성 (Windows, Linux, MAC)

2. AWS에서 제공하는 Instance를 이용한 환경 구성


위 두 가지 차이점은 비용이겠죠..


1번의 경우는 각 OS환경에 맞게 설정을 해야하는 번거러움이 있으며,

2번의 경우는 AWS에서 CLI기능이 들어간 Instance를 제공하므로 추가적인 설정이 필요없습니다.



두 가지 다 장단점은 있기 때문에 사용자 입맛에 맞는 걸 쓰시면 되고,

저는 1번을 기준으로 설명 드리겠습니다. (방법은 1번과 2번 차이는 없습니다.)



Windows, Linux 두 가지 OS에 대하여 설정하는 방법을 설명 드리겠습니다.



 

 공통적으로 필요한 프로그램


 1. JAVA
 2. Openssl

 3. ec2-api-tools (Tool 다운받기)




 

 Windows 설정 방법


 1. Java를 설치 합니다.

 2. 다운받은 ec2-api-tools를 원하는 경로에 압축 해제합니다.

 3. openssl 설치

     - 윈도우에서 openssl  설치는 손이 많이 가므로 쉽게 사용하실려면 apm을 설치하시면 별 다른 설정없이

       사용하실 수 있습니다. (APM 다운 받기)




설치가 완료 되었으면, openssl 을 이용하여 키를 생성하여야 합니다.


openssl genrsa 1024 > c:\pk.pem
 openssl req -new -x509 -nodes -sha1 -days 730 -key c:\pk.pem > c:\cert.pem
 기본값으로 설정하면 되므로 [Enter]




이제 2 개의 키가 생성되었으며, 추가적인 환경설정을 합니다. (폴더명이 다를 수 있으므로 환경에 맞게 수정)


 윈도우 내컴퓨터->속성->고급시스템설정->환경변수에 추가하여 사용하시면 됩니다.


 set JAVA_HOME="C:\Program Files (x86)\Java\jre7"
 set EC2_HOME="C:\ec2-api-tools-1.5.3.0"
 set PATH=%JAVA_HOME%\bin;%EC2_HOME%\bin;%PATH%
 set EC2_CERT=c:\cert.pem
 set EC2_PRIVATE_KEY=c:\pk.pem






 

 AWS IAM 설정 방법 및 권한


생성 된 키 중에서 cert.pem 키를 IAM 사용자에게 등록하여야 사용할 수 있습니다.

메모장으로 cert.pem 파일의 내용을 복사 한 후 키를 등록 합니다.





Permissions이 PowerUserAccess 권한 이상되어야만 명령어가 정상동작합니다.





이제 모든 설정이 완료 되었으며, 명령어가 정상적으로 동작하는지 확인 해 봅니다.

하기 이미지와 같다면 지금부터 CLI 를 사용하실 수 있습니다.






 

 Linux 설정 방법


 1. Java를 설치 합니다.

  : yum install java-1.7.0-openjdk.x86_64


 2. 다운받은 ec2-api-tools를 원하는 경로에 압축 해제합니다.


 3. openssl 설치

  : yum install openssl-devel




설치가 완료 되었으면, openssl 을 이용하여 키를 생성하여야 합니다.


 openssl genrsa 1024 > ~/pk.pem
 openssl req -new -x509 -nodes -sha1 -days 730 -key ~/pk.pem > ~/cert.pem
 기본값으로 설정하면 되므로 [Enter]




환경설정 (사용자에 맞게 설정하시면 됩니다.)


 사용자 Profile에 하기 내용을 추가하여 사용하시면 됩니다.


 export EC2_HOME=/root/ec2-api-tools-1.5.3.0

 export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre

 export EC2_CERT=/home/aws/cert.pem
 export EC2_PRIVATE_KEY=/home/aws/pk.pem



여기까지 설정 되었으면 위의 [AWS IAM 설정 방법 및 권한]과 동일하게 설정하시면 됩니다.





AWS의 모든 CLI 명령어는 하기 주소에서 확인 하시면 됩니다.

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/command-reference.html





'할롬::컴터 > AWS정보' 카테고리의 다른 글

[AWS] AWS-F50B간 BGP 설정  (0) 2013.05.21
[AWS] NetworkACL & SecurityGroup 개념  (6) 2013.05.14




얼마전 카스퍼스키랩에서 Winnti라는 조직에 대한 분석 보고서를 발표했는데요..

이 조직은 전 세계 게임업체들을 대상으로 공격하며 국내 메이저 게임회사들로 포함 되어 있다고 밝혔습니다.


해당 악성코드는 64비트에서만 동작하며 감염이 되면 소스코드, 인증서등을 유출시키며 디지털 인증서를 이용하여 악성코드를 정상적인 파일로 위장시켜 추가 감염을 발생하게 됩니다.


그리고 Winnti에서 지속적인 업데이트가 이루어지기 때문에 백신에만 의존하기엔 부족한 부분이 많습니다.

관련 보고서를 충분히 인지하여 피해가 없도록 신경을 써야할 것 같네요..


자세한 부분은 www.securelist.com/en/blog 에서 확인하실 수 있습니다.




전형적인 Reverse Telnet 방식으로 RAT 기능이 포함된 악성파일에 대하여 살펴보겠습니다.


 

얼마 전 악성주소가 포함 된 메일 한 통을 받았습니다.



현재 내부적으로도 관련 인력을 구인하고 있는 상태라 단순한 스팸메일은 아닌 것으로 보이네요..

APT 공격의 기본적인 특징이라고 할 수 있습니다.

하지만 제목이나 URL등을 보니 그렇게 꼼꼼하게 보이진 않네요.. 오타도 있구요..


 

우선 해당 파일을 다운로드 받아 압축 해제하면 윈도우 도움말 파일인 chm 으로 되어 있는 것을 확인 할 수 있습니다.






Virustotal 에서는 현재 기준으로 6% 미만의 탐지율을 보이고 있습니다.




Info.chm 파일을 실행하면 기본적인 이력서를 보여주며 사용자 몰래 악성파일 설치를 시도 합니다.





 

 생성파일 정보


C:\WINDOWS\Downloaded Program Files\Google_Mapu.exe


해당 파일은 은닉 되어 있어 탐색기로는 확인할 수 없고 루트킷 탐지 툴을 이용하여야 합니다.

루트킷 툴인 Gmer이나 IceSword 를 이용하여 보면 해당파일이 생성되어 있는 것을 확인할 수 있습니다.




생성된 파일은 Virustotal 에서 7% 미만 정도 탐지율을 보이고 있으며 국내 제품으로는 유일하게 AhnLab에서만 Win-Trojan/Binma.39192 진단명으로 탐지가 되고 있습니다.





 

 레지스트리 생성 정보


 [HKCU\Software\Microsoft\Windows\CurrentVersion\Run\]
 Google_Update="c:\windows\downloaded program files\google_mapu.exe"


구글 업데이트로 위장하여 자동 실행 되도록 레지스트리에 등록되어 있습니다.






프로세스로 등록이 되어 주기적으로 C&C 서버로 DNS 질의를 하고 있는 것을 확인할 수 있으며,

IP 추적 결과 국내서버로 확인이 되고 있습니다.





악성파일 동작을 확인하기 위해 호스트 파일을 수정하여 확인해 보았습니다.




우선 netcat 으로 80포트를 오픈 한 후에 일정 시간 기다리면 패스워드 입력창이 나옵니다.

해커가 원격으로 시스템을 컨트롤 할 수 있도록 동작하는 것으로 추정되며, 추가로 패스워드를 확보하여

접속 해본 결과 감염 서버로 접속이 가능하였습니다.




아래 이미지는 실제 해커 서버에 접속되어 동작하는 패킷을 캡쳐한 화면입니다.



주기적으로 C&C서버에 접속을 시도하고 있으며 접속이 되면 자동으로 패스워드가 일치 할 때까지 매번 다른 패스워드가 입력이 되는 것으로 보아 추정 해 볼 수 있는건 해커가 배포한 파일들의 비번이 각각 다르다는 것을 알 수 있으며,

특정 기업의 APT공격은 아닌 것으로 생각됩니다.

일단 해당 패스워드가 맞으면 이후 추가작업을 진행하는 것을 확인할 수 있습니다.

 




 

 삭제 방법


1. 해당 프로세스 종료

:단독으로 실행되기 때문에 강제로 프로세스를 종료하여도 상관없습니다.


2. 레지스트리 삭제

:[HKCU\Software\Microsoft\Windows\CurrentVersion\Run\]
 Google_Update="c:\windows\downloaded program files\google_mapu.exe"


3. 파일 삭제

: 해당 파일은 탐색기로 보이지 않아 루트킷 탐지툴을 이용하여 제거 해야 합니다.

GMER 툴을 다운받아 실행 후 Files 탭에서 아래의 경로로 이동하여 해당 파일을 삭제 하시면 됩니다.

C:\WINDOWS\Downloaded Program Files\Google_Mapu.exe


GMER 다운받기






 

 예방 방법


탐지율이 6%미만이라 거의 제로데이 공격에 가까워 사용자들의 주의가 필요합니다.


1. 수상한 메일은 확인하지 않습니다.

2. 메일 내용의 첨부파일이나 URL은 다운 받지 않습니다.

3. 수상한 메일이라고 판단되면 주위 사람들에게 전파합니다.

4. 파일을 다운 받았으면 꼭 바이러스 검사를 진행합니다.










Microsoft 에서 2014년 4월 8일을 기점으로 해서 윈도우XP 지원을 전면 종료 한다고 하네요..

상위 버전의 OS보다 보안이 취약한 XP를 더 이상 가지고 가는게 MS에서는 부담스러울 수도 있을거 같습니다.


지원 종료 되면서 업데이트나 지원, 추가로 발견된 취약점 보안 패치도 더 이상 받을 수 없게 되었는데

문제는 국내에서 사용 중인 XP 컴퓨터 대수가 1500만개에 달한다고 합니다.

MS에서는 상위 버전으로 업그레이드를 권고하고 있지만 종료 이전에 얼마나 갈아탈런지는 미지수인거 같네요.


정부가 나서서 대대적인 홍보를 하고 기업 및 일반사람들에게도 많이 알려줘야 최대한 피해를 막을 수 있겠죠..

만약 이 상태로 내년까지 간다면 해킹으로 인한 피해는 불 보듯 뻔해 보입니다.






오픈소스 기반의 시스템 모니터링 툴인 xymon 툴 설치에 대하여 알아보겠습니다.

xymon을 설치하기 위해서 기본적으로 설치해야 할 툴, 라이브러리등이 있으며

어떤한 것들이 필요한지 살펴 보겠습니다.


- RRDTOOL : (Round Robin Database tool) 데이터를 그래프화 하여 보여주는 툴

- FPING : ping의 확장판

- PCRE : (Perl Compatible Regular Expressions) 정규표현식을 지원하는 라이브러리

- OpenSSL : 통신 암호화 기능

- OpenLdap : 네트워크상에서 디렉터리 서비스를 조회하고 수정하는 프로토콜

- Apache : 웹 서비스 툴


이외에 위의 라이브러리들을 설치하기 위하여 추가로 설치 하여야 할 라이브러리들도 있지만

부가적으로 설치되는 부분들이라 생략하겠습니다.



 

  설치


1. 컴파일 도구


  # yum -y install gcc gcc-c++



2. RRDTOOL


 # wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
 # rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
 # yum -y install rrdtool-devel



3. FPING


 # wget http://fping.org/dist/fping-3.4.tar.gz
 # tar zxvf fping-3.4.tar.gz
 # cd fping-3.4
 # ./configure
 # make;make install



4. Xymon Lib


 # yum -y  install pcre-devel
 # yum -y  install openssl-devel
 # yum -y  install openldap-devel
 # yum -y install httpd



5. 사용자 추가


 # useradd xymon
 # passwd xymon



6. Xymon Server


 # wget http://iweb.dl.sourceforge.net/project/xymon/Xymon/4.3.10/xymon-4.3.10.tar.gz
 # tar zxvf xymon-4.3.10.tar.gz
 # cd xymon-4.3.10
 # ./configure.server (설정 시 하기 내용 참고)
 # make; make install


 # chmod go+rx /home/xymon


Configuration script for Xymon

This script asks a few questions and builds a Makefile to compile Xymon

Checking your make-utility
Checking pre-requisites for building Xymon

Checking for fping ...
Xymon has a built-in ping utility (xymonping)
However, it is not yet fully stable and therefore it
may be best to use the external fping utility instead.
I found fping in /usr/local/sbin/fping
Do you want to use it [Y/n] ?
y
Checking to see if '/usr/local/sbin/fping 127.0.0.1' works ...
127.0.0.1 is alive
OK, will use '/usr/local/sbin/fping' for ping tests
NOTE: If you are using an suid-root wrapper, make sure the 'xymond'
      user is also allowed to run fping without having to enter passwords.
      For 'sudo', add something like this to your 'sudoers' file:
      xymon ALL=(ALL) NOPASSWD: /usr/local/sbin/fping



Checking for PCRE ...
Compiling with PCRE library works OK
Linking with PCRE library works OK


Checking for RRDtool ...
Not RRDtool 1.0.x, checking for 1.2.x
Compiling with RRDtool works OK
Linking with RRDtool works OK


Checking for OpenSSL ...
Compiling with SSL library works OK
Linking with SSL library works OK
Checking if your SSL library has SSLv2 enabled
Will support SSLv2 when testing SSL-enabled network services

Xymon can use the OpenSSL library to test SSL-enabled services
like https-encrypted websites, POP3S, IMAPS, NNTPS and TELNETS.
If you have the OpenSSL library installed, I recommend that you enable this.

Do you want to be able to test SSL-enabled services (y) ?
y



Checking for LDAP ...
Compiling with LDAP works OK
LBER library not needed
Linking with LDAP works OK

Xymon can use your OpenLDAP LDAP client library to test LDAP servers.

Do you want to be able to test LDAP servers (y) ?
y

Checking for clock_gettime() requiring librt ...
clock_gettime() requires librt


Checking for Large File Support ...
Large File Support OK


Setting up for a Xymon server

What userid will be running Xymon [xymon] ? [enter]

Found passwd entry for user xymon:x:500:500::/home/xymon:/bin/bash

Where do you want the Xymon installation [/home/xymon] ? [enter]

OK, will configure to use /home/xymon as the Xymon toplevel directory

What URL will you use for the Xymon webpages [/xymon] ? [enter]

Where to put the Xymon CGI scripts [/home/xymon/cgi-bin] ? [enter]
(Note: This is the filesystem directory - we will get to the URL shortly)

What is the URL for the Xymon CGI directory [/xymon-cgi] ? [enter]
(Note: This is the URL - NOT the filesystem directory)

********************** SECURITY NOTICE ****************************
If your Xymon server is accessible by outsiders, then you should
restrict access to the CGI scripts that handle enable/disable of
hosts, and acknowledging of alerts. The easiest way to do this is
to put these in a separate CGI directory and require a password to
access them.
Even if your Xymon server is on a secured, internal network, you
may want to have some operations (like disabling a host) be password-
protected - that lets you see who disabled or acknowledged an alert.

Where to put the Xymon Administration CGI scripts [/home/xymon/cgi-secure] ? [enter]
(Note: This is the filesystem directory - we will get to the URL shortly)



What is the URL for the Xymon Administration CGI directory [/xymon-seccgi] ? [enter]
(Note: This is the URL - NOT the filesystem directory)



** Note that you may need to modify your webserver configuration.
** After installing, see /home/xymon/server/etc/xymon-apache.conf for an example configuration.


To generate Xymon availability reports, your webserver
must have write-access to a directory below the Xymon
top-level directory. I can set this up if you tell me
what group-ID your webserver runs with. This is typically
'nobody' or 'apache' or 'www-data'

What group-ID does your webserver use [nobody] ?
apache


Where to put the Xymon logfiles [/var/log/xymon] ? [enter]


What is the name of this host [localhost.localdomain] ? [enter]


What is the IP-address of this host [127.0.0.1] ? [enter]

** NOTE: Using 127.0.0.1 (loopback), but it is probably not what you want **

Where should I install the Xymon man-pages (/usr/local/man) ? [enter]





Using Linux Makefile settings



Created Makefile with the necessary information to build Xymon
Some defaults are used, so do look at the Makefile before continuing.

Configuration complete - now run make (GNU make) to build the tools



7. Apache 구성


 # vi /etc/httpd/conf/httpd.conf
 DocumentRoot /home/xymon/server/www 로 변경

 # ln -s /home/xymon/server/etc/xymon-apache.conf xymon-apache.conf

 # htpasswd -c /home/xymon/server/etc/xymonpasswd admin

 # /etc/init.d/httpd start



8. xymon 서비스 등록


 # cd /etc/init.d
 # wget http://iam8up.com/xymon-initd/xymon
 # chmod 755 xymon
 # ln -s /etc/init.d/xymon /etc/rc3.d/S70xymon
 # /etc/init.d/xymon start



여기까지 오셨으면 xymon 설치가 정상적으로 완료 되었습니다.

이제 브라우저를 통해서 접속이 가능합니다.




xymon 데몬이 html 파일을 주기적으로 자동 생성 되기 때문에 html 파일의 내용을 직접 수정할 수는 없습니다.

상단의 이름을 변경하고자 하실 때에는 cfg 파일을 수정 해야합니다.



9. xymon cfg 파일 변경 list


 # vi /home/xymon/server/etc/xymonserver.cfg -> 상단의 이름 변경

 # vi /home/xymon/server/etc/hosts.cfg -> 클라이언트 등록




10. Client Files DownLoad


 :: Windows

BBWin_0.13.msi


 :: Linux (xymon 설치 파일에 클라이언트가 있습니다.)

 # wget http://iweb.dl.sourceforge.net/project/xymon/Xymon/4.3.10/xymon-4.3.10.tar.gz