728x90
300x250

[PC활용] Mysql GUI 관리툴 - HeidiSQL

http://www.heidisql.com/ 에서 만든 프로그램입니다.
PhpMyAdmin과 같은 용도로 사용하실 수 있습니다.
장점은 Gui이기에 웹상에서 데이터베이스를 볼 필요가 없이 SQL Studio(MSSQL)와 같은 용도로 사용하실 수 있을거라 생각합니다.사용자 삽입 이미지


1. 첨부(Attachment) 

HeidiSQL_3.2_Setup.zip (3.2버전)
HeidiSQL_9.5.0.5196_Setup.zip (9.5버전 / 32bit, 64bit, 최신 2018-07-26)

사용가능한 운영체제: 마이크로소프트 윈도우


2. 참고자료(Reference)

1. http://www.heidisql.com/
2. https://www.heidisql.com/download.php?download=source

 

 

 

반응형
728x90
300x250

[Linux] GD 라이브러리 설치

(사실 제가 쓰려고 메모해두는 것이기도 합니다)
GD라이브러리 설치 순서는 크게 아래와 같습니다.

1. zlib 설치
2. png 설치
3. jpeg 설치
4. freetype 설치
5. gd 설치

아래에 각각의 라이브러리에 대한 다운로드 자료가 있습니다.
각각 서버에 설치하도록 합니다.


1. 참고 링크

1. zlib 다운로드 : http://www.zlib.net/
(zlib-1.2.3.tar.gz) = 예제에서 사용하고 있는 버전입니다.

 

 

2. png 다운로드 : http://www.libpng.org/pub/png/libpng.html
(libpng-1.2.34.tar.gz) = 예제에서 사용하고 있는 버전입니다.

3. JPEG 다운로드 : http://quox.org/install/graphics/jpeg-6b.html
(jpegsrc.v6b.tar.gz) = 예제에서 사용하고 있는 버전입니다.

4. freetype 다운로드 : http://freetype.sourceforge.net/index2.html
(freetype-2.3.8.tar.gz) = 예제에서 사용하고 있는 버전입니다.

5. GD 다운로드 (gd-2.0) : http://www.libgd.org/Main_Page

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

파일 압축 해제

[root@server3 GD-library]# pwd
/root/Desktop/GD-library

- 압축 해제 -
[root@server3 GD-library]# tar xvfz freetype-2.3.8.tar.gz
[root@server3 GD-library]# tar xvfz gd-2.0.36RC1.tar.gz
[root@server3 GD-library]# tar xvfz jpegsrc.v6b.tar.gz
[root@server3 GD-library]# tar xvfz libpng-1.2.34.tar.gz
[root@server3 GD-library]# tar xvfz zlib-1.2.3.tar.gz

- 폴더 이동 : 꼭 이동할 필요는 없지만 소스 설치시 구분하기 쉽게 하기 위해 이동해 준다. -
[root@server3 GD-library]# mv freetype-2.3.8 /usr/local/src
[root@server3 GD-library]# mv gd-2.0.36RC1 /usr/local/src
[root@server3 GD-library]# mv jpeg-6b/ /usr/local/src
[root@server3 GD-library]# mv libpng-1.2.34 /usr/local/src
[root@server3 GD-library]# mv zlib-1.2.3 /usr/local/src

- 설치 폴더 생성 : 꼭 만들어 줄 필요는 없지만 구분하기 쉽게 하기 위해 만들어준다. -
[root@server3 GD-library]# cd /usr/local
[root@server3 local]# pwd
/usr/local
[root@server3 local]# mkdir gd-lib

1. zlib 설치

[root@server3 src]# cd zlib-1.2.3/
[root@server3 zlib-1.2.3]# ./configure --help
usage:
  configure [--shared] [--prefix=PREFIX]  [--exec_prefix=EXPREFIX]
     [--libdir=LIBDIR] [--includedir=INCLUDEDIR]

[root@server3 zlib-1.2.3]# ./configure --shared --prefix=/usr/local/gd-lib/zlib-1.2.3
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.

[root@server3 zlib-1.2.3]# make

- 중략

ln -s libz.so.1.2.3 libz.so
ln -s libz.so.1.2.3 libz.so.1
gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3
gcc -fPIC -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3

[root@server3 zlib-1.2.3]# make install

- 중략

cp zlib.3 /usr/local/gd-lib/zlib-1.2.3/share/man/man3
chmod 644 /usr/local/gd-lib/zlib-1.2.3/share/man/man3/zlib.3
[root@server3 zlib-1.2.3]#

2. png 설치

[root@server3 src]# cd libpng-1.2.34/
[root@server3 libpng-1.2.34]# ./configure --help
`configure' configures libpng 1.2.34 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <png-mng-implement@lists.sourceforge.net>.

[root@server3 libpng-1.2.34]# ./configure --prefix=/usr/local/gd-lib/libpng-1.2.34

- 중략

checking if assembler code in pnggccrd.c can be compiled without PNG_NO_MMX_CODE... yes
checking if libraries can be versioned... yes
checking for symbol prefix...
configure: pkgconfig directory is ${libdir}/pkgconfig
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

[root@server3 libpng-1.2.34]# make

- 중략

cp libpng-config libpng12-config
cp libpng.pc libpng12.pc
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'

[root@server3 libpng-1.2.34]# make install

- 중략

make  install-data-hook
make[2]: Entering directory `/usr/local/src/libpng-1.2.34'
cd /usr/local/gd-lib/libpng-1.2.34/include; rm -f png.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/png.h png.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/pngconf.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; rm -f libpng.pc
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; ln -s libpng12.pc libpng.pc
make[2]: Leaving directory `/usr/local/src/libpng-1.2.34'
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'
[root@server3 libpng-1.2.34]#

3. jpeg 설치 - http://quox.org/install/graphics/jpeg-6b.html 참고  

[root@server3 src]# cd jpeg-6b/
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# ./configure --help

- 중략

Features and packages:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --x-includes=DIR        X include files are in DIR
  --x-libraries=DIR       X library files are in DIR
--enable and --with options recognized:
  --enable-shared         build shared library using GNU libtool
  --enable-static         build static library using GNU libtool
  --enable-maxmem[=N]     enable use of temp files, set max mem usage to N MB

[root@server3 jpeg-6b]# ./configure --prefix=/usr/local/gd-lib/jpeg-6b/ --enable-shared --enable-static

- 중략

checking for objdir... .libs
creating libtool
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
jconfig.h is unchanged

[root@server3 jpeg-6b]# make

- 중략

mv -f rdjpgcom.o rdjpgcom.lo
gcc -O2 -I. -c ./rdjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o rdjpgcom rdjpgcom.lo
gcc -o rdjpgcom rdjpgcom.o
./libtool --mode=compile gcc -O2  -I. -c ./wrjpgcom.c
gcc -O2 -I. -c -fPIC -DPIC ./wrjpgcom.c
mv -f wrjpgcom.o wrjpgcom.lo
gcc -O2 -I. -c ./wrjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o wrjpgcom wrjpgcom.lo
gcc -o wrjpgcom wrjpgcom.o

[root@server3 jpeg-6b]# strip rdjpgcom wrjpgcom .libs/{cjpeg,djpeg,jpegtran}

-------------------------------------------------------------------
- make 시 에러가 발생하면 아래와 같은 폴더를 생성해 준 다음 make clean 명령어를 해준 후 재 컴파일 해준다.
[root@server3 jpeg-6b]# pwd
/usr/local/gd-lib/jpeg-6b
[root@server3 jpeg-6b]# mkdir include
[root@server3 jpeg-6b]# mkdir bin
[root@server3 jpeg-6b]# mkdir lib
[root@server3 jpeg-6b]# mkdir man
[root@server3 jpeg-6b]# mkdir ./man/man1
-------------------------------------------------------------------

[root@server3 jpeg-6b]# pwd
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# make install

- 중략

./libtool --mode=install /usr/bin/install -c cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
/usr/bin/install -c .libs/cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
./libtool --mode=install /usr/bin/install -c djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
/usr/bin/install -c .libs/djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
./libtool --mode=install /usr/bin/install -c jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
/usr/bin/install -c .libs/jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
./libtool --mode=install /usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
/usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
./libtool --mode=install /usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/gd-lib/jpeg-6b//man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/wrjpgcom.1

[root@server3 jpeg-6b]# cp jversion.h /usr/local/gd-lib/jpeg-6b/include/ - 설치폴더의 include 폴더에 파일을 복사해준다.

4. freetype 설치

[root@server3 src]# cd freetype-2.3.8/
[root@server3 freetype-2.3.8]# pwd
/usr/local/src/freetype-2.3.8

[root@server3 freetype-2.3.8]# ./configure --prefix=/usr/local/gd-lib/freetype-2.3.8

FreeType build system -- automatic system detection

- 중략

configure: creating ./config.status
config.status: creating unix-cc.mk
config.status: creating unix-def.mk
config.status: creating freetype-config
config.status: creating freetype2.pc
config.status: creating ftconfig.h
config.status: executing libtool commands
make: `unix'를 위해 할 일이 없습니다

[root@server3 freetype-2.3.8]# make

- 중략

libtool: link: ranlib /usr/local/src/freetype-2.3.8/objs/.libs/libfreetype.a
libtool: link: ( cd "/usr/local/src/freetype-2.3.8/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )

[root@server3 freetype-2.3.8]# make install

- 중략

/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \
          /usr/local/include/ft2build.h
/usr/bin/install -c -m 644 ./builds/unix/ftconfig.h                        \
          /usr/local/include/freetype2/freetype/config/ftconfig.h
/usr/bin/install -c -m 644 /usr/local/src/freetype-2.3.8/objs/ftmodule.h                          \
          /usr/local/include/freetype2/freetype/config/ftmodule.h
/usr/bin/install -c -m 755 ./builds/unix/freetype-config \
          /usr/local/bin/freetype-config
/usr/bin/install -c -m 644 ./builds/unix/freetype2.m4 \
          /usr/local/share/aclocal/freetype2.m4
/usr/bin/install -c -m 644 ./builds/unix/freetype2.pc \
          /usr/local/lib/pkgconfig/freetype2.pc
[root@server3 freetype-2.3.8]#

5. gd 설치

[root@server3 src]# cd gd-2.0.36RC1/
[root@server3 gd-2.0.36RC1]# pwd
/usr/local/src/gd-2.0.36RC1

[root@server3 gd-2.0.36RC1]# ./configure --help
`configure' configures GD 2.0.36 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <http://bugs.libgd.org>.

[root@server3 gd-2.0.36RC1]# ./configure --prefix=/usr/local/gd-lib/gd-2.0.36RC1 --with-png=/usr/local/gd-lib/libpng-1.2.34 --with-jpeg=/usr/local/gd-lib/jpeg-6b/ --with-freetype=/usr/local/gd-lib/freetype-2.3.8

- 중략

** Configuration summary for gd 2.0.36: - 확인해준다.

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes - 무료 폰트 렌더링 라이브러리
   Support for Fontconfig library:   no
   Support for Xpm library:          no - unix의 이미지 포맷 라이브러리
   Support for pthreads:             yes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/gdlib-config
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands

[root@server3 gd-2.0.36RC1]# make

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'

[root@server3 gd-2.0.36RC1]# make install

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
[root@server3 gd-2.0.36RC1]#

6. php 재컴파일


[root@server3 src]# cd php-5.2.8
[root@server3 php-5.2.8]# pwd
/usr/local/src/php-5.2.8

[root@server3 php-5.2.8]# make clean - 이전 컴파일 정보 삭제
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php libphp5.la modules/* libs/*

[root@server3 php-5.2.8]# ./configure
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/apache/conf \
--with-exec-dir=/usr/local/apache/bin \
--enable-mbstring --with-mcrypt=/usr/local/libmcrypt \
--with-gd=/usr/local/gd-lib/gd-2.0.36RC1 \
--with-jpeg-dir=/usr/local/gd-lib/jpeg-6b \
--with-freetype-dir=/usr/local/gd-lib/freetype-2.3.8 \
--with-png-dir=/usr/local/gd-lib/libpng-1.2.34 \
--with-zlib-dir=/usr/local/gd-lib/zlib-1.2.3 - 녹색 부분만 재컴파일시 추가해준다.

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

[참고사항]

[root@server3 php-5.2.8]# make && make install or make -> make test -> make install 로 하면 좀더 정확하게 확인하며 설치할 수 있습니다.

반응형
728x90
300x250

[PC활용] 윈도에서 맛보는 포터블 리눅스 - Portable Ubuntu

포터블 우분투는 윈도 안에서 실행하는 솔루션입니다. 압축을 푼 용량이 1.9GB 정도로 제법 크지만 일단 포터블로 실행이 가능하고 32비트 XP/비스타/윈도 7에서 모두 호환 가능한 장점이 있습니다.

사용자 삽입 이미지

무엇보다 가상 머신에서 돌리는 것처럼 답답한 환경이 아니라 진짜 윈도 프로그램을 실행하는 느낌을 줍니다. 리눅스 특정 프로그램을 듀얼부팅 없이 돌리는 용도나 여러 가지 테스트, 우분투를 아직 경험하지 못한 분들이 맛보기로 실행해 보셔도 괜찮을 것 같습니다.


1. 사용 방법

다운로드 Portable Ubuntu (438MB)

더블 클릭으로 원하는 폴더에 압축을 풉니다.

사용자 삽입 이미지


 

 

 

 

 

명령 프롬프트를 열고 압축 푼 경로의 'Portable_Ubuntu' 폴더로 이동해 'run_portable_ubuntu' 명령으로 '.bat' 스크립트를 실행합니다. (비스타나 윈도 7을 사용하면 관리자 계정으로 명령 프롬프트를 실행해야 합니다)

사용자 삽입 이미지


 

 

 

 

 

이제 잠시 기다리면 'Top Eagle Pane'l이 윈도 안에서 실행되고 우분투의 거의 모든 기능을 맛볼 수 있습니다.

사용자 삽입 이미지


 

 

 

 

 

 

 

 

 

 

 

 

프로그램 추가/삭제나 관리자 계정으로 여러 작업도 가능한데요. 다만 그래픽 드라이버 이슈인지 관리자 암호를 물을 때 상당히 느리게 전환되는 단점이 있습니다. 물론 작동은 합니다. 참고로 초기 패스워드는 '123456' 입니다.

사용자 삽입 이미지


 

 

 

 

 

 

 

 

 

 

 

 

파일 브라우저에서 '/mnt/C'로 들어가면 윈도 파일에도 접근할 수 있습니다.

사용자 삽입 이미지

사용자 삽입 이미지



윈도우와 리눅스 파이어폭스를 같이 실행시킨 모습입니다. 폰트가 없어 한글 웹사이트가 모두 깨지지만 '시스템→관리→언어' 메뉴에서 'Korea'를 추가하면 간단히 해결할 수 있습니다.

사용자 삽입 이미지

사용자 삽입 이미지

작업관리자를 보면 'colinux' 기반으로 실행되는 것을 볼 수 있으며 시스템 점유율도 생각보다 낮습니다.


2. 참고자료(Reference)

1. https://sourceforge.net/projects/portableubuntu/
반응형
728x90
300x250

[GNU - C, C++] Dev C++ 5.0 - IDE

Visual Studio처럼 IDE로서 프로그래밍 공부하시는데 사용하시면 됩니다.

[첨부(Attachment)]
devcpp-4.9.9.2_setup.7z

Dev C++ 사용방법

사용자 삽입 이미지


1. 파일에서 프로젝트를 클릭합니다.

사용자 삽입 이미지


2. 검은색으로 메모해둔 내용을 클릭하고 조건을 입력한 후에 확인을 누릅니다.

사용자 삽입 이미지


3. 코드를 입력후에 단축키 'F9'를 누르거나 '실행 메뉴'에서 '컴파일 후 실행'을 클릭합니다.


DEV C++를 사용할 때 알아두면 좋아요

문법 공부할 때 프로그램이 켜지자 마자 종료 될때...

system("PAUSE");
라고 명령어를 입력합니다.
반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 포인터 연산  (0) 2009.05.13
[C언어] 포인터에 익숙해지는 방법은...  (0) 2009.05.13
[C언어] 포인터 개념의 이해  (0) 2009.05.13
연산자와 C언어  (0) 2009.03.30
C언어 입문의 시작  (0) 2009.03.20
728x90
300x250

[연산자와 C언어]

[논리식]
OR 연산자 : ||
AND 연산자 : &&
부정 연산자 : !

[비교식]
> : 크다
< : 작다
<= : 작거나 같다.
>= : 크거나 같다.

== : 같다.
!= : 같지 않다.


1. 연산자 - 소스코드

#include <Stdio.h>

main()
{
     
      // 기초논리회로 실습 (정정: 논리회로->연산자)
      
      int b1, b2, b3, b4;
     
      b1 = 10;
      b2 = b1 || 5>10;
      b3 = b1 && 5>10;
      b4 = !b3;     

      printf("B1 %d\n",b1);
      printf("B2 %d\n",b2);
      printf("B3 %d\n",b3);
      printf("B4 %d\n",b4);
     
}



 

반응형
728x90
300x250

C언어 입문을 시작합니다.

C언어를 자세히 소개하자면 너무나 방대하므로 이하 생략하겠습니다.
(추후 글에서 소개할 수 있으면 하겠습니다.)
프로그래밍을 빨리 입문하는 방법은 직접 프로그램을 작성해보는 것입니다.

#include <Stdio.h>

main()
{
       printf("Hello, world\n");
}

이 프로그램을 editor(비주얼스튜디오와 같은 프로그래밍 편집기 혹은 메모장 등)로 작성한 다음에 Hello.c라고 저장합니다.

잠깐......
Unix기반에서는 컴파일을 할때는 어떻게 하나요?

cc Hello.cc

라고 입력하면 컴파일이 됩니다.

#include <stdio.h>

라고 써준 부분은 표준 입출력 라이브러리(Stdio.h)를 불러오는 것입니다.

위 프로그램은 함수이름이 main()로 되어 있으므로 메개변수가 없다는 말이 됩니다.
메개변수가 없을 때에도 괄호는 꼭 있어야 합니다.
중괄호 { } 는 문장들을 묶어서 하나의 덩어리(복합문 또는 블록)로 만들어 주는 역할을 합니다.
이것은 PL/1의 DO-END나 Algol, Pascal의 begin-end와 비슷합니다.

printf는 함수를 호출하는 명령어이며
메개변수는 "Hello, World\n" 입니다.

인용부호 사이에서는 줄을 바꾸어 쓰면 안됩니다.

예제2)

#include <Stdio.h>

main()
{
       printf("Hello, ");
       printf("world");
       printf("\n");

}

반응형
728x90
300x250

[Networks] 장애 조치 및 장애 복구

서버 클러스터 보안에 대한 유용한 정보

서버 클러스터가 DoS(Denial-of-Service) 공격, 데이터 변조 및 기타 악의적인 공격의 피해를 입지 않도록 다음 지침을 참고하시기 바랍니다.

최신 소프트웨어 업데이트를 적용합니다.
보안 업데이트와 서비스 팩이 포함된 최신 소프트웨어 업데이트를 적용합니다. Windows Server 2003 서비스 팩 1(SP1)에는 개선된 보안 기능이 다수 포함되어 있습니다. Windows Server 2003 SP1 이상을 실행하는 Windows Server 2003 버전을 사용할 것을 적극 권장합니다.

보안에 관한 최신 정보를 구합니다.
수시로 Microsoft 웹 사이트에서 보안 관련 정보를 검토합니다. 예를 들어 다음 중 하나 이상을 검토합니다.

• Microsoft 웹 사이트(http://go.microsoft.com/fwlink/?LinkID=59992)(영문일 수 있음)에서 서버 보안에 관한 정보
 
• Microsoft 지원 웹 사이트(http://go.microsoft.com/fwlink/?LinkID=59993)(영문일 수 있음)에서 기술 자료 문서 891597, "Windows Server 2003 기반 클러스터 서버에서 보다 제한적인 보안 설정을 적용하는 방법"
 

신뢰할 수 있는 사용자만 서버 클러스터 및 관련 하부 구조 구성 요소에 물리적으로 액세스할 수 있도록 제한합니다.
권한이 부여된 사용자만 서버 클러스터 노드 및 관련 하부 구조 구성 요소(예: 네트워크 및 저장 장치 구성 요소)에 물리적으로 액세스할 수 있도록 합니다. 서버 보안을 위한 기본 정보에 대한 자세한 내용은 보안에 대한 유용한 정보를 참조하십시오.

클러스터 네트워크에 보안 조치를 취합니다.
공용 또는 혼합 네트워크: DNS 서버 또는 WINS 서버와 같은 하부 구조 서버를 비롯하여 클러스터 서브넷 또는 다른 서브넷에 연결된 모든 서버는 트러스트된 서버여야 하며 보안 조치를 취해야 합니다. 또한 방화벽을 사용하여 권한이 없는 클라이언트가 클러스터에 액세스하지 못하도록 해야 합니다.

개인 네트워크: 개인 네트워크는 다른 네트워크와 물리적으로 분리해야 합니다. 특히 라우터, 스위치 또는 브리지를 사용하여 개인 클러스터 네트워크를 다른 네트워크와 연결하지 말고, 개인 네트워크 서브넷에 다른 네트워크 하부 구조 또는 응용 프로그램 서버를 포함하지 마십시오.

다수의 권한 없는 사용자가 클러스터 네트워크에 액세스하여 개인 또는 혼합 네트워크를 통해 전달되는 하트비트 메시지가 중단될 경우 클러스터가 이러한 오류에 대해 반응함으로써 IP 주소 리소스 그룹뿐 아니라 클러스터 노드 상태에도 영향을 주게 됩니다. Microsoft Exchange Server에 연결된 리소스와 같이 중요한 클러스터 리소스에 대해 장애 조치가 반복적으로 수행되면 클라이언트에서 이 클러스터에 액세스하지 못할 수도 있습니다.

Windows 방화벽을 사용하는 경우 보안 구성 마법사를 사용하여 구성합니다.
보안 구성 마법사는 클러스터 노드에 Windows 방화벽을 구성하는 과정을 단순하게 해줍니다. 자세한 내용은 서버 클러스터에 Windows 방화벽 사용을 참조하십시오.

트러스트되고 안전한 컴퓨터에서만 원격으로 클러스터 노드를 관리합니다.
원격 컴퓨터의 보안이 취약할 경우 클러스터 관리 도구에 의해 신뢰할 수 없거나 악의적인 코드가 은밀히 시작되어 클러스터에 피해를 줄 수도 있습니다.

모든 노드에서 클러스터 서비스 계정을 로컬 관리자 그룹의 구성원으로 만듭니다. 그러나 도메인 구성원 그룹의 구성원으로 만들지는 마십시오.
클러스터 서비스 계정에 가능하면 최소한의 권한만 부여하여 계정이 노출될 경우 발생할 수 있는 보안 문제를 예방합니다. 클러스터 서비스 계정에 필요한 관리 권한 및 사용 권한에 대한 자세한 내용은 클러스터 서비스를 실행할 계정 변경을 참조하십시오.

클러스터 서비스 계정을 보호하기 위한 단계를 수행하고 클러스터 서비스 계정을 사용하여 클러스터를 관리하지 마십시오.
클러스터 서비스 계정은 관리 권한 및 사용 권한을 갖습니다. 계정 사용을 제한하고, 계정 이름과 암호를 아는 사람들의 수를 제한하며, 수시로 암호를 변경하십시오.

다른 사용자 계정을 사용하여 클러스터를 관리하는 방법에 대한 자세한 내용은 사용자 권한을 부여하여 클러스터 관리를 참조하십시오.

클러스터 서비스 계정에 필요한 권한 및 사용 권한에 대한 자세한 내용은 클러스터 서비스를 실행할 계정 변경을 참조하십시오.

중단 시간 없이 클러스터 서비스 계정의 암호를 변경하는 것에 대한 자세한 내용은 클러스터 서비스 계정 암호 변경을 참조하십시오.

클러스터의 클러스터 서비스 및 응용 프로그램에 다른 계정을 사용합니다.
이렇게 하면 응용 프로그램 계정이 노출되더라도 클러스터 계정은 보호할 수 있습니다. 또한 cluster.exe를 사용하여 클러스터 서비스 계정에 대한 암호를 변경하고 하나 이상의 응용 프로그램에서 해당 계정을 사용하면 클러스터 응용 프로그램이 제대로 작동하지 않을 수 있습니다. 자세한 내용은 클러스터 서비스 계정 암호 변경을 참조하십시오.

여러 클러스터에 서로 다른 클러스터 서비스 계정을 사용합니다.
이렇게 하면 클러스터 서비스 계정이 노출되더라도 한 클러스터만 노출됩니다.

클러스터에서 모든 노드를 제거한 다음 클러스터 서비스 계정을 제거합니다.
클러스터에서 모든 노드가 제거되어도 클러스터 관리 도구는 자동으로 클러스터 서비스 계정을 제거하지 않습니다. 클러스터 서비스 계정에는 높은 수준의 관리 및 사용 권한 권한이 있어 노출될 경우 보안 문제를 일으킬 수 있습니다. 따라서 사용하지 않을 때는 이 계정을 로컬 관리자 그룹에서 제거할 것을 적극 권장합니다. 그러나 클러스터 서비스의 관리 권한 및 사용 권한은 도메인 전체가 아닌 각 클러스터 노드에 로컬로 허용되므로 계정이 노출되면 해당 클러스터 노드만 영향을 받습니다. 사용자 계정 삭제에 대한 자세한 내용은 로컬 사용자 계정삭제를 참조하십시오.

Active Directory 도메인의 클러스터의 경우 네트워크 이름 리소스에 대한 Kerberos 인증을 사용할 수 있습니다.
Kerberos 인증은 또 다른 인증 방법인 NTLM 인증보다 훨씬 더 안전합니다. Kerberos 인증을 사용할 수 있는 경우 클러스터 서비스가 네트워크 이름 리소스에 대해 만든 계정 및 가능한 경우 클러스터 서비스 계정 자체에도 특정 권한 및 사용 권한을 추가해야 합니다. 자세한 내용은 Microsoft 지원 웹 사이트(http://go.microsoft.com/fwlink/?LinkId=59994)에서 기술 자료 문서 307532, "컴퓨터 개체를 수정할 때 클러스터 서비스 계정의 문제 해결 방법"을 참조하십시오.

클러스터에서 보안 관련 이벤트를 감사합니다.
신뢰할 수 있는 사용자만 클러스터를 관리하는 권한을 갖도록 하고 권한 없는 사용자 계정이 추가되는 것을 추적하려면 로컬 관리자 그룹에 대한 변경 내용을 감사합니다. 기본적으로 서버 클러스터를 만들거나 노드를 추가할 때 클러스터 서비스 계정이 각 노드의 로컬 Administrators 그룹에 추가됩니다. 보안 이벤트 감사에 대한 자세한 내용은 보안 이벤트 감사를 참조하십시오.

클러스터 디스크의 파일이나 폴더 같은 공유 데이터에 대한 액세스를 제한하고 감사합니다.
공유 데이터에 대한 액세스를 감사하려면 모든 클러스터 노드에서 감사를 사용합니다. 자세한 내용은 클러스터에서 공유 데이터 보안을 참조하십시오.

클러스터 리소스에 대한 클라이언트 액세스를 제한합니다.
Windows Server 2003 제품군의 보안 기능을 사용하여 클러스터 리소스에 클라이언트 액세스 제한에 설명된 것과 같이 클러스터 리소스에 대한 클라이언트 액세스를 제어합니다. 클러스터 리소스에 대한 액세스를 제어할 사용자 및 그룹 계정을 만들 경우 로컬 계정이 아닌 도메인 수준 계정을 사용하여 현재 어떤 노드가 클러스터된 리소스를 소유하고 있는지에 관계 없이 적절한 액세스를 제공할 수 있게 합니다.

쿼럼 디스크에 대한 액세스를 제한하여 쿼럼 디스크에 항상 여유 공간이 충분하도록 합니다.
쿼럼 디스크를 무단으로 읽거나 쓰는 것을 방지하려면 클러스터 서비스 계정 및 로컬 관리자 그룹의 구성원에게만 쿼럼 디스크 액세스 권한을 부여할 것을 적극 권장합니다. 클러스터 서비스가 쿼럼 로그에 계속 기록할 수 있도록 하려면 쿼럼 디스크에 여유 공간이 충분해야 합니다. 쿼럼 디스크의 크기는 500MB 이상 되는 것이 좋습니다. 자세한 내용은 검사 목록: 서버 클러스터 계획 및 만들기와 디스크 리소스 보안을 참조하십시오.

클러스터에서 실행되는 모든 응용 프로그램은 신뢰할 수 있는 출처에서 제공 받은 것이어야 하며 클러스터 디스크에 대한 액세스는 클러스터 리소스로 관리되는 응용 프로그램으로만 제한되어야 합니다.
자세한 내용은 디스크 리소스 보안을 참조하십시오.

일반 스크립트 리소스가 호출하는 스크립트 파일에 보안 조치를 취합니다.
스크립트 파일의 실행 권한 및 이 스크립트에서 호출되는 API의 사용 권한에 대해 NTFS 파일 수준의 보안을 적용합니다. 자세한 내용은 클러스터 리소스에 클라이언트 액세스 제한을 참조하십시오.

일반 응용 프로그램 리소스가 호출하는 응용 프로그램은 신뢰할 수 있는 출처에서 제공 받은 것이어야 하며 해당 파일, 레지스트리 검사점 및 응용 프로그램에 필요한 기타 리소스는 안전한 위치에 보관되어야 합니다.
일반 응용 프로그램 리소스로 실행된 응용 프로그램은 관리 권한 및 사용 권한을 갖는 클러스터 서비스 계정의 컨텍스트 하에서 실행됩니다. 따라서 이러한 응용 프로그램이 신뢰할 수 있는 출처에서 제공받았는지 확인합니다. 또한 클러스터 관리자에서 일반 응용 프로그램 리소스의 매개 변수를 구성할 때 필요한 경우가 아니면 응용 프로그램이 데스크톱과 상호 작용을 선택하지 않는 것이 좋습니다. 자세한 내용은 클러스터 리소스에 클라이언트 액세스 제한을 참조하십시오.

클러스터를 원격으로 관리할 때 생성되는 클러스터 구성 로그 파일에 보안 조치를 취합니다.
원격 컴퓨터에서 새 서버 클러스터 마법사와 노드 추가 마법사를 사용하면 이러한 마법사가 생성한 클러스터 구성 로그 파일이 원격 컴퓨터의 %systemroot%\system32\LogFiles\Cluster\ClCfgSrv.log에 저장됩니다. 이 로그 파일에는 클러스터에 대한 중요한 정보가 들어 있습니다. 해당 파일에 대한 액세스를 클러스터 관리자 및 클러스터 서비스 계정으로 제한합니다. 자세한 내용은 파일 및 폴더의 사용 권한 설정, 보기, 변경 또는 제거를 참조하십시오.

참고:
 새 서버 클러스터 마법사 또는 노드 추가 마법사를 사용 중인 노드에 대해 관리 권한 및 사용 권한이 없을 경우 로그 파일은 로컬 %Temp% 디렉터리에 생성됩니다.
 

주 노드 집합 클러스터의 로컬 클러스터 디렉터리로 파일을 복사하지 마십시오.
주 노드 집합 모델을 사용할 때 각 노드는 %systemroot%\Cluster\MNS.%ResourceGUID%$\%ResourceGUID%$\MSCS에 있는 클러스터 디렉터리에 쿼럼 데이터베이스 복사본을 유지합니다. 파일을 \Cluster 디렉터리의 하위 디렉터리에 두고 주 노드 집합 리소스를 삭제하면 클러스터 서비스에서 해당 파일을 삭제합니다.

HKEY_LOCAL_MACHINE 시스템 레지스트리 하위 트리의 기본 보안 설정을 바꾸지 마십시오.
기본적으로 Builtin 폴더의 관리자 그룹 구성원 및 로컬 시스템 계정만 HKEY_LOCAL_MACHINE 시스템 레지스트리 하위 트리에 대한 모든 권한을 갖습니다. 이 레지스트리 하위 트리가 노출되면 일반 스크립트 리소스와 같은 일부 리소스를 시작하지 못할 수도 있습니다. 시스템 레지스트리 보안에 대한 자세한 내용은 레지스트리 보안 유지 관리를 참조하십시오.

서버 클러스터에서의 보안에 대한 자세한 내용은 클러스터에서 보안 관리를 참조하십시오.

반응형
728x90
300x250

[Networks] TCP/IP A,B,C 클래스 네트워크

안녕하세요. 오랜만에 글을 써보게 되었습니다. 이번 글은 TCP/IP의 A,B,C 클래스 네트워크에 대한 개론을 설명하겠습니다. IANA 또는 ISP는 기업의 규모에 따라 IP 주소 블록을 할당하며, 이 주소 블록은 통상 네트워크라 불립니다. 서브넷은 할당된 주소 세트를 분할한 하부 구조이기에 서브넷(Sub-Net)이라 불려지게 된 것입니다. 대규모 기업들은 A 클래스 네트워크(모두 할당되었기에 남은 것이 없다)를 얻고, 중간규모의 기업들은 B 클래스 네트워크(아직 남아있기는 하지만 거의 없다)를 얻게 되며, 나머지는 C클래스 네트워크(여유분이 남아있다)를 얻습니다. IP주소의 종류에는 5가지의 종류가 존재합니다.

 클래스 A주소  0 ~ 126
 예약된 루프백 주소  127
 클래스 B주소  128~191
 클래스 C주소  192~223
 멀티케스트 주소  224~239
 예약된 연구용 주소  240~255

1) A 클래스 네트워크
대규모 네트워크의 첫 8bi는 NIC에서 설정하기 때문에 내부 네트워크 관리자는 나머지 24bit를 설정할 수 있습니다. 가장 왼쪽의 8bit는 0 ~ 126 사이의 값을 가질 수 있으므로 총 127개의 A 클래스 네트워크가 존재할 수 잇따. IBM과 같은 기업들이 A 클래스를 할당받았으며 이 주소는 전부 127개뿐이다. 8bit만 고정되고 24bit가 남았다는 것은 A 클래스 네트워크가 최대 2의 24승, 즉 대량 1,600만 개에 이르는 수의 호스트를 가질 수 있음을 의미한다. A 클래스 네트워크는 General Electric(3.x.y.z), BBN(4), IBM(9), Xerox(13), Hewlett-Packard(15), DEC(16), Apple(17), MIT(18), Ford(19), Eli Lily(40), DuPont(52), Merck(54), Boeing(55), the U.S. Postal Service(56) 그리고 여러 방위 그룹들(누가 이것을 만들었는 지 생각을 해보시기 바랍니다)이 속해 있습니다.
(A 클래스 네트워크만으로도 2주정도의 회의를 할 수 있습니다)

또한, 45.x.y.z 네트워크 세트를 가지는 Networld+Interop과 U.K Department of Social Security(51), Norsk Informasjonsteknologi(32) 같은 할당이 예상되지 않았던 그룹들도 있습니다.

2) B 클래스 네트워크
중간 규모 네트워크에는 가장 왼쪽 16bit가 미리 할당되며, 나머지 16bit를 로컬에서 사용할 수 잇다. B 클래스 주소는 첫번째 쿼드에 항상 128 ~ 191 사이의 값을 가지고, 두번째 쿼드에는 0 ~ 255 사이의 값을 가진다. 그러므로 B 클래스에는 최대 16,384개의 호스트가 존재 할 수 있다. B 클래스 네트워크를 할당 받은 업체로는 Microsoft와 Exxon 같은 업체가 있습니다.(Apple과 IBM은 A 클래스를 할당받았지만, Microsoft는 B클래스 네트워크를 할당 받았습니다. 물론 이것 때문에 빌게이츠가 밤잠을 설칠 것이라는 생각은 하지 않습니다.)

3) C 클래스 네트워크
소규모 네트워크에는 가장 왼쪽 24bit가 미리 지정되어 있으며, 오직 8bit만을 로컬 관리에 활용할 수 있습니다(이는 C 클래스 네트워크가 단지 254개의 호스트만을 가질 수 있음을 의미합니다).
그러나 NIC가 24bit 부분을 처리하기 때문에 C 클래스 네트워크 주소는 할당하기가 쉽다는 이점을 가지고 있습니다. C 클래스 주소는 192 ~ 223 사이의 값으로 시작하고 두번째와 세번째 쿼드는 0 ~ 255 사이의 값을 가질 수 있으므로 전체 C 클래스 네트워크의 수는 2,097,152개에 이른다고 합니다.
마지막으로 할당되는 C 클래스 네트워크는 223.255.255.z일 것이며, 이 네트워크의 소유자는 오직 z만을 제어할 수 있습니다.

예약된 주소 : 일부 주소는 멀티케스트와 연구 목적으로 예약이 되어 있으며, 이들은 네트워크에 할당하여 사용할 수 없는 주소들이다. 이 중에서 224.0.0.0 범위의 주소는 네트워크에서 여러 그룹의 컴퓨터들로 데이터를 전송하기 위한 멀티캐스트 용도로 예약이 되어있습니다.

반응형

+ Recent posts