'2013/04'에 해당되는 글 6건

  1. 2013.04.30 Puppet 설정 (수정 중)
  2. 2013.04.16 Puppet 설치 및 기본설정 2
  3. 2013.04.11 AD 구성
  4. 2013.04.09 Windows FTP Script
  5. 2013.04.05 MS-SQL Version 확인
  6. 2013.04.04 fail2ban
posted by 은이종 2013. 4. 30. 17:49

1. 설정시 참고 사이트

http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=884888

 

2.. apache, Passenger 연동하기

Passenger 는 Apacche 2.x 확장기능으로 Apache 에서 Rails 나 Rack applicaiton 을 실행할 수 있다.

Puppet (>0.24.6) now ships with a Rack application which can embed a puppetmaster. Puppet (>0.24.6) 은 이제 puppetmaster 를 내장할 수 있는 Rack applicaiton 이 포함되어 있다.

 

(1) passenger 설치 (참고 http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger)

puppetmaster 서버의 puppet.conf 설정에 아래 내용 추가

[puppetmasterd]

ssl_client_header = SSL_CLIENT_S_DN

ssl_client_verify_header = SSL_CLIENT_VERIFY

 

(2) Apache2, Rack and Passenger 설치
yum install httpd httpd-devel ruby-devel rubygems

gem install -v 1.1.0 rack

gem install passenger

설치시 아래와 같이 Error 발생시

yum install ruby-devel 실행 후 update 진행.

추가적으로 apache에 필요한 라이브러리를 설치한다.

yum install curl-devel openssl-devel zlib-devel 


passenger-install-apache2-module


Mod_SSL 설치

yum install mod_ssl

   

설치 후 다음의 내용을 apache 설정에 추가하라고 나온다.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby

 

cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmaster.conf

vi /etc/httpd/conf.d/puppetmaster.conf

/etc/httpd/conf.d/puppetmaster.conf 설정은 해당 모듈을 로딩하도록 하고 문서를 참고하여 몇가지 옵션을 튜닝하였음. 도메인 이름을 puppet master 서버로 설정함.
port 는 puppet 의 기본 포트인 8140 으로 설정을 하였음.

# cat /etc/httpd/conf.d/puppetmaster.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11

PassengerRuby /usr/bin/ruby

# tuning passenger setting

# http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger

PassengerMaxRequests 10000

PassengerPoolIdleTime 300

PassengerMaxPoolSize 15

PassengerUseGlobalQueue on

PassengerHighPerformance on

Listen 8140

<VirtualHost *:8140>

SSLEngine on

SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA

SSLCertificateFile      /var/lib/puppet/ssl/certs/master.jongeun.co.kr.pem

SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/master.jongeun.co.kr.pem

SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem

SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem

# CRL checking should be enabled; if you have problems with Apache complaining about the CRL, disable the next line

SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem

SSLVerifyClient optional

SSLVerifyDepth  1

SSLOptions +StdEnvVars

# The following client headers allow the same configuration to work with Pound.

RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

ServerName master.jongeun.co.kr

ServerAlias master.jongeun.co.kr

RackAutoDetect On

DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/

<Directory /usr/share/puppet/rack/puppetmasterd/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

<Location />

Options None

Order deny,allow

Deny from all

allow from 10.40

</Location>

</VirtualHost>
 

여러개의 도메인을 이용해야 하므로 SSL 설정에서 ServerName, ServerAlias 에 사용할 모든 도메인을 설정해 주어야 한다. 안 그러면 puppet client 에서 접속시 인증서와 관련한 에러가 난다. (certificate verify failed 등의 메시지)

/var/lib/puppet/ssl/ca/ca_crt.pem 파일은 /var/lib/puppet/ssl/certs/ca.pem 으로 설정을 하는 것이 편리하다.

mkdir -p /usr/share/puppet/rack/puppetmasterd

mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp

cp /usr/share/puppet/ext/rack/files/config.ru /usr/share/puppet/rack/puppetmasterd/

chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru

httpd 시작

/etc/init.d/httpd restart

모든 것이 정상작동을 하면 이제 puppetmaster 는 직접 실행을 하지 않아도 된다. puppet client 에서 요청을 하면 httpd 에서 puppetmaster 를 띄운다. httpd 를 내리면 puppetmaster 도 내려간다.

 

 

 

3. Puppet 시스템 구성

Puppet Master server : puppet certs 서버. puppet client 에 대한 인증 기능 수행
Puppet File server : puppet file 배포용
Puppet Reporting server : puppet reporting 용

 

 

 

 

 

24 모듈 설치 방법

Puppet 은 프로세서 내  forge.puppet labs.com의 연결을  통하여, Module을 설치할수 있다.

puppet module list 현재 설치되어있는 리스트 확인

 

3. NTP 설치

puppet module search ntp

forge.puppet labs.com 의 ntp 프로세서가 있는지 확인한다.

puppet module install puppetlabs-ntp

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설치 및 기본설정  (2) 2013.04.16
posted by 은이종 2013. 4. 16. 18:28

1. 배경

Puppet은 아래의 그림 처럼 하나의 Master 서버에서 설정(아파치 설정, WAS 기동 등..)을
하면 각 Agent에게 설정 정보를 보냅니다. (이러한 명령을 "catalog" 라고 합니다.)
수신된한 Agent는 변경된 설정 정보를 실행하고, 결과 리포트는 Master에게
전송 합니다.

Puppet의 특징

- GPL 기반 오픈 소스이며, Ruby에서 할 수있다
(Ent버전 유료과 오픈 버전이 있습니다.) 
- 자신의 선언적 언어로 시스템을 관리 -> 고유 언어 시스템으로 작성된 파일을 "매니페스트"라고 합니다.
- 클라이언트 / 서버 아키텍처
- 추상화 레이어 -> 여러 OS가 혼합된 환경에서도 OS의 차이를 의식하지 않고, 단일 매니페스트에서 시스템을 관리 할 수 있게 된다.
- 종속성 처리
- LDAP 지원

자원 : 사용자, 파일, 소프트웨어 등의 Puppet 관리 대상
매니페스트 만들기 첫 걸음은 자원을 선언하는 것

file (파일)
user (사용자)
group (그룹)
host (호스트)
package (소프트웨어 패키지)
service (실행중인 서비스)
그외 다양함

Puppet의 기본 동작은 puppetd가 30 분에 1 회 puppetmasterd에 매니페스트를 가져 가고, 자신에 매니페스트를 적용합니다. 
이 경우 puppetd이 puppetmasterd에 액세스 할 타이밍을 제어하는 것이 어렵 기 때문에 다음과 같은 문제가 있습니다.
- Puppet 클라이언트가 수백 대 혹은 그 이상의 규모가 된 경우 Puppet 서버에 대한 액세스가 동 시간대에 집중 될 수있다
- 새로운 명단을 우선 하나만 적용하여 테스트 해보고 싶다,라고하더라도 모든 서버에 마음대로 적용되어 버릴 우려가있다
이 문제를 해결하기 위해서는 puppetrun을 이용해 Puppet을 운영해야합니다.


템플릿 기능은 Puppet 클라이언트의 조건에 따라 내용이 다른 파일을 클라이언트마다 만들수 있습니다.
puppetrun의 일부 옵션(-all-class)이 LDAP에서 노드 관리하지 않으면 사용할 수 없다는 점이 있습니다.
Puppet의 설정 및 데이터 파일 (매니페스트 템플릿 배포 파일, 모듈 등)을 Subversion에서 관리하여,
누가 어떻게 변화를했는지 기록도 남아 있기 때문에, 변경 추적 및 감사 변경을 롤백 할 수 있습니다.

-기타 주의 사항-
1CPU/2GB 메모리 Puppet Master 서버 1대에서 50~100 대의 Puppet 클라이언트를 관리하는 것이 한계

단일 구성의 향상
Puppet에서는 웹 서버로, Ruby 표준에 포함되어있는 WEBrick을 사용하므로, Mongrel으로 대체할 수 있는데, Mongrel의 경우 SSL 처리가 안되므로,리버스 프록시 구성으로 Apache + mod_ssl + mod_proxy 와 같이 구성하면 됩니다.
Nginx를 사용하는 것도 한 방안임.
SSL 인증서를 사용할 경우, 키 인증과 관련한 구성상의 문제점이 있으므로 상세한 확인이 필요한다.

[출처] puppet 요약|작성자 


 2. 설치 환경

  • OS

     테스트 설치 환경은 "CentOS 6.4 x32" 입니다. 

  • Ruby

     Puppet은 Ruby로 만들었기 때문에 반드시 Ruby를 반드시 설치해야 합니다.

     1.9.x 버전이 OpenSSL과 연동시 이슈가 있었습니다. 
     그래서 현 시점에서는 1.8.x 버전을 설치 하시길 권고 드립니다.

  • 서버 구성

     서버는 Master 1 대, Agent 1대 총 2대로 진행 하며, Puppet은 Master <-> Agent 간에
     SSL 통신을 하기 때문에 도메인이 필요 합니다.

     하지만 이번 설치에는 /etc/hosts 파일에 설정을 하면서 진행 했습니다.
     Master 도메인 : master.jongeun.co.kr
     Agent 도메인 : client1.jongeun.co.kr


3. Master 설치 하기

Yum 설치로 진행을 하였습니다. 기본 CentOS repo로는 설치가 안되므로,
sourceforge 의 Repo를 연결하여 진행합니다.

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm


  (1) 루비 및 관련 라이브러리 설치

     ※ruby와 관련 라이브러리들을 설치 합니다.
     # yum install ruby ruby-libs ruby-shadow


   (2) Puppet Master 설치

     Puppet을 설치하려면 3가지 패키지를 설치해 해야 합니다.

  • puppet : Agent 모듈
  • puppet-server : Master 모듈
  • facter : 서버 정보를 gathering 하는 모듈

     # yum install puppet puppet-server facter

 

4. Agent 설치 하기

     Master 설치하기 와 동일하고 3번 설치 항목에서 2개만 설치 합니다.

  1. Puppet Agent 설치 하기

     # yum install puppet facter


5. Master 설정 하기

 vi /etc/puppet/puppet.conf

          [master]

          certname=master.jongeun.co.kr

"cetname"은 master 도메인 정보를 설정하는 속성입니다. 추후에 이 도메인명을 가지고 SSL 인증서를 발급 합니다.

추가로 conf에 "[main]"은 공통 설정,  "[master]"는 master 전용 설정, 마지막으로  "[agent]"는 agent를 위한 설정 입니다. 

Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
 


6. Agent 설정 하기

  vi /etc/puppet/puppet.conf

  [agent]
  certname=client1.jongeun.co.kr

 Agent의 도메인 정보를 입력 합니다. 추후에 서버에서 SSL 인증서를 발급 받습니다.

  • 만약 master 도메인이 퍼블릭 도메인이 아닌 경우는 "/etc/hosts" 파일에 도메인 정보를 추가 합니다.

          192.168.0.1 master.jongeun.co.kr
 
 
Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT



7. Master to Agent 연동 하기  

     Master 와 각 Agent는 SSL 통신을 합니다. Master 입장에서는 승인된 Agent정보가 필요하며,
     반대로 Agent도 승인된 Master가 필요 합니다. 즉 쌍뱡향 SSL 승인절차를 필요 합니다.
     서로 같에 SSL 승인이 되지 않으면 연동 자체가 불가 합니다.
     Puppet 같은 경우는 자체 CA (certificate authority) 인증 기관이 있고,  SSL 인증을 최적화
     되어 있습니다.
     그래서 공인인증 수준의 SSL 인증 발급을 쉽게 할수 있도록 지원을 합니다. 
     Puppet은 큰 특징 중 하나가 바로 SSL 인증 발급을 하는 것입니다.
     또한 Customize 할수 있는 기능도 제공 합니다.

     인증서 발급 FLOW는 아래와 같습니다.



     (1) Master 서버가 기동을 해서 Agent를 리스닝 합니다.

     (2) Agent는 서버에 접속을 합니다.
     (3) Master는 Agent의 도메인 정보를 얻은 후 SSL을 발급 합니다.
     (4) 발급된 ".pem" 파일을 Agent에 전송 합니다.

     (5) Agent는 "/etc/puppet/ssl" 폴더에 서버 와 본인 인증서를 저장 합니다.
     (6) 이후 부터는 인증서를 통해서 ssl 통신을 합니다.


 <<Master > 
 
puppet master --no-daemonize -d -v

-no-daemonize : puppet을 데몬이 아닌 foreground로 실행하는 옵션

-debug : debug 모드로 실행

-verbose: verbose 모드로 실행




<<Agent >

 
puppet agent --server master.jongeun.co.kr --no-daemonize --verbose




  • << Master >>

    puppet cert --all and --list
     
     
    "+" 표기된 부분은 발급이 완료된 Agent들을 말합니다. 지금 접속한 "node1.example.com"은 "+" 표시가 되어 있지 않습니다.  즉, 서버에 접속은 되어 있지만 발급이 안되서 대기중인 상태를 말합니다.


          puppet cert --sign client1.jongeun.co.kr
       
clien1.jongeun.co.kr 로 접속한 Agent에게 SSL 인증서를 발급 하겠다는 내용 입니다.



  • <<Agent >>
    발급이 완료되면 Master로 부터 새로운 catalog(설정 변경에 대한 지시 사항)을 받습니다.
    puppet agent --server master.jongeun.co.kr --no-daemonize --verbose





  • 최종적으로 아래와 같이 Master/Agent 로그가 나오면 정상적으로 설정이 완료 됩니다.

          추후 Agent가 추가가 되면 위에 설정 방식을 반복해서 설정을 하면 됩니다.

<<Master Side>>

<<Agent Side>>

     다음에 간단하게 Master에 있는 파일을 다운로드 받아서 Agent 특정 위치로 복사하는 예제를
     올리도록 하겠습니다.

8. 참고 자료

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설정 (수정 중)  (0) 2013.04.30
posted by 은이종 2013. 4. 11. 17:46

1. Active Directory 란 ?

Active Diretory(이하 AD)란  디렉토리 서비스이다. 디렉토리 서비스는 네트워크 리소스(사용자 및 컴퓨터, 그룹 등)와 같은 데이터를 저장하고, 네트워크 상에서 필요할 때마다 정보를 검색할 수 있게 해주는 서비스이다.

AD는 네트워트상의 모든 리소스에 관한 정보를 논리적 계층 구조로 저장하여 클라이언트들이 인증을 통해서 언제 어디서라도 그 리소스에 액세스 할 수 있게 해 준다.

① DNS와 통합

AD는 DNS(Domain Name System)를 사용한다. 계정에 대한 정보 등 DNS계정을 통하여 관리 진행이 된다.

② 확장성

관리자가 새로운 클래스를 스키마에 추가 하거나 기존의 크래스에 새로운 속성을 추가 할 수 있다. 스키마는 디렉토리에 저장할 수 있는 각 개체 클래스의 정의와 클래스의 속성을 말한다.

③ 정책을 기반으로 하는 관리

그룹 정책은 사용자나 컴퓨터가 처음 초기화될 때 적용되는 환경 설정이며 그룹 정책 개체(GPO)에 저장하며, GPO에는 디렉토리 개체와 도메인 자원에 접근할 때 적용되는 모든 권한이 설정되어 있다.

④ 정보 보안

AD의 보안 기능은 사용자 인증과 접근 권한 제어이며. 사용자 인증은 중앙에서 관리 하며 접근 권한 제어는 AD의 각 개체뿐 아니라 각 속성에서도 정의가 가능하다.

2. AD 설치 (DC서버 설치)

보통 DC는 DC1서버, DC2서버로 구성한다. (Active-Active)

DC1,2 서버에 AD서비스를 설치한다.

(1)  DC1번 서버에 AD도메인 서비스  서버 역할 추가.

실행창에 "dcpromo"를 입력하여 Active Directory 도메인 설치 마법사를 시작

2. 기존 포리스트에 추가하는 방법과 새 포리스트에 새 도메인을 만들 수 있습니다.

DC1에서는 새 포트리스에 새 도메인 만들기로 설치합니다.

추후 설치될 DC2에서는 기존 포트리스로 설치진행합니다. 자세한 부분은 밑에서 다시 설명하겠습니다.

4. 도메인 이름을 지정합니다.

5. 포리스트 기능 수준을 설정합니다. 사용하는 환경에 맞게 선택해 주시고 [다음]을 클릭합니다.

(제가 설치 진행 OS버전은 W2K8 R2 STD 입니다.)

6. 도메인 기능 수준을 설정합니다. 사용하시는 환경에 맞게 선택해 주시면 될 것 같습니다. [다음]을 클릭합니다.

7. 첫 번째 도메인 컨트롤러일 경우에는 DNS 서버 설치를 권장합니다. [다음]을 클릭하여 DNS 서버를 설치합니다.

주의점으로 DNS가 설치가되는 DC1는 TCP/IP 구성에서 반드시 자기 자신에게 DNS IP 구성을 설정해 주시기 바랍니다.

추가될 DC2번 IP도 미리 할당해 놓으면, 더 편하겠죠?


8. Active Directory 데이터베이스 저장경로를 지정합니다. 디폴트 설정으로 놓고 ㄱㄱ

9. 디렉터리 서비스 복원 모드 관리자 암호를 설정합니다.

10. 설정을 확인한 후 [다음]을 클릭합니다.

11. 서비스를 구성중입니다. 서버 스펙이 따라 차이가 있는데 보통 10~30여분정도 소요됩니다.

12. 설치가 완료되었습니다.

3. DC2 구성

DC를 이중화하여 구성하겠습니다.

시작하기에 앞서서 기본 DNS주소를 DC의 IP주소로 셋팅해 줍니다.

기존의 DC에서 이미 DNS서비스가 실행되고 있으므로 DNS서버의 주소를 DC의 주소로 셋팅하는 과정입니다.

차후 멤버서버가 도메인에 가입을 할 때에도 반드시 선행되어야 하는 과정입니다.

(이 과정을 거치지 않으면 설정 중간에 DC를 찾지못해 오류가 발생합니다.)

당연히 각 서버들과 통신이 잘되고 있는지 핑테스트를 합니다.

cmd 창에서 dcpromo를 입력한 후 마법사가 시작되면

'고급 모드 설치 사용'에 체크하고 다음으로 넘어갑니다.

두번째 DC도 DNS서버의 역할을 수행해야 하므로 체크박스에 체크를 하고 다음으로 넘어갑니다.

이 부분이 중요한 부분입니다.

'새 포리스트에 새 도메인 만들기'가 아닌

'기존 포리스트'-'기존 도메인에 도메인 컨트롤러 추가'를 선택하고 다음으로 넘어갑니다.

기존 도메인에 DC가 있는데 추가로 하나의 DC를 더 생성하는 과정이기 때문에 위와같은 단계를 거치게 됩니다.

'기존 포리스트에 새 도메인 만들기'의 경우는

지금은 하나의 포리스트에 하나의 도메인만 생성하지만

도메인을 여러개 만들고 싶을때 선택합니다

기존에 구성되었던 포리스트의 도메인 이름을 입력하면 됩니다.

이전 포스트에서 도메인 이름을 'lee'로 지정하였으므로, 해당 도메인 이름을 입력합니다.

또한 '현재 로그온되어 있는 자격증명'이 아닌

'대체 자격 증명'을 선택한 후 설정을 클릭합니다.

그러면 위와같은 인증화면이 나오는데

기존 도메인(lee)의 관리자 계정정보를 입력합니다.

정상적으로 입력을 하였다면 위와같이 기존에 생성되었던 도메인이 보여집니다.

하나밖에 나오지 않으므로 다음을 클릭합니다.

추가 옵션에 대한 선택화면입니다. 위와같이 설정한 후 다음으로 넘어갑니다.

지금부터는 기존 DC를 구성할때와 똑같이 진행됩니다.

'예'를 선택하고 넘어갑니다.

기존 DC의 데이터와 똑같은 데이터를 가지고 있어야 합니다.

네트워크로 연결이 되어있으므로

'네트워크를 통해 기존 도메인 컨트롤러에서 데이터복제'를 선택하고 다음으로 넘어갑니다.

어떤 도메인 컨트롤러에서 정보를 가져올 지 선택합니다.

현재 네트워크에는 DC가 한대밖에 존재하지 않으므로 하나만 나타납니다.

선택하고 다음으로 넘어갑니다.

각종 설정파일의 보관위치 설정입니다.

마지막으로 설정한 내용에 대한 요약화면이 나오고

다음을 누르면 DC구성이 시작됩니다.

완료 후 재부팅이 시작됩니다.

주 DNS주소는 기존 DC의 주소인 10.10.10.10

보조 DNS주소는 두번째 DC,즉 방금 구성한 서버의 주소인 10.10.10.11 ( 혹은 127.0.0.1 ) 을 넣어줍니다.

이렇게 되면 두번째 DC의 설정도 완료됩니다.

4. AD를 구성하는 각 서버들의 AD클라이언트 설정

도메인 조인을 합니다. 여전히 재 부팅은 필요하네요..

'Windows > AD' 카테고리의 다른 글

AD 계정별 Policy 설정  (0) 2014.07.23
AD 그룹 정책 관리  (0) 2014.04.18
AD 장애  (0) 2014.01.17
AD join시 Open Port  (0) 2014.01.06
AD 설정 1. 계정 2.로그인 대상  (0) 2013.08.28
posted by 은이종 2013. 4. 9. 12:29

FTP는 하위 디렉토리는 전송이 되지 않는다.

그러므로 압축해서 전송을해야하는데, Linux는 간단히 tar로 압축해야하지만.

Windows는 CMD명령어를 지원하는 압축프로그램을 사용해야 한다.

7zip 압축프로그램을 이용하여 압축하고 전송한다.

 

1개의 FTP정보을 넣은 텍스트 파일과 실제로 실행되는 배치파일로 스크립트를 만든다.

 

tp.txt

open 111.111.111.111

jongeun

메롱메롱
prompt
type binary
mput *
bye


연결할 FTP서버의 IP, 계정, 패스워드를 기입하면 된다.


 

Backup.bat

@echo off

set DS=%DATE%

C:\7-Zip\7z.exe a -tzip D:\Backup\mysqldata-%DS%.zip "C:\Program Files\MySQL\MySQL Server 5.5\data\" >> D:\Backuplog\mysqldata-%DS%.log


copy D:\bbj_db_data\ibdata1 D:\Backup\ibdata1-%DS% >> D:\Backuplog\ibdata1-%DS%.log


echo ===== FTP Transfer Start =====

cd \
d:
cd D:\Backup

ftp -s:D:\ftp.txt

echo ===== FTP Transfer End ======


echo ===== Backup File Delete =====

forfiles /p D:\Backup\ /d -1 /c "cmd /c del @file"

posted by 은이종 2013. 4. 5. 17:32
1. MS-SQL 접속 후 Query

Select @@version
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')  

2. Log 파일 확인

c:\Program Files\Microsoft SQL Server\MSSQL.
n\MSSQL\LOG 폴더에서
ERRORLOG 및 ERRORLOG.
n 파일에 열어보면 첫줄에 확인 된다.

보통 MS-SQL설치시 다른경로에 DATA는 설치하므로, 염두하고 확인하면 된다.

 
 

'Windows > MS SQL' 카테고리의 다른 글

[ISMS][MS-SQL] PATCH 이력 확인  (0) 2023.06.30
posted by 은이종 2013. 4. 4. 18:08

0. 개요

python 기반의 툴로

log파일을 읽어 일정시간 차단을 어플로, ssh ftp 등 무작위 로그인을 통한 brute force attack에 대응하기 위한 좋은 어플이다.

iptables , tcpwrapper 등에 해당 host 를 직접 등록하여, 직관적인 차단이 가능하다.

 

1 .설치 과정

공홈 : http://www.fail2ban.org

CentOS 에 yum으로 설치 하려면

vi /etc/yum.repos.d/CentOS-Base.repo

에 아래 글 추가

[dag]
name=Dag RPM Repostory for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/

 

2. 설치 과정

yum install fail2ban

설치경로는  /etc/fail2ban 이다.

 

3. 설정

설정파일은 /etc/fail2ban/jail.conf

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

 

ignoreip : 무시할 IP주소 (여기에 입력한 IP는 차단 하지 않음) CIDR Mask, DNS, IP를 입력가능

              공백을 이용하여 여러개 입력 가능

bantime : 해킹시도가 감지되었을 때 해당 IP를 차단할 차단기간 (기본값 : 600, 단위 : 초)

findtime : 로그에서 검색할 시간 (기본값 : 600, 단위 : 초)

maxretry : 일정시간동안 해킹시도 횟수

backend : 로그 파일 변경을 감지할 방법 (gamin, polling, auto)

               gamin : Gamin(file alteration monitor)설치된 경우 사용가능

               polling : 주기적으로 점검

               auto : Gamin이 설치된 경우 gamin사용, 아니면 polling 사용

설정파일에서 이메일 주소 변경

:%s/you@mail.com/내메일주소

:%s/fail2ban@mail.com/보내는사람 메일 주소

 

# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]

enabled  = false
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com]
logpath  = /var/log/sshd.log
maxretry = 5

[proftpd-iptables]

enabled  = false
filter   = proftpd
action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=ProFTPD, dest=you@example.com]
logpath  = /var/log/proftpd/proftpd.log
maxretry = 6

# This jail forces the backend to "polling".

[sasl-iptables]

enabled  = false
filter   = sasl
backend  = polling
action   = iptables[name=sasl, port=smtp, protocol=tcp]
           sendmail-whois[name=sasl, dest=you@example.com]
logpath  = /var/log/mail.log

실제 적용해야 할 서비스 목록입니다. 가장 중요한 부분이겠죠?

해당 원하는 서비스를 확인후에 enabled = false를 true로 변경하시면 됩니다.

 

변경된 설정을 적용시켜주시고, 재부팅후에도 fail2ban이 실행되게 chkconfig에 등록합니다.

service fail2ban start

chkconfig –levels 235 fail2ban on

 

 

추가 설정

1. devecot-pop3설정

# sudo vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf  <- 파일 추가
[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =
# sudo vi /etc/fail2bain/jail.conf   <- 아래 내용 추가
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200
# sudo /etc/init.d/fail2ban restart   <- 서비스 재시작

 

Proftpd 필터 사용시 proftpd 설정에 따라 로그를 검사하지 못하는 경우가 생긴다. /etc/fail2ban/filter.d/proftpd.conf 파일을 아래와 같이 변경 (진한 부분을 추가)

failregex = (S+[<HOST>])[: -]+ USER S+: no such user found from S+ [S+] to S+:S+$
            (S+[<HOST>])[: -]+ USER S+ (Login failed): Incorrect password.$
            (S+[<HOST>])[: -]+ SECURITY VIOLATION: S+ login attempted.$
            (S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded$ 
USER S+: no such user found from S* [<HOST>] to S+s*$
          ^<HOST> .* nobody .*PASS .* 530