검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : Centralized RSYSLOG Server Monitoring

  이 글에서는 다수의 클라이언트 서버의 syslog 데이터를 하나의 서버로 모아서 모니터링하는 방법을 다룹니다. 기본적으로 이 튜토리얼은 데비안 6(스퀴즈)를 기반으로 하고 있지만 설치를 제외하고는 다른 배포판이라도 다를 게 없습니다. 또한 syslog 데이터를 수집하기 위해 아파치 웹서버, MySQL 데이터베이스 서버를 설치할 것이며, 수집한 데이터를 웹 브라우저로 쉽게 보기 위해 LogAnalyzer도 설치할 것입니다.

RSYSLOG 서버 설치
  이 예제에서는 서버의 도메인이 rsyslog.domain.com이며 IP는 192.168.0.15라고 가정합니다. 이 튜토리얼에 필요한 패키지 중 LogAnalyzer를 제외한 모든 패키지를 설치하는 명령어는 다음과 같습니다.
# apt-get update
# apt-get upgrade
# apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
  만약 MySQL을 위의 과정 중 설치했다면 설치 중 나오는 질의를 통해 MySQL 서버의 패스워드를 설정합니다.

  경우에 따라 아래 설치가 추가로 필요할 수도 있습니다.
# apt-get install linux-kernel-headers
  모든 서비스를 리스타트합니다.
# /etc/init.d/rsyslog restart
# /etc/init.d/mysql restart
# /etc/init.d/apache2 restart
  TCP 포트 중 80과 3306이 잘 열렸는지 확인합니다. RSYSLOG의 포트는 아직 열리지 않은 게 정상입니다.
# rsyslog:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      415/mysqld       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      581/apache2
  이제 rsyslog의 데이터베이스를 생성합니다.
# mysqladmin -u root -p create rsyslog
  그리고 MySQL 커맨드 쉘을 연 후 rsyslog 사용자를 생성합니다.
# mysql -u root -p
*패스워드 입력 후*
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY '계정이-사용할-패스워드';
mysql> FLUSH PRIVILEGES;
mysql> quit
  이제 rsyslog의 설정 파일을 수정하기 위해 파일을 엽니다.
vi /etc/rsyslog.conf
  아래 줄들을 추가합니다. 패스워드를 위에서 입력했던 것으로 바꿉니다.
$ModLoad MySQL
*.*       >127.0.0.1,rsyslog,rsyslog,계정이-사용할-패스워드
  그리고 TCP를 통해 syslog 데이터를 받기 위해 일부 설정의 주석을 제거합니다.
# /etc/rsyslog.conf Configuration file for rsyslog v3.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
$ModLoad MySQL
*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
  이제 rsyslog 서비스를 재시작하고 80, 514, 3306 포트가 정상적으로 열렸는지 확인합니다.
# /etc/init.d/rsyslog restart
# rsyslog:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      618/rsyslogd  
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      415/mysqld       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      581/apache2
  이제 LogAnalyzer를 다운받아 아파치 웹 서버가 로그를 출력하도록 설정합니다.
# cd /tmp
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.1.tar.gz
# tar xvzf loganalyzer-3.4.1.tar.gz
# mv loganalyzer-3.4.1/ /var/www/
# cd /var/www
# chown www-data:www-data * . -Rf
# mv loganalyzer-3.4.1/ loganalyzer
# cd contrib/
# cp * ./../src/
# cd ./../src/
# sh ./configure.sh
  이제 웹 브라우저를 통해 LogAnalyzer 설정으로 들어가 마지막 설정을 합니다. 이 튜토리얼 내용을 기준으로 한다면 웹 브라우저에서 아래의 주소를 입력하면 됩니다.
http://192.168.0.15/loganalyzer/src/install.php

  이것으로 서버의 모든 설정이 끝났습니다. 이제 rsyslog 서버에 syslog 데이터를 보낼 RSYSLOG 클라이언트들을 설정합니다.


RSYSLOG 클라이언트 설정
  필요한 일은 rsyslog.conf 파일을 설정한 후 서비스를 리스타트하는 것 뿐입니다.(대부분의 현대 리눅스 배포판들은 rsyslog를 기본으로 포함하고 있습니다.)
# vi /etc/rsyslog.conf
  네트워크 연결이 끊켰을 때 사용하는 워크 스풀 디렉토리에 대한 내용을 추가하고 rsyslog 서버 IP 주소를 설정합니다. 워크 스풀 디렉토리는 설정과 별도로 mkdir 명령어를 통해 만들어야 합니다.
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
$WorkDirectory /rsyslog/work # default location for work (spool) files
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE
###########################
#### GLOBAL DIRECTIVES ####
###########################
  그리고 rsyslog 서비스를 재시작한 후 서버의 514 포트에 연결됐는지 확인합니다.
# /etc/init.d/rsyslog restart
# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.0.100:49188     192.168.0.15:514         ESTABLISHED 13289/rsyslogd
  모든 설치와 설정이 성공적으로 끝나면 앞서 서버에 설치한 LogAnalyzer를 통해 아래와 같은 모습을 볼 수 있습니다.

출처 : 참조 원문 사이트



2013/06/28 15:49 2013/06/28 15:49
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : SSH: The VPN No One Remembers

  사실 이전에 VPN 관련 글과 SSH 관련 글에서 비슷한 내용을 다루긴 했는데 VPN 능력 자체를 메인으로 다룬 것도 아니고 이 글은 사용법이 조금 달라서 작성하기로 했습니다. 그렇다고 이게 그 기능을 자세히 다뤘냐면 그건 또 아닌 것 같지만...

  SSH를 통한 VPN 활용은 일반적인 전용 VPN 솔루션에 비하면 그리 강력하지 않습니다. 서버와 클라이언트 사이의 모든 패킷을 암호화하는 것이 아니라 하나의 포트를 오가는 패킷을 암호화하며 그로 인해 이 VPN을 사용할 응용 프로그램이 프록시 기능을 지원해야 쓸 수 있기 때문이죠. 허나 적절히 활용한다면 닭 잡는데 소 잡는 칼은 쓸 일을 없앨 수 있을 것입니다.

  먼저 SSH가 서버에 이미 설치되어 있다고 가정합니다. 그리고 기존의 SSH 서비스는 그대로 두고 새로운 포트를 VPN 용도로 사용한다고 가정하겠습니다. 이를 위해 먼저 기존의 설정 파일을 복사합니다.
cp /etc/ssh/sshd_config /etc/ssh/proxy_config
  새롭게 복사한 설정 파일에서 가장 중요한 건 포트입니다. 새롭게 사용할 포트를 정합니다.
Port ####
  보안을 위해 root 로그인 금지도 걸어줍니다.
PermitRootLogin no
  SSH 서버가 프록시 서버 역할을 할 수 있도록 아래 옵션을 활성화합니다. 예전에는 없어도 됐다는 것 같은데 지금은 필요하다고 합니다. 확인해보니 디폴트도 no더군요.
PermitTunnel yes
  추가로 아래처럼 ACL을 걸 수도 있습니다. 이건 저도 처음 보는 것 같네요.
AllowUsers user1 user2 etc...
AllowGroups group1 group2 etc...
  이제 방화벽을 적절히 설정하고 필요한(=SSH가 사용할) 계정과 그룹을 생성합니다. 물론 SSH 설정 파일에 해당 계정과 그룹이 적혀있어야겠죠. 이때 보안을 위해 사용자 계정에 쉘을 주지 않는 것이 좋습니다. 이제 기존의 스크립트를 복사 및 수정하여 기존의 sshd_config 파일을 돌리듯 돌리거나 간단히 아래 명령어를 실행합니다.
/usr/sbin/sshd -f /etc/ssh/sshd_proxy
  만약 스크립트를 사용한다면 스크립트 내에 있는 PID_FILE 변수와 설정 파일명을 적절히 수정해야 한다. 예를 들어 PID_FILE 변수는 sshd_proxy.pid 처럼 기존 이름과 같지 않게 해야 하며 설정 파일도 복사한 파일명으로 바꿔야 한다.

  서버가 정상적으로 작동한다면 클라이언트가 될 머신에서 터미널을 열어 아래를 실행합니다.
ssh -fND localhost:로컬_포트_번호 -p 서버의_포트 접속_계정명@원격_서버_IP
  만약 백그라운드에서 돌아가길 원한다면 옵션에서 f를 제외합니다. N 옵션은 접속 후 원격 명령어를 실행하지 않는 옵션으로 지금처럼 포워딩을 할 때 사용하는 옵션입니다. '로컬_포트_번호'에는 1024 보다 높으면서 현재 사용하지 않는 포트 번호를 씁니다. 이제 VPN을 이용할 프로그램(브라우저, 메신저, 이메일 등)에서 프록시 기능을 활성화하고 호스트네임에 localhost, 포트에 위에서 정한 포트를 입력하여 프록시를 작동시킵니다.

  예를 들어 로컬 포트가 5555, 서버가 열고 있는 포트가 9999, 접속 계정명이 bob, 서버의 IP가 255.244.222.111이라면 아래와 같은 명령어가 됩니다.
ssh -fND localhost:5555 -p 9999 bob@255.244.222.111
  참고로 예전 글(VNC 패킷을 터널링하기 위해 SSH를 쓰던 글)에서는 -D가 아닌 -L 옵션을 쓰고 그로 인해 추가로 최종 포워딩 대상과 포트를 적었었는데 -D 옵션을 사용하면 반대편으로 포워딩 후 서버에서 어플리케이션 프로토콜을 통해 어디로 접속할지 결정합니다. 두 옵션의 차이를 설명하자면 아래와 같습니다.
  • -L : 이전 VNC 때처럼 터널링 생성 후 프로그램에서 접속 목적지를 터널링이 생성된 localhost의 특정 포트로 설정하여 번대편 터널링 서버까지 패킷을 포워딩한 후 그곳에서 터널링을 할 때 지정했던 곳으로 다시 포워딩할 경우 사용.(프로그램(직접 연결)->시큐어 터널(터널링 구간)->SSH서버->지정한 주소의 지정한 포트(보통은 동일 서버의 특정 포트))
  • -D : 네이트를 우회해서 사용할 때처럼 터널링 생성 후 프로그램에서 프록시 기능을 사용해 터널링이 생성된 localhost의 특정 포트로 프록시 서버를 설정하여 반대편 터널링 서버까지 패킷을 포워딩한 후 그곳에서 프로그램이 정한 진짜 목적지로 다시 포워딩할 때 사용.(프로그램(프록시 이용)->시큐어 터널(터널링 구간)->SSH서버->프로그램이 지정한 곳)



2013/06/27 16:53 2013/06/27 16:53
Posted
Filed under 프로그램과 명령어/서버와 서비스
홈페이지 : http://www.openmediavault.org

  NAS용 오픈소스 솔루션으로 데비안을 기반으로 하고 있습니다. 기본 NAS 기능 외에도 SSH, FTP, SMB/CIFS, 미디어 서버 등 여러 서비스와 플러그인을 통한 확장 기능을 가지고 있습니다. 다만 문제는 이걸 돌릴 하드웨어가 있어야 한다는 거겠죠? 이런 솔루션을 쓸 일이 있을런지 모르겠네요.




2013/06/21 14:56 2013/06/21 14:56
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : Setting Up Remote Graphical Desktops on Linux

  원격 그래픽 데스크탑 기술 중 유명한 것으로 크게 Virtual Network Computing(VNC)와 Remote Desktop Protocol(RDP)이 있습니다. VNC는 Remote FrameBuffer(RFB) 프로토콜을 사용하며 이것은 플랫폼에 독립적이고 리눅스, 윈도우, Mac OS X에 대해 오픈 소스 서버와 클라이언트 프로그램이 존재합니다. RDP는 마이크로소프트 사가 개발했으며 윈도우에서 기본적으로 사용되는 원격 데스크탑 프로토콜입니다.

  VNC가 오픈 소스의 이점, 플랫폼 독립적, 기능상의 장점을 생각했을 때 최고라고 할 수 있지만 윈도우가 주로 쓰이는 곳에서는 리눅스 머신에서 조차도 RDP가 최상의 솔루션일 수 있습니다. VNC 서버와 클라이언트를 윈도우 머신 전체에 설치하는 것보단 리눅스 머신들에 RDP 서버와 클라이언트를 설치하는 것이 더 편하기 때문입니다.

  이 글에서는 리눅스에서 RDP를 사용하는 방법을 설명합니다. 먼저 리눅스에 RDP 서버를 설치하여 윈도우 유저가 윈도우에 내장된 원격 데스크탑 접속 클라이언트를 이용해 원격으로 리눅스에 접속할 수 있도록 만들 겁니다. 그리고 리눅스에 RDP 클라이언트를 설치하여 윈도우나 다른 리눅스 머신에 원격으로 접속하는 것에 대해 알아봅니다.


xrdp 서버 설치
  서버로는 오픈 소스인 xrdp 서버를 사용합니다. 이것은 Xvnc나 X11rdp를 이용해 새로운 X 윈도우 인스턴스를 보여줍니다. 주의할 점은 원격 유저가 실제 데스크탑에 열려진 세션이 아니라 새로운 데스크탑 세션을 부여받는다는 겁니다. 만약 (윈도우의 RDP 서버처럼)네이티브 데스크탑 세션에 접속하는 방식을 원한다면 x0vncserver를 다운로드해서 사용하면 됩니다.

  먼저 자신의 리눅스 배포판에 맞는 xrdp 패키지를 설치합니다. 자신의 배포판과 패키지 매니저에 맞는 패키지를 찾을 수 없다면 차선책으로는 소스를 다운로드하여 수동으로 빌드를 해야 합니다.

  xrdp 설치가 끝나면 자동으로 클라이언트의 접속을 받는 상태가 됩니다. 단, 만약 리눅스 머신에 방화벽이 설치되어 있다면 RDP의 디폴트 포트은 TCP 3389번 포트를 열어서 클라이언트가 접속할 수 있도록 해야 합니다.

  만약 외부에서 인터넷을 통해 사설 네트워크에 있는 여러 리눅스 머신으로 원격 접속을 할 수 있게 하려면 사설 네트워크에 있는 각 머신마다 xrdp 서버가 사용할 포트를 다르게 변경해야 합니다. 원격 접속을 받는 윈도우 머신이 있다면 그 머신이 사용할 포트도 변경해야 합니다. 그 후 라우터에서 포트별로 포워딩을 설정해야 합니다. 물론 각 컴퓨터 내의 방화벽에서도 외부에서 자신이 사용할 포트에 접속하는 것을 허용하도록 설정해야 합니다.

  xrdp가 사용할 포트를 변경하려면 루트 권한으로 /etc/xrdp/xrdp.ini 파일을 열어 'Global' 섹션에 있는 포트 항목을 수정한 후 '/etc/init.d/xrdp restart'를 실행하여 xrdp를 리스타트하면 됩니다. 윈도우의 경우 레지스트리 수정을 통해 사용할 포트를 변경할 수 있습니다.

  포트를 전부 변경하는 위의 방법 대신 라우터에서 디폴트 포트인 3389번 포트에 대해 사설망 내에 있는 하나의 머신으로만 포워딩시키고 그 머신에서 사설망 내의 다른 컴퓨터들로 원격 접속을 하는 구조로 만드는 방법도 있습니다. 즉, 사설망 내에 중간 다리 역할을 하는 원격 접속 전용 머신을 두는 방법입니다. 이렇게 하면 모든 머신이 RDP의 포트를 변경할 필요 없이 디폴트인 3389번 포트를 사용할 수 있습니다.


리눅스 머신에 RDP 클라이언트 설치
  리눅스에서 RDP(그리고 xrdp) 서버에 접속하려면 rdesktop 같은 RDP 클라이언트를 설치해야 합니다. 그리고 tsclient 같은 GUI 프론트엔드를 설치하면 더 편하게 사용할 수 있습니다. 자신의 배포판에 맞는 패키지를 찾아 설치한 후 Terminal Server Client 프로그램을 통해 원격 접속을 할 수 있습니다.


xrdp 서버에 접속하는 방법
  윈도우의 경우 마이크로소프트의 원격 데스크탑 접속 프로그램, 리눅스의 경우 바로 위에서 설명한 rdesktop과 tsclient를 통해 앞서 설치한 xrdp 서버에 접속할 수 있습니다.

  RDP의 디폴트 포트 번호(3389)로 접속할 때는 IP나 도메인만 적으면 됩니다. 만약 디폴트(3389)가 아닌 포트로 접속하려고 한다면 그 뒤에 콜론(:)을 쓴 후 원하는 포트 번호를 적습니다.(예-192.168.0.100:3390)

  일단 RDP를 통해 접속하여 로그인 화면이 나타나면 해당 서버에 있는 계정으로 로그인을 합니다. 만약 서버 머신과 같은 네트워크 안에 또 다른 원격 데스크탑 서버가 있다면 접속한 서버에서 다시 그 서버로 원격 접속을 할 수 있습니다.

2010/12/21 15:36 2010/12/21 15:36
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : My most used htaccess settings

  아파치 웹 서버에서  .htaccess라는 파일을 디렉토리에 두면 그 디렉토리와 하위 디렉토리 내에 한해서 웹 서버의 설정 중 일부를 변경할 수 있습니다. 물론 서버의 설정 파일에 접근할 수 있다면 <Directory> 섹션을 이용해 설정하는 것이 더 좋지만 그게 항상 가능한 일은 아닙니다. 대표적으로 웹 호스팅을 받고 있는 경우가 그렇습니다. 대부분의 호스팅 업체는 이 파일을 통해 서버의 동작을 변경하는 것만 허용하고 있습니다.

  .htaccess 파일(앞에 점이 붙었다는 것 주의)은 일반 텍스트 파일이므로 이후 설명할 내용들은 일반 텍스트 에디터로 작성한 후 설정을 적용할 서버의 디렉토리에 업로드하면 됩니다.

  이 파일을 통해 할 수 있는 대표적인 예로는 디렉토리 접근 시 패스워드 요구, 리다이렉션 생성, php 설정 조정, 파일의 캐싱 제어, 파일 확장자에 따른 서버의 처리 방식 제어(예: HTML 파일을 그냥 전송하는 대신 php 파일처럼 처리) 같은 것이 있습니다.


more..


more..


more..


more..


more..


more..


more..


more..

2010/12/08 16:40 2010/12/08 16:40
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : 10 Command-line Timesavers for MySQL Tasks

  MySQL 클라이언트에서 유용히 써먹을 수 있는 10가지 명령어입니다.


1. 자동으로 로그인
  MySQL 서버가 제대로 설정되어 있다면 인증 절차가 필요합니다. 보통은 mysql 명령어에 인자로 유저명을 입력한 후 패스워드를 입력해서 로그인을 합니다.
%>mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
  이 과정을 자동으로 넘기려면 홈 디렉토리에 .my.cnf라는 파일을 만들고 아래의 내용을 적습니다. 만약 윈도우라면 MySQL 설치 디렉토리에 my.ini라는 파일명으로 만들어야 합니다.
[client]
host     = SQL 서버
user     = 유저명
password = 패스워드
  이제 mysql 명령어만 쳐도 바로 접속할 수 있게 됩니다. 주의할 점은 파일에 로그인 정보가 들어가 있기 때문에 퍼미션을 남이 볼 수 없도록 적절히 조정해야 한다는 겁니다.


2. 자동으로 데이터베이스 접근
  로그인이 끝나면 원하는 데이터베이스로 접근을 해야 합니다. 일반적으로는 use 명령어를 사용하지요.
mysql>use mydatabase;
  근데 매번 같은 데이터베이스를 사용할 경우 이것도 귀찮습니다. 위에서 만들었던 설정 파일의 '[client]' 섹션 내에 아래의 줄을 추가하면 로그인 후 지정한 데이터베이스로 접근하게 됩니다.
database = your_database_name

 
3. 스크립트를 이용한 명령어 입력
  스키마를 직접 코딩할 경우 미리 SQL문을 파일로 저장한 후에 아래의 방법으로 사용할 수 있습니다. 물론 앞서 설명한 팁을 사용하지 않는다면 인증과 관련한 옵션도 적어야 하고 그에 이어 패드워드도 적어야 합니다.
%>mysql < schema.sql
  참고로 원문의 필자는 새로운 데이터베이스의 스키마와 관계를 디자인할 때 MySQL Workbench(스키마를 그래픽으로 관리, MySQL 서버와의 변경점 동기화, SQL문을 파일로 익스포트 및 MySQL에 임포트)를 이용한다고 합니다.


4. 출력을 수직으로 정렬
  MySQL은 테이블에 칼럼이 조금만 많아도 보기가 참 짜증납니다. 아래처럼요.
mysql> select * from accounts where username = 'wjgilmore';
+----+-----------+------------------+------------------------------
----+----------+-----------+------------+-----------+--------------
--------------------+---------------------+---------------------+
| id | username  | email            | password                   
     | zip_code | latitude  | longitude  | confirmed | recovery    
                    | created_on          | last_login          |
+----+-----------+------------------+-------------------------------
---+----------+-----------+------------+-----------+-----------------
-----------------+---------------------+---------------------+
|  7 | wjgilmore | wj@wjgilmore.com | 2b877b4b825b48a9a0950dd5bd1f264d
 | 43201    | 39.984577 | -83.018692 |         1 |
8bnnwtqlt2289q2yp81tuge82fty501h | 2010-09-16 14:48:41 | 2010-10-27 15:49:44 |
+----+-----------+------------------+----------------------------------
+----------+-----------+------------+-----------+----------------------
------------+---------------------+---------------------+
  G 명령어를 사용하면 위 내용을 아래처럼 깔끔하게 수직 정렬로 변환하여 출력할 수 있습니다.
mysql> select * from accounts where username = 'wjgilmore'\G
*************************** 1. row ***************************
        id: 7
  username: wjgilmore
     email: wj@wjgilmore.com
  password: 2b877b4b825b48a9a0950dd5bd1f264d
  zip_code: 43201
  latitude: 39.984577
 longitude: -83.018692
 confirmed: 1
  recovery: 8bnnwtqlt2289q2yp81tuge82fty501h
created_on: 2010-09-16 14:48:41
last_login: 2010-10-27 15:49:44


5. Tab키 자동완성 기능 활성화
  Tab키를 이용해 데이터베이스, 테이블, 칼럼 이름에 대한 자동완성 기능을 사용할 수 있습니다. mysql을 실행할 때 --auto-rehash 옵션을 넣거나 앞서 본 설정 파일(또는 MySQL 디렉토리의 my.cnf 또는 my.ini 파일)에서 '[mysql]' 섹션에 'auto-rehash'라는 줄을 넣으면 됩니다.
[mysql]
auto-rehash
  그런데 제가 우분투 저장소의 MySQL로 확인해 본 결과 이게 디폴트 옵션입니다. 따라서 이 기능을 일부로 막은 MySQL 서버가 아닌 이상 직접 이 설정할 일은 없을 것 같습니다.


6. 프롬프트 변경
  프롬프트를 현재 사용 중인 데이터베이스로 나오게 만들면 엉뚱한 데이터베이스에 명령을 내리는 것을 미연에 방지할 수 있습니다. 두 가지 방법이 있는데 첫 번째 방법은 MySQL 서버에 접속해서 아래의 명령어를 통해 해당 접속 세션 동안만 변경시키는 겁니다.
mysql>prompt [\d]>
  두 번째 방법은 아래의 줄을 이전의 그 설정 파일에 추가해서 영구적으로 반영시키는 겁니다.
prompt = [d]>
  MySQL 매뉴얼을 참조하여 테이터베이스 이름 말고도 시간, 날짜, 호스트명, 유저명 등을 넣을 수 있습니다.


7. '안전 업데이트'를 통해 대형참사 방지
  'UPDATE' 명령어를 쓸 때 'WHERE'를 빼먹고 써서 대형참사를 불러일으키는 경우가 있습니다. 예를 들어 값을 찾아 변경하는 아래의 SQL을 봅시다.
mysql>UPDATE users set User = 'EarthCrash' WHERE User = 'test';
  위의 SQL 문을 실행해야 하는데 실수로 아래의 SQL 문을 실행했다면?
mysql>UPDATE users set User = 'EarthCrash';
  users 테이블의 User 칼럼에 있는 모든 값이 'EarthCrash'로 바뀌는 대형참사가 발생합니다. 이런 참사를 막는 방법은 매우 간단합니다. 지금까지 계속 언급한 그 설정 파일에 아래의 줄을 추가하면 됩니다.
safe-updates


8. 명령어 문서 사용
  'help' 명령어를 치면 많이 사용하는 명령어의 목록이 나오는데 그 뒤에 자세히 알고 싶은 명령어를 입력하면 문법을 비롯한 상세한 설명을 볼 수 있습니다.
mysql>help describe;
Name: 'DESCRIBE'
Description:
Syntax:
{DESCRIBE | DESC} tbl_name [col_name | wild]

DESCRIBE provides information about the columns in a table. It is a
shortcut for SHOW COLUMNS FROM. These statements also display
information for views. (See [HELP SHOW COLUMNS].)
...


9. 페이저(Pager) 사용
  테이블의 열이 많아 출력 결과가 한 화면을 넘어가면 흔히 'LIMIT'절을 사용하곤 하는데 그 대신 시스템의 페이징 유틸리티(more)를 이용해 페이저를 활성화시켜 편하게 볼 수 있습니다.
mysql>pager more
PAGER set to 'more'
  페이저를 비활성화하고 싶을 땐 'nopager' 명령어를 사용하면 됩니다.


10. 출력을 파일로 저장
  SQL 문의 출력 결과를 텍스트 파일을 저장해야 할 때가 있는데 'SELECT INTO OUTFILE' 명령어를 사용할 수도 있지만 'tee' 명령어를 활성화하여 출력 파일명을 지정하면 이후 모든 출력이 지정한 파일로 보내집니다.
mysql>tee sales_report.txt


2010/12/01 16:42 2010/12/01 16:42
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : 6 of the Best Free Linux Server Provisioning Tools

  6개의 서버 세팅과 관련된 툴들을 소개하는 글에서 가장 괜찮다는 2개를 소개합니다. 절대 6개 다 소개하려다가 귀찮고 능력 밖으로 보여서 2개만 소개하는 거 아닙니다.(......) 가장 괜찮은 거라서 그런지 기능이 너무 많네요; 클러스터링에 대한 기능이 많은데 클러스터링은 썬 클러스터 일주일 배운 게 꼴랑 전부라서 저로선 프로그램 특징을 읽는 것만으로도 벅차네요. 나중에 내공 좀 올리고 다시 봐야 할 듯.

  사실 정확히는 서버 프로비저닝 툴이기 때문에 서버 관리가 아니라 서버를 사용할 수 있게 준비(=설치)하는 툴이지만 실제로 프로그램의 능력을 보니 그걸 뛰어넘어 모니터링 같은 사후 관리 기능까지 있어서 그냥 서버 관리라는 제목을 사용했습니다.


FAI - 리눅스 시스템을 완전히 자동으로 설치하기 위한 고품질 툴
(웹사이트 - fai-project.org)

  Fully Automatic Installation의 약자로 네트워크나 커스텀 인스톨 CD나 chroot 환경을 통해 우분투, 수세, 페도라, 데비안 등 리눅스 시스템(단일 컴퓨터 또는 전체 클러스터)을 완전 자동으로 설치하기 위한 툴입니다. 물리적인 머신에 설치하는 것 외에 chroot 환경이나 가상 머신에도 활용할 수 있습니다. 또한 사용 중인 시스템의 설정 관리에도 사용할 수 있습니다.
  • 실제 사용까지 걸리는 시간 최소화.
  • 자동 설치 도구.
  • 재설치 없이 사용 중인 시스템을 업데이트하여 매일 유지보수.
  • 리눅스 시스템에 대해 사용하기 쉬운 중앙 관리 시스템.
  • 몇 대의 컴퓨터부터 수천 대의 머신까지 관리 가능한 확장성.
  • 사용하는 하드웨어와 설정이 달라도 쉽게 수용 가능.
  • 유사한 머신을 그룹으로 묶어 처리 가능.
  • 설치 대상: 데스크탑, 서버, 노트북, 베오울프 클러스터, 렌더링 서버 팜, 웹 서버 팜, 리눅스 연구소, 리눅스 수업실.
  • 대형 설치, 자동 서버 세팅.
  • 가벼움. 특별한 데몬을 실행할 필요도 없고 데이터베이스 설정도 필요 없음.
  • 설치 진행을 ssh를 통해 원격으로 완벽히 제어 가능.
  • 일간 유지보수에 활용할 수 있으며 chroot 환경을 설정 가능.
  • 커스터마이제이션을 위해 쉘, 펄, 익스펙트 스크립트, cfengine 스크립트 지원.
  • 레드 햇의 kickstart나 cobbler, 수세의 autoyast, SUN 솔라리스의 Jumpstart와 비교해서 유연성이 높음. 훅을 이용해 대상에 맞은 설정들로 세세하게 튜닝 가능.
  • XEN과 Vserver 호스트 설치에 유용.
  • GOsa를 통한 GUI 사용.


xCAT - 클러스터 관리 툴킷
(웹 사이트 - xcat.sourceforge.net)

  Extreme Cluster Administration Toolkit의 약자로 하드웨어 제어, 탐색, 배치와 클러스터 관리를 위한 분산 컴퓨팅 관리 소프트웨어입니다. 디스크가 없는 클러스터를 생성하고 관리할 수 있으며 다수의 리눅스 클러스터 머신을 동시에 설치하고 관리할 수 있습니다. 배치 작업 서브미션, 동시 라이브러리 등 클러스터에 유용한 고성능 컴퓨팅 소프트웨어를 다루는데 강합니다. 마지막으로 리눅스와 윈도우 머신을 복사 및 이미로 만드는데 사용할 수도 있습니다.
  • 클라이언트/서버 아키텍쳐. 펄을 사용할 수 있다면 어떤 시스템도 클라이언트가 도리 수 있음. 모든 통신은 암호화된 SSL을 통해 진행.
  • 역할 기반의 관리. 사용자별로 관리할 수 있는 리소스를 다르게 지정 가능.
  • Stateless와 iSCSI 지원. Stateless는 RAM-root, 압축된 RAM-root, stacked NFS-root 지원. 레드 햇과 SLES용 리눅스 소프트웨어 이니시에이터 iSCSI 지원 내장. 하드웨어 기반의 이니시에이터가 없는 시스템도 iSCSI를 사용해서 부팅 가능.
  • Xen을 이용한 가상화 완벽 지원. 가상화 게스트 사이의 라이브 마이그레이션을 위한 rmigrate 명령어 지원.
  • 확장성. xCAT 2.x는 매우 큰 확장성을 지원하여 10만 노드도 계층 관리 클라우드(HMC-Hierarchical Management Cloud)를 통해 구성 가능. 하나의 관리 노드가 다수의 stateless 서비스 노드를 보유할 수 있어 관리 효율을 극대화하고 거대한 클러스터를 관리할 수 있음. LDAP, DNS, DHCP, NTP, Syslog 등의 모든 클러스터 서비스는 계층 관리 클라우드(HMC)를 사용하여 설정. 확장성 있는 시스템 관리를 위해 아웃바운드 클러스터 관리 명령어(rpower, xdsh, xdcp 등)를 사용.
  • 자동 탐색. 전원 버튼만 누르면 물리적인 위치를 기반으로 탐색 및 환경 설정 가능.
  • 데이터베이스 백엔드 선택 가능: SQLite, PostgreSQL, MySQL
  • 플러그인 지원.
  • 쉽게 서드 파티 모니터링 소프트웨어를 xCAT 클러스터에 통합할 수 있는 모니터링 플러그인 인프라스트럭쳐. SNMP, RMC, Ganglia, Performance Copilot을 위한 플러그인 지원.
  • xCAT DB 테이블의 변화를 감시하기 위한 알림 인프라스트럭쳐 사용 가능.
  • SNMP 모니터링. 트랩 핸들러가 모든 SNMP 트랩을 처리.
  • 노드 상태 업데이트.
  • 중앙 집중 콘솔과 시스템 로그.
  • 노드에 대한 소프트웨어/펌웨어 인벤토리 명령어. 이미지에 대한 소프트웨어 인벤토리.
  • 노드 설치 단계부터 추가적인 RPM을 자동으로 설치 가능.
  • 여러 OS 지원.
2010/12/01 11:51 2010/12/01 11:51
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : The Perfect Server - Ubuntu Maverick Meerkat (Ubuntu 10.10) [ISPConfig 2]
ISPConfig 홈페이지 : http://www.ispconfig.org/


  우분투 서버 10.10를 가지고 OS 설치부터 ISP와 호스팅에 필요한 모든 서비스를 대~충 설치하는 내용의 포스팅입니다. 자세한 세팅 내용이나 친절한 설명 같은 건 없습니다. 설치하는 서비스 목록은 아래와 같습니다.
  • 웹 서버: Apache 2.2.16 + PHP 5.3.3, Python, Ruby, WebDAV
  • Database Server: MySQL 5.1.49
  • Mail Server: Postfix(SMTP-AUTH와 TLS 포함)
  • DNS Server: BIND9
  • FTP Server: proftpd
  • POP3/IMAP: Courier-POP3/Courier-IMAP(Maildir 포맷 방식 사용)
  • 웹 사이트 통계: Webalizer
  • 웹 호스팅 컨트롤 패널: ISPConfig 2
  • 계정 용량 관리: Quota
  ...위의 목록을 이 포스팅에서 다 해결한다는 것을 생각하면 이미 얼마나 대충 진행될 것인지를 알 수 있습니다. ISPConfig는 3까지 나왔는데 앞으로 설명할 방법은 ISPConfig 2하고만 제대로 된다고 하니 참고하시기 바랍니다.


more..



more..



more..



more..



more..



more..



more..



more..



more..



more..


more..



more..



more..



more..



more..



more..



more..



more..



more..



2010/11/30 15:44 2010/11/30 15:44
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : How to set up a Linux OpenVPN client
이전 글 : [시스템-리눅스] OpenVPN 서버 맛보기 설치

  이미 지난 글에서 서버를 설치할 때 많은 것을 알아봤기 때문에 클라이언트 설치 때 알아야 할 것이 많지는 않습니다. 아니, 클라이언트를 설치하는데 많은 걸 알아야 한다는 게 말이 안 되는 거 같지만...

  먼저 똑같이 openvpn 패키지가 필요합니다. 서버 때처럼 설치를 해줍니다. 그리고 서버에서 만들었던 인증서와 키 중 CA 인증서(ca.crt)와 클라이언트의 인증서 및 키(client.crt, client.key)가 필요합니다. 저번의 경우 client1과 client2라는 이름으로 클라이언트의 인증서 및 키를 생성했으므로 client1.crt와 client1.key 파일(또는 client2의 같은 확장자 파일들)이 해당됩니다. 복사 위치는 /etc/openvpn 디렉토리입니다.

  그리고 서버 때와 비슷하게 설정 파일을 가져와야 합니다. 이번에는 클라이언트용 샘플 설정 파일을 /etc/openvpn 디렉토리로 가져와야 하는데 샘플 파일의 위치는 대략 아래와 같습니다.
/usr/share/doc/openvpn-버전넘버/sample-config-files/client.conf
  이 파일에서 필수적으로 확인할 설정 변수들은 아래와 같습니다.
  • remote에 서버의 도메인이나 IP를 적는다. 서버의 포트가 1194가 아닐 경우 포트도 수정한다.
  • 보안을 위해 user와 group의 주석을 삭제하여 openvpn이 일반 계정으로 실행되도록 한다.
  • ca, cert, key를 자신의 파일명에 맞게 수정한다. 특히 이전의 예제에서 인증서와 키 파일명을 client.crt, client.key가 아닌 client1.crt, client1.key로 만들었다는 것에 유의한다.
  설정을 마치면 아래의 명령어로 접속을 시도합니다.
# openvpn client.conf
  그러면 상당히 많은 메시지가 나오면서 접속이 진행되는데 'Initialization Sequence Completed'라는 메시지를 끝으로 접속이 이뤄집니다. 접속이 완료되면 아래처럼 VPN의 가상 인터페이스도 확인할 수 있습니다.
# ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  접속에 실패할 경우 서버가 제대로 실행된 상태인지, 두 시스템의 시간이 올바르게 세팅되어 있는지 보시기 바랍니다. 접속에 인증서를 사용하기 때문에 클라이언트의 시간이 인증서를 만들 당시 서버의 시간보다 과거이거나 3650일 후(인증서의 디폴트 유효기간)일 경우 'OpenVPN error=certificate is not yet valid' 같은 에러 메시지를 볼 수도 있습니다.

  클라이언트에서 서버 측에 있는 내부 네트워크의 호스트에 접근할 때 FQDN(Fully Qualified Domain Name)을 사용해서 접근하고 싶다면 해당 도메인 정보를 가지고 있는 도메인 서버의 주소를 VPN 서버에 있는 /etc/resolv.conf 파일의 맨 윗줄에 추가해야 합니다. 또한 DNS 서버에서도 10.8.0.0/32 IP 대역으로부터 오는 요청이 ACL에 막히지 않도록 해야 합니다.

2010/11/25 11:14 2010/11/25 11:14
Posted
Filed under 프로그램과 명령어/서버와 서비스
참조 원문 : How to set up an OpenVPN server
OpenVPN 홈페이지 : http://www.openvpn.net/
다음 글 : [시스템-리눅스] OpenVPN 클라이언트 설치

  OpenVPN은 리눅스, 윈도우, OS X 플랫폼을 지원하는 상당히 유명한 VPN(Virtual Private Network) 프로그램입니다. 사이트 내에 오픈 소스로 개발해서 공개하는 제품(Community Edition)과 상업으로 판매하는 제품(Access Server Edition)이 따로 존재합니다.참고로 상용 버전도 클라이언트를 2개까지 받는 것은 무료로 가능합니다.

  근데 위와 같은 장점에도 불구하고 일반적인 눈으로 보자면 설정이 좀 불구(-_-;)스럽습니다. 텍스트 기반으로 슉슉 설정해야 하는데 뭐 리눅서들에게 그건 평소의 일이니 별 걱정될 것은 없고...네트워크와 보안 관련 지식이 필요하다는 건 VPN 자체의 문턱이고...이 포스팅에서는 '한 번 돌려보는 수준'으로 알아보도록 하겠습니다. 어쨌든 설치를 시작해봅시다.

  OpenVPN 홈페이지에서 (오픈 소스 버전으로)받으시면 소스를 컴파일하셔야 할테니 귀찮으신 분은 RPM, yum, apt-get 등 자신의 배포판에 맞는 패키지 매니저를 사용해서 설치합니다. 근데 그 배포판에 있는 것이 오픈 소스 버전인지, 상용 버전의 트라이얼인지는 모르겠습니다.

  그 후 인증서를 만들기 위한 파일들을 복사합니다. 시작부터 더럽군요. 배포판마다 다를 수 있는데 아래는 CentOS를 기준으로 보여주고 있습니다.
# cd /usr/share/doc/openvpn-2.0.9
# cp -a easy-rsa /etc/openvpn/
  그리고 아래는 제 우분투에서 직접 복사한 모습입니다. 위와 경로가 쬐끔 틀리니 참고하시기 바랍니다.
$ cd /usr/share/doc/openvpn/examples/easy-rsa
$ sudo cp -a 2.0 /etc/openvpn/easy-rsa
  이제 복사한 디렉토리(/etc/openvpn/easy-rsa) 안에 들어가 보면 vars라는 파일이 있는데 이 파일의 마지막 부분에 'KEY_'로 시작하는 인증서 관련 값들을 적절히 수정합니다. 이제 아래의 방법을 통해 인증서를 만듭니다. 참고로 첫 번째 줄에서 환경 변수를 적용받아 그 아래의 작업들을 해야 하기 때문에 앞으로 실행할 파일들의 소유권을 현재 계정으로 바꾸던가 루트 계정으로 작업(우분투라면 'sudo su -' 등의 방법을 통해)을 해야 합니다.
# . ./vars   <- 환경 변수 적용
# ./clean-all   <- 초기화
# ./build-ca   <- CA의 인증서 생성
# ./build-key-server server   <- 서버의 인증서 생성
# ./build-key client1   <- 클라이언트1의 인증서 생성
# ./build-key client2   <- 클라이언트2의 인증서 생성
  각 인증서를 생성할 때마다 생성에 필요한 정보를 물어봅니다. 그 중에 "Common Name"의 경우 일종의 암묵적인 룰이 있다는데 CA(Certificate Authority)의 경우 "OpenVPN-CA", 서버의 경우 "server", 클라이언트의 경우 "client"나 클라이언트 시스템의 이름을 적는다고 합니다.

  이제 서버에서 사용할 디피-헬먼(Diffie Hellman) 파라미터를 생성합니다.
# ./build-dh
  앞선 작업들로 인해 keys 라는 서브디렉토리가 생기는데 그 안에 보면 이제까지 만든 인증서 파일들이 있습니다. 이 파일들 중 일부를 클라이언트에 복사해야 합니다. 각 클라이언트에게 필요한 파일은 ca.crt과 해당 클라이언트의 인증서와 키 파일(위 예를 기준으로 client1.crt와 client1.key)입니다. 참고로 우분투의 경우 /usr/share/doc/openvpn/examples/sample-keys에 샘플 키와 인증서가 있으므로 테스트 용도로 돌려보시려면 이걸 사용하는 것도 나쁘지 않습니다.

  위에서 만든 인증서와 키 파일들 중 서버에 필요한 파일은 ca.crt, server.key, server.crt, dh1024.pem 파일입니다. 이 파일들을 /etc/openvpn 디렉토리에 복사합니다.
# cd /etc/openvpn/easy-rsa/keys
# cp ca.crt server.key server.crt dh1024.pem ..
  이제 OpenVPN 설정 파일을 수정해야 합니다. 근데 당황스럽게도 기본 설정 파일도 디렉토리(/etc/openvpn) 안에 없습니다. 이게 무슨 bind도 아니고...다행히 샘플 파일이 아까 봤던 문서 디렉토리 쪽에 숨어 있으므로 납치합니다.
# cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/
  참고로 우분투의 경우 중간에 examples 디렉토리가 하나 더 끼어있고 설정 파일이 압축되어 있습니다. 어쨌든 이제 대망의 설정 파일을 볼 시간이지만...사실 샘플 파일에서 아무것도 고치지 않아도 돌리는 것 자체에는 문제가 없습니다. 그래도 몇 가지 설정 변수를 살펴보자면...
  • user와 group으로 OpenVPN 프로세스를 실행할 계정을 정할 수 있습니다. 주석을 제거하여 nobody/nogroup으로 실행하도록 만듭시다.
  • local로 VPN 접속을 받아들일 IP를 지정할 수 있습니다.
  • client-to-client로 클라이언트끼리 통신할 수 있게 만들 수 있습니다. 이게 없으면 클라이언트는 VPN 서버하고만 통신할 수 있고 해당 서버에 접속한 다른 클라이언트와는 통신을 할 수 없습니다.
  • push는 클라이언트에 라우팅 테이블이나 DNS 관련 설정을 전달하는데 사용합니다.
  만약 클라이언트가 서버하고만 통신을 할 것이 아니라 해당 서버의 다른 클라이언트(설정 파일에서 client-to-client 옵션 필요)나 서버가 속한 다른 내부 네트워크(설정 파일에서 push 옵션을 통해 별도의 설정도 필요)와도 통신을 해야 한다면 아래의 방법으로 IP 포워딩을 활성화합니다.
# echo 1 > /proc/sys/net/ipv4/ip_forward
  또한 리붓 후에도 이 설정을 유지하려면 /etc/sysctl.conf 파일에서  'net.ipv4.ip_forward = 1' 앞에 있는 주석을 지워야 합니다.

  마지막으로 중요한 것이 있는데 만약 push를 통해 외부에서 접속한 클라이언트가 서버가 속한 다른 내부 네트워크와 통신할 수 있게 만든 상태라면 서버쪽의 라우터에서 내부 네트워크로부터 외부의 클라이언트로 갈 수 있게 라우팅 테이블을 설정해줘야 한다는 겁니다. 그렇지 않으면 아래와 같은 일이 발생합니다.
  1. OpenVPN은 디폴트 설정을 기준으로 10.8.0.0/24 네트워크를 사용하는데 해당 네트워크에 대한 라우팅 테이블 엔트리는 OpenVPN 서버와 클라이언트들만 가지고 있다.
  2. 클라이언트(IP 10.8.0.10)는 서버쪽 사설 네트워크 안에 있는 호스트(IP 192.168.10.20)에게 핑을 날렸다.
  3. 서버를 거쳐 핑을 받은 호스트는 대답을 하기 위해 상대의 IP를 봤다. 그런데 자신의 IP와 다른 네트워크의 IP였다. 따라서 자신의 디폴트 게이트웨이(라우터)에게 처리를 넘긴다.
  4. 라우터는 자신의 라우팅 테이블을 봤다. 그런데 그 네트워크를 위한 특별한 엔트리가 없다. 따라서 자신도 마찬가지로 다음 홉(아마도 ISP쪽)에게 처리를 넘긴다. 하지만 해당 IP는 사설 IP 대역에 속하기 때문에 답변은 돌아오지 않는다. 결국 서버쪽 사설 네트워크 안에 있는 호스트는 VPN 클라이언트로부터 받은 핑에 대한 대답을 할 수 없게 된다.
  이 문제를 해결하려면 디폴트 설정을 기준으로 라우터가 '10.8.0.0/24 네트워크는 10.8.0.1가 알고 있다'라는 엔트리를 라우팅 테이블에 올려놓고 있어야 합니다. 참고로 10.8.0.1은 OpenVPN 서버의 VPN용 IP입니다. 물론 서버가 게이트웨이 역할도 동시에 맡고 있다면 지금 한 이야기는 다 필요 없는 이야기입니다.

  모든 설정을 마치고 OpenVPN 서버를 올립니다.
# /etc/init.d/openvpn start
  이상으로 간단히 OpenVPN 서버를 세팅하는 방법을 알아봤습니다. 바로 이어서 OpenVPN 클라이언트를 설치하고 설정하는 것에 대해 알아보겠습니다.


다음 글 : [시스템-리눅스] OpenVPN 클라이언트 설치
2010/11/24 22:56 2010/11/24 22:56