2009년 5월 28일 목요일

SCDPM2007 - 에이전트 설치 에러 0x80070643

SCDPM2007을 설치하시고 관리콘솔을 통해 Windows Server 2008에 에이전트를 설치하시는데 아래와 같은 에러 메시지를 보신적이 있으신가요?

image

정확한 자료를 찾아본 것은 아니지만 SCDPM2007이 최초에는 Windows Server 2008을 지원하지 못했나봅니다.

다음 Feature Pack, Service Pack, Hotfix를 설치하시고, 새로운 버전(2.0.8811.0)의 에이전트로 다시 시도해보시면 설치가 된답니다. 

[서버업데이트 세부과정]

1.  System Center Data Protection Manager 2007 Feature Pack (x86/x64)을 설치합니다.

2. System Center Data Protection Manager 2007 Service Pack 1 (x86/x64)을 설치하고 재부팅합니다.

3. DPM 2007 SP1 Hotfix - KB:961502 (x86/x64)을 설치합니다.


위의 모든 업데이트를 진행하시고도 동일한 에러가 발생하신다면 아래 경로를 이용하여 에이전트를 수동으로 배포합니다.

[에이전트 수동배포]

1. 명령창을 실행하고 SCDPM2007서버의 C:\Program Files\Microsoft DPM\DPM\Agents\RA\2.0.8811.0 경로로 원격접근합니다. 2.0.8811.0폴더 하부에 두 개의 설치용 폴더가 있으며 OS의 32비트 또는 64비트 여부에 따라 64비트는 \amd64, 32비트는 \i386 에 접근합니다.

2. 접근 또는 복사한 폴더 안의 1042내부로 접근하면 DPMAgentInstaller_KB961502.exe 또는 DPMAgentInstaller_KB961502_AMD64.exe 파일을 보실수 있는데, DPMAgentInstaller_KB961502.exe <DPM서버FQDN>를 실행하여 강제로 에이전트를 설치합니다. 정상적으로 설치된 경우 아래와 같이 Istallation Success 명령창이 나타나며, 에이전트가 설치된 컴퓨터는 재부팅을 필요로 합니다.

image

3. 수동으로 에이전트를 설치한 컴퓨터는 SCDPM2007서버에서 관리쉘을 이용하여 서버에 등록해야합니다. 관리쉘에서 Attach-ProductionServer.ps1 <DPM서버명> <설치서버명> <사용자이름> <암호> <도메인명>을 입력하여 서버에 등록합니다.

image

다음과 같이 에이전트 탭에 에이전트 상태가 정상으로 나타나면 등록완료랍니다.

image

2009년 5월 26일 화요일

리눅스 route add 하기

route add -net xxx.xxx.0.0 netmask 255.255.255.0 dev eth0

route del -net xxx.xxx.0.192 netmask 255.255.255.192

route del -net xxx.xxx.0.0  netmask 255.255.0.0 dev eth0

route add -net 127.0.0.0 netmask 255.0.0.0 dev lo

2009년 5월 20일 수요일

골프채 리크

http://itempage.auction.co.kr/DetailView.aspx?ItemNo=A121698432&frm2=through&frm3=V3
330,000


http://itempage.auction.co.kr/DetailView.aspx?ItemNo=A121698433&frm2=through&frm3=V3
330,000


http://itempage.auction.co.kr/DetailView.aspx?ItemNo=A121736182&frm2=through&frm3=V3

http://itempage.auction.co.kr/DetailView.aspx?ItemNo=A121736187&frm2=through&frm3=V3

http://itempage.auction.co.kr/DetailView.aspx?ItemNo=A121736188&frm2=through&frm3=V3

http://search.auction.co.kr/search/listid.aspx?frm=itempage&seller=bousan 미즈노 판매자


옥션 주고 장터

http://used.auction.co.kr/



http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0142062&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0143661&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


진짜 좋은거 이건 정말 싸당..
http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0152044&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=

http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0153273&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0153545&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


미즈노 제퍼 : http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0155649&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0155932&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=


http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0156505&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=

http://pricegolf.co.kr/selfmarket/self_detail.php?gcode=IA0157657&head=&subdomain=&golfsky_id=&sort=&coolgolf_id=

2009년 5월 18일 월요일

IIS 상태 코드

로그 파일 위치

기본적으로 IIS는 %WINDIR\System32\Logfiles에 해당 로그 파일을 저장합니다. 이 디렉터리에는 각 WWW(World Wide Web) 및 FTP 사이트에 대한 별도의 디렉터리가 포함됩니다. 기본적으로 로그는 디렉터리에서 매일 만들어지고 날짜를 포함하는 이름(예: exYYMMDD.log)으로 지정됩니다.

HTTP

1xx - 정보 전달용

이 상태 코드는 임시 응답을 나타냅니다. 클라이언트가 정식 응답을 받으려면 하나 이상의 1xx 응답을 받을 준비가 되어 있어야 합니다.
  • 100 - 계속 작업합니다.
  • 101 - 프로토콜을 전환합니다.
2xx - 완료

상태 코드의 이 클래스는 서버가 클라이언트 요청을 받아들였음을 나타냅니다.
  • 200 - 클라이언트 요청이 성공했습니다.
  • 201 - 만들어졌습니다.
  • 202 - 받아들여졌습니다.
  • 203 - 권한이 없는 정보입니다.
  • 204 - 내용이 없습니다.
  • 205 - 내용을 다시 설정합니다.
  • 206 - 일부 내용
3xx - 리디렉션

클라이언트 브라우저는 요청을 처리하기 위해 좀더 조치를 취해야 합니다. 예를 들어, 브라우저는 서버에서 다른 페이지를 요청해야 하거나 프록시 서버를 사용하여 요청을 반복해야 할 수 있습니다.
  • 302 - 개체 이동
  • 304 - 수정되지 않았습니다.
  • 307 - 임시 리디렉션
4xx - 클라이언트 오류

오류가 발생하고 클라이언트에 문제가 있는 것으로 나타납니다. 예를 들어, 클라이언트가 존재하지 않는 페이지를 요청하거나 올바른 인증 정보를 제공하지 않을 수도 있습니다.
  • 400 - 요청이 잘못되었습니다.
  • 401 - 액세스가 거부되었습니다. IIS는 오류의 원인을 보다 구체적으로 나타내는 여러 다른 401 오류를 정의합니다. 이러한 특정 오류 코드는 브라우저에 표시되지만 IIS 로그에는 표시되지 않습니다.
    • 401.1 - 로그온하지 못했습니다.
    • 401.2 - 서버 구성으로 인해 로그온하지 못했습니다.
    • 401.3 - 리소스의 ACL에 의해 액세스가 거부되었습니다.
    • 401.4 - 필터에 의해 권한을 부여하지 못했습니다.
    • 401.5 - ISAPI/CGI 응용 프로그램에 의해 권한을 부여하지 못했습니다.
    • 401.7 - 웹 서버의 URL 인증 정책에 의해 액세스가 거부되었습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
  • 403 - 금지. IIS는 오류의 원인을 보다 구체적으로 나타내는 여러 다른 403 오류를 정의합니다.
    • 403.1 - 실행 액세스 금지
    • 403.2 - 읽기 액세스 금지
    • 403.3 - 쓰기 액세스 금지
    • 403.4 - SSL이 필요합니다.
    • 403.5 - SSL 128이 필요합니다.
    • 403.6 - IP 주소가 거부되었습니다.
    • 403.7 - 클라이언트 인증서가 필요합니다.
    • 403.8 - 사이트 액세스가 거부되었습니다.
    • 403.9 - 사용자가 너무 많습니다.
    • 403.10 - 구성이 올바르지 않습니다.
    • 403.11 - 암호 변경
    • 403.12 - 매퍼가 액세스를 거부했습니다.
    • 403.13 - 클라이언트 인증서를 취소했습니다.
    • 403.14 - 디렉터리 목록이 거부되었습니다.
    • 403.15 - 클라이언트 액세스 라이센스가 초과되었습니다.
    • 403.16 - 클라이언트 인증서가 신뢰되지 않거나 잘못되었습니다.
    • 403.17 - 클라이언트 인증서가 만료되었거나 아직 유효하지 않습니다.
    • 403.18 - 현재 응용 프로그램 풀에서 요청된 URL을 실행할 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
    • 403.19 - 이 응용 프로그램 풀에서 클라이언트에 대한 CGI를 실행할 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
    • 403.20 - Passport 로그온에 실패했습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
  • 404 - 찾을 수 없습니다.
    • 404.0 - (없음) - 파일 또는 디렉터리를 찾을 수 없습니다.
    • 404.1 - 요청된 포트에서 웹 사이트에 액세스할 수 없습니다.
    • 404.2 - 웹 서비스 확장 잠금 정책으로 인해 이 요청이 방지됩니다.
    • 404.3 - MIME 맵 정책으로 인해 이 요청이 방지됩니다.
  • 405 - 이 페이지에 액세스하는 데 사용되는 HTTP 동사를 허용할 수 없습니다(메서드를 허용할 수 없음).
  • 406 - 클라이언트 브라우저가 요청된 페이지의 MIME 형식을 받아들이지 않습니다.
  • 407 - 프록시 인증이 필요합니다.
  • 412 - 전제 조건이 실패했습니다.
  • 413 - 요청 엔터티가 너무 큽니다.
  • 414 - 요청 URI가 너무 깁니다.
  • 415 - 지원되지 않는 미디어 유형입니다.
  • 416 - 요청된 범위를 충족시킬 수 없습니다.
  • 417 - 실행하지 못했습니다.
  • 423 - 잠금 오류
5xx - 서버 오류

서버에 오류가 발생하여 요청을 완료할 수 없습니다.
  • 500 - 내부 서버 오류
    • 500.12 - 응용 프로그램이 웹 서버에서 다시 시작되는 중입니다.
    • 500.13 - 웹 서버 사용량이 많습니다.
    • 500.15 - Global.asa의 직접 요청을 허용할 수 없습니다.
    • 500.16 - UNC 인증 자격 증명이 잘못되었습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
    • 500.18 - URL 인증 저장소를 열 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
    • 500.100 - 내부 ASP 오류
  • 501 - 헤더 값이 구현되지 않은 구성을 지정합니다.
  • 502 - 웹 서버가 게이트웨이나 프록시 역할을 하는 동안 잘못된 응답을 받았습니다.
    • 502.1 - CGI 응용 프로그램이 시간을 초과했습니다.
    • 502.2 - CGI 응용 프로그램에서 오류가 발생했습니다.
  • 503 - 서비스를 사용할 수 없습니다. 이 오류 코드는 IIS 6.0에만 해당됩니다.
  • 504 - 게이트웨이가 시간을 초과했습니다.
  • 505 - HTTP 버전이 지원되지 않습니다.

일반 HTTP 상태 코드와 그 원인

  • 200 - 성공했습니다. 이 상태 코드는 IIS가 요청을 성공적으로 처리했음을 나타냅니다.
  • 304 - 수정되지 않았습니다. 클라이언트가 이미 해당 캐시에 있는 문서를 요청하고 이 문서는 캐시된 이후로 수정되지 않았습니다. 클라이언트가 서버에서 문서를 다운로드하는 대신 문서의 캐시된 복사본을 사용합니다.
  • 401.1 - 로그온하지 못했습니다. 올바르지 않은 사용자 이름이나 암호로 인해 로그온 시도가 실패했습니다.
  • 401.3 - 리소스의 ACL에 의해 액세스가 거부되었습니다. 이것은 NTFS 사용 권한에 문제가 있음을 나타냅니다. 이 오류는 액세스하려는 파일의 사용 권한이 올바른 경우에도 발생할 수 있습니다. 예를 들어, IUSR 계정에 C:\Winnt\System32\Inetsrv 디렉터리에 대한 액세스 권한이 없는 경우 이 오류가 나타납니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    187506  (http://support.microsoft.com/kb/187506/ ) IIS 사이트의 작동에 필요한 NTFS 권한 목록
  • 403.1 - 실행 액세스 금지. 이 오류 메시지의 두 가지 일반적인 원인은 다음과 같습니다.
    • 실행 권한이 부족합니다. 예를 들어, 사용 권한이 없음으로 설정되는 디렉터리에서 ASP 페이지에 액세스하려고 하거나 디렉터리에서 스크립트 권한으로 CGI 스크립트를 실행하려고 하는 경우 이 오류 메시지가 나타납니다. 실행 권한을 수정하려면 MMC(Microsoft Management Console)에서 해당 디렉터리를 마우스 오른쪽 단추로 누르고 등록 정보를 누른 다음 디렉터리 탭을 누르고 실행 권한 설정이 액세스하려는 콘텐츠에 적절한지 확인합니다.
    • 실행하려는 파일 형식에 대한 스크립트 매핑은 사용 중인 동사(예: GET 또는 POST)를 인식하도록 설정되지 않습니다. 이 작업을 확인하려면 MMC에서 디렉터리를 마우스 오른쪽 단추로 누르고 등록 정보를 누른 다음 디렉터리 탭에서 구성을 누르고 해당 파일 형식에 대한 스크립트 매핑이 사용 중인 동사를 허용하도록 설정되었는지 확인합니다.
  • 403.2 - 읽기 액세스 금지. IIS가 디렉터리에 대한 읽기 액세스 권한을 허용하도록 설정되었는지 확인합니다. 또한 기본 문서를 사용하려면 이 문서가 있는지 확인합니다. 이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    247677  (http://support.microsoft.com/kb/247677/ ) 오류 메시지: 403.2 Forbidden: Read Access Forbidden
  • 403.3 - 쓰기 액세스 금지. IIS 사용 권한 및 NTFS 사용 권한이 디렉터리에 대한 쓰기 액세스 권한을 부여하도록 설정되었는지 확인합니다.이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248072  (http://support.microsoft.com/kb/248072/ ) 오류 메시지: 403.3 Forbidden: Write Access Forbidden
  • 403.4 - SSL이 필요합니다. 보안 채널 필요 옵션을 해제하거나 HTTP 대신 HTTPS를 사용하여 페이지에 액세스합니다.
  • 403.5 - SSL 128이 필요합니다. 128비트 암호화 필요 옵션을 해제하거나 128비트 암호화를 지원하는 브라우저를 사용하여 페이지를 봅니다. 인증서가 설치되어 있지 않은 웹 사이트에 대해 이 오류가 나타나면 Microsoft 기술 자료의 다음 문서를 참조하십시오.
  • 403.6 - IP 주소가 거부되었습니다. 현재 IP 주소에 대한 액세스가 거부되도록 서버가 구성되었습니다. 이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248043  (http://support.microsoft.com/kb/248043/ ) 오류 메시지: 403.6 - 금지: IP 주소 거부
  • 403.7 - 클라이언트 인증서가 필요합니다. 서버가 클라이언트 인증의 인증서를 요구하도록 구성되었지만 올바른 클라이언트 인증서가 설치되어 있지 않습니다.
    186812  (http://support.microsoft.com/kb/186812/ ) PRB: 오류 메시지: 403.7 사용 금지: 클라이언트 인증서가 필요함
  • 403.8 - 사이트 액세스가 거부되었습니다. 서버에 액세스하는 데 사용하는 도메인의 도메인 이름 제한이 설정되었습니다.이 문제의 해결 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248032  (http://support.microsoft.com/kb/248032/ ) 오류 메시지: Forbidden: Site Access Denied 403.8
  • 403.9 - 사용자가 너무 많습니다. 서버에 연결된 사용자 수가 설정되어 있는 연결 제한을 초과합니다. 이 제한을 변경하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248074  (http://support.microsoft.com/kb/248074/ ) 오류 메시지: 액세스 금지: 연결된 사용자가 너무 많습니다. 403.9
    참고: Microsoft Windows 2000 Professional 및 Microsoft Windows XP Professional에서 IIS는 연결이 10개로 자동 제한됩니다. 이 제한을 변경할 수 없습니다.
  • 403.12 - 매퍼가 액세스를 거부했습니다. 액세스하려는 페이지에 클라이언트 인증서가 필요하지만 클라이언트 인증서에 매핑된 사용자 ID로는 파일에 액세스할 수 없습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248075  (http://support.microsoft.com/kb/248075/ ) 오류: HTTP 403.12 - Access Forbidden: Mapper Denied Access
  • 404 - 찾을 수 없습니다. 이 오류는 액세스하려는 파일이 이동되거나 삭제된 경우에 발생합니다. URLScan 도구를 설치한 후 제한된 파일 확장명을 갖는 파일에 액세스하려고 하는 경우에도 발생합니다. 이 경우 로그 파일 항목에서 해당 요청에 대해 "Rejected by URLScan"이 나타납니다.
  • 500 - 내부 서버 오류. 광범위한 서버쪽 오류에 대해 이 오류 메시지가 나타납니다. 이벤트 뷰어 로그에는 이 오류가 발생하는 이유에 대한 자세한 내용이 포함될 수 있습니다. 또한 HTTP 오류 메시지를 해제하여 오류에 대한 자세한 설명을 나타낼 수 있습니다. HTTP 오류 메시지를 해제하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    294807  (http://support.microsoft.com/kb/294807/ ) HOWTO: 서버쪽에서 Internet Explorer 5 'HTTP 오류 메시지 표시' 기능 해제
  • 500.12 - 응용 프로그램 다시 시작. 이 동작은 IIS가 응용 프로그램을 다시 시작하고 있는 중에 ASP 페이지를 로드하려고 했음을 나타냅니다. 이 메시지는 페이지를 새로 고치면 사라집니다. 페이지를 새로 고쳐도 이 메시지가 나타나면 Global.asa 파일을 검색 중인 바이러스 백신 소프트웨어가 원인일 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    248013  (http://support.microsoft.com/kb/248013/ ) 오류 메시지: HTTP 오류 500-12 응용 프로그램 다시 시작
  • 500-100.ASP - ASP 오류. 코드에 오류가 있는 ASP 페이지를 로드하려고 하면 이 오류 메시지가 나타납니다. 오류에 대한 좀더 구체적인 정보를 보려면 HTTP 오류 메시지를 해제합니다. 기본적으로 이 오류는 기본 웹 사이트에서만 사용할 수 있습니다.기본이 아닌 웹 사이트에서 이 오류를 보는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    261200  (http://support.microsoft.com/kb/261200/ ) 500-100.asp의 ASP 오류 메시지 대신 HTTP 500 오류 메시지가 나타난다
  • 502 - 불량 게이트웨이. 유효한 HTTP 헤더 세트를 반환하지 않는 CGI 스크립트를 실행하려고 하면 이 오류 메시지가 나타납니다.

FTP

1xx - 긍정적인 예비 회신

이 상태 코드는 동작이 시작되었지만 클라이언트가 새 명령을 계속 수행하기 전에 다른 회신을 기대한다는 것을 나타냅니다.
  • 110 마커 회신을 다시 시작합니다.
  • 120 nnn 분 내에 서비스 준비
  • 125 데이터 연결이 이미 열려 있고 전송을 다시 시작합니다.
  • 150 파일 상태에 문제가 없으며 지금 데이터 연결을 열려고 합니다.
2xx - 긍정적인 완료 회신

동작이 완료되었습니다. 클라이언트가 새 명령을 실행할 수 있습니다.
  • 200 명령에 문제가 없습니다.
  • 202 명령이 구현되지 않으며 이 사이트에 불필요합니다.
  • 211 시스템 상태 또는 시스템 도움말 회신
  • 212 디렉터리 상태
  • 213 파일 상태
  • 214 도움말 메시지
  • 215 NAME 시스템 형식. 여기서 NAME은 지정된 번호(Assigned Numbers) 문서 목록의 공식 시스템 이름입니다.
  • 220 새 사용자에게 서비스가 준비되었습니다.
  • 221 서비스가 컨트롤 연결을 닫습니다. 필요한 경우 로그아웃됩니다.
  • 225 데이터 연결을 열지만 전송하지 않습니다.
  • 226 데이터 연결을 닫습니다. 요청된 파일 동작에 성공했습니다(예: 파일 전송 또는 파일 중단).
  • 227 Passive 모드 입력(h1,h2,h3,h4,p1,p2)
  • 230 사용자가 로그인하여 진행합니다.
  • 250 요청된 파일 동작이 문제 없이 완료되었습니다.
  • 257 "PATHNAME"이 만들어졌습니다.
3xx - 긍정적인 중간 회신

명령이 성공했지만 서버에는 요청을 처리하는 데 클라이언트의 추가 정보가 필요합니다.
  • 331 사용자 이름에 문제가 없으며 암호가 필요합니다.
  • 332 로그인을 위해 계정이 필요합니다.
  • 350 좀더 자세한 정보를 보류 중인 요청된 파일 동작입니다.
4xx - 일시적인 부정적 완료 회신

명령이 성공하지 못했지만 오류는 일시적입니다. 클라이언트가 명령을 다시 시도하면 성공할 수도 있습니다.
  • 421 서비스를 사용할 수 없으며 컨트롤 연결을 닫습니다. 이것은 서비스가 프로그램을 종료해야 함을 아는 경우 명령에 대한 응답이 될 수 있습니다.
  • 425 데이터 연결을 열 수 없습니다.
  • 426 연결이 닫히고 전송이 중단됩니다.
  • 450 요청된 파일 동작이 수행되지 않았습니다. 파일을 사용할 수 없습니다(예: 파일 사용 중).
  • 451 요청된 동작이 중단되었습니다. 처리 중 로컬 오류가 발생했습니다.
  • 452 요청된 동작이 수행되지 않았습니다. 시스템의 저장 공간이 부족합니다.
5xx - 영구적인 부정적 완료 회신

명령이 성공하지 못했으며 오류는 영구적입니다. 클라이언트가 명령을 다시 시도하면 같은 오류가 나타납니다.
  • 500 구문 오류, 명령을 인식할 수 없습니다. 여기에는 명령줄이 너무 긴 경우와 같은 오류가 포함됩니다.
  • 501 매개 변수 또는 인수의 구문 오류입니다.
  • 502 명령이 구현되지 않았습니다.
  • 503 명령 순서가 잘못되었습니다.
  • 504 해당 매개 변수에 대해 명령이 구현되지 않았습니다.
  • 530 로그인되지 않았습니다.
  • 532 파일을 저장하는 데 계정이 필요합니다.
  • 550 요청된 동작이 수행되지 않았습니다. 파일을 사용할 수 없습니다(예: 파일 없음. 액세스 못함).
  • 551 요청된 동작이 중단되었습니다. 페이지 형식을 알 수 없습니다.
  • 552 요청된 파일 동작이 중단되었습니다. 현재 디렉터리 또는 데이터 집합에 대해 저장소 할당이 초과되었습니다.
  • 553 요청된 동작이 수행되지 않았습니다. 파일 이름을 허용할 수 없습니다.

일반 FTP 상태 코드와 그 원인

  • 150 - FTP는 두 가지 포트를 사용합니다. 즉, 명령을 보내는 경우에는 21을 사용하고 데이터를 보내는 경우에는 20을 사용합니다. 상태 코드 150은 서버가 포트 20에서 새 연결을 열어 데이터를 보내려고 한다는 것을 나타냅니다.
  • 226 - 이 명령은 포트 20에서 데이터 연결을 열어 파일 전송과 같은 동작을 수행합니다. 이 동작이 완료되고 데이터 연결이 닫힙니다.
  • 230 - 이 상태 코드는 클라이언트가 올바른 암호를 보낸 후에 나타납니다. 사용자가 로그온되었음을 나타냅니다.
  • 331 - 클라이언트가 사용자 이름을 보낸 후에 이 상태 코드가 나타납니다. 이 동일한 상태 코드는 제공된 사용자 이름이 시스템의 올바른 계정인지 여부에 관계없이 나타납니다.
  • 426 - 이 명령은 데이터 연결을 열어 동작을 수행하지만 이 동작이 취소되고 데이터 연결이 닫힙니다.
  • 530 - 이 상태 코드는 사용자 이름과 암호 조합이 유효하지 않으므로 사용자가 로그온할 수 없음을 나타냅니다. 사용자 계정을 사용하여 로그온하는 경우 사용자 이름 또는 암호를 잘못 입력했거나 익명 액세스만 허용하도록 선택했을 수 있습니다. 익명 계정으로 로그온하는 경우 IIS가 익명 액세스를 거부하도록 구성되었을 수도 있습니다.
  • 550 - 이 명령은 지정된 파일을 사용할 수 없으므로 실행되지 않습니다. 예를 들어, 이 상태 코드는 존재하지 않는 파일을 가져오려고(GET) 하거나 쓰기 액세스 권한이 없는 디렉터리에 파일을 두려고(PUT) 하는 경우에 발생합니다.

리눅스를 안은 윈도우 : Hyper-V | Winux

날로 복잡해 지고 커져만 가는 인프라에 대한 통합이나, 표준화 작업은 이미 예전부터 진행 되었었고, 최근에는 더 나아가 Green IT 를 표방하면서, 가상화 기술이 대두 되고 있습니다.

근래에는 소프트웨어 하드웨어 벤더 할것 없이 가상화 솔루션을 내놓고 있습니다.

Microsoft 에서는 인프라에 대한 가상화로 Server 가상화 솔루션인 Hyper-V 를 내놓았습니다.
여타 가상화와 마찬가지로 이기종 OS 를 지원하는 것은 당연한 것입니다.

이에 Hyper-V 에서 구동될 수 있는 리눅스를 테스트 해보았습니다.

Intel VT 기술을 지원하는 조립PC로 테스트 된것 입니다. ^^

image

image

현재 리눅스용 Integration Components 를 지원하는 것은 SUSE Linux Enterprise Server 10 SP1 x86/x64 입니다. 
RedHat ES5 는 개발중인 것으로 알고있습니다.
고로 이외의 설치 되는 리눅스는 에뮬레이션 방식으로 구동됩니다.
SUSE Linux Enterprise Server 10 SP1 x86/x64
image 

image
RedHat Enterprise Server 5

image image

Fedora 8

image image

Debian 4.0 R3

image image

Ubuntu

image image

CentOS 5.0

image image

2009년 5월 15일 금요일

windows 관련 정보 블로그

http://kernel64.tistory.com/category/SystemCenterad , system center , virtual 관련한 정보가 즐비하다. http://blogs.technet.com/koalra/ : 백승주 차장 블로그 : 꼬알라의 하얀집 http://blogs.technet.com/sankim/ : sankims's blog : 텍넷에 있는 블로그 링크 자료가 나쁘진 않음 http://blogs.technet.com/komessaging/default.aspx : Exchange 엔지니어 팀블로그 http://www.cooolguy.net/ : 까만돌의 it : 이분 블로그도 정보가 많당.. http://blog.ithero.co.kr/ 히어로즈 블로그.. http://blogs.technet.com/sharepoint_kr/default.aspx : SharePoint 제품 및 기술 정보 블로그. http://blogs.technet.com/virtualization/ 가상화 마소 팀블로그 : 외국블로그

삭제된AD개체복구

Object Restore for ActiveDirectory 1.0

Volume Shadow Copy란 무엇인가


도우즈에서 백업 등을 실시하면 그 때 그 때의 파일 쓰기 상황에 따라 덜 쓰여진(flushing이 안된) 파일이 백업 되어 버리기도 하고, 파일이 shared 안된 상태로 열려 있어서 백업이 실패하기도 합니다. 이러한 상황을 찢어진 쓰기 동작(torn writes)이라고 MSDN은 표현하고 있습니다.

러한 경우 백업 이미지를 “chkdsk”로 복구해야 하는 상황이 발생하게 되는데, 이러한 상황을 피하기 위해서 도입 된 개념이 바로 “Volume Shadow Copy”입니다. 이 메카니즘은 윈도우즈 XP, Server 2003 이상에서 사용되고 있습니다.

특정 시간대의 정확한 하드디스크 볼륨의 스냅샷을 백업해 낼 수 있게 하는 기능입니다. 백업 어플리케이션이나 복구 프로그램, 스토리지 하드웨어에서 유용하게 사용할 수 있습니다.

스타의 시스템 복구 기능은 바로 이 기능에 기반하고 있습니다.

AntiVirus의 경우 이 쉐도우 카피로 인해서 기능에 혼란이 오는 경우가 종종 있습니다. 시스템에서는 쉐도우 카피도 단지 볼륨의 하나로 인식이 되므로 바이러스 스캐닝이 되는 경우가 있는데, 어떠한 경우에는 원본에서 치료가 된 바이러스가 이 쉐도우 카피에서 나중에 발견 되는 경우도 발생하게 됩니다. 이 경우 엔드 유저는 바이러스 치료가 이전에 실패했다고 착각하는 경우가 있습니다.

한 검역소에 보관중인 파일에 대해서 쉐도우 카피로 복사하면서 에러가 발생하기도 하고, AntiVirus와 충돌이 종종 보고 되고 있습니다.

Windows Server 2003에서 VSS(Volume Shadow Copy) 설정

Volume Shadow Copy 는 Windows Server 2003 에서 새롭게 지원하는 기능으로, 아주 짧은 시간에 로드 없이 복사본을 유지하는 기능 입니다.

1. 윈도우탐색기 또는 MMC의 디스크관리자 디스크 등록정보 선택.

2. 관리메뉴에서 속성 - 섀도 복사본 탭 선택(윈도우탐색기)

3. 설정하고자 하는 드라이브를 선택후, 설정 클릭.
(기본설정이 되어 있지 않다면, 기본 설정값으로 매 주중 07:00에 실행되도록 설정된다.)

4.섀도 복사본 저정은 특정 드라이브에 저장 가능하도록 선택이 가능하며, 최소 용량은 100M 입니다.

5.스케쥴설정은 기본설정값을 사용하거나, 새로 지정이 가능합니다.
(스케쥴 설정은 윈도우 보조프로그램의 스케쥴러에서의 설정법과 동일.)

6.설정값 저장완료후, "지금 만들기" 를 바로 실행된다.





□ 다음과 같은 방법으로 섀도복사본을 확인가능하다.

1. 윈도탐색기에서 확인.


2. Command Line에서 확인

C:\>vssadmin list shadows
vssadmin 1.1 - 볼륨 섀도 복사본 서비스 관리 명령줄 도구
(C) Copyright 2001 Microsoft Corp.

섀도 복사본 세트 ID의 콘텐트: {3af9eedd-66b1-4029-84dd-f64c565eed78}
다음 작성 시간에 1 섀도 복사본 포함: 2003-11-19 오후 5:50:23
섀도 복사본 ID: {17534ef3-c06c-4388-8f6e-f2012b5184d1}
원본 볼륨: (C:)\\?\Volume{46498d72-0e2c-11d8-b584-806e6f6e6963}\
섀도 복사본 볼륨: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
원본 컴퓨터: SERVERINFO
서비스 컴퓨터: SERVERINFO
공급자: 'Microsoft Software Shadow Copy provider 1.0'
형식: ClientAccessible
특성: Persistent, Client-accessible, No auto release, No writers, Differential


*섀도 복사본 서비스의 좋은점은 윈도우 시스템 및 특정 서비스에서 점유하고 있는 파일도 저장이 가능하다는 것이다. 그리고, 기존 백업방법에서 VSS를 지원하는 백업시 백업 및 복원 시간을 많이 줄일수 있다.

Volume Shadow Copy 클라이언트 프로그램은,

C:\WINDOWS\system32\clients\twclient  또는,

http://www.microsoft.com/downloads/details.aspx?familyid=E382358F-33C3-4DE7-
ACD8-A33AC92D295E&displaylang=ko
 에서 다운로드 가능합니다.

2009년 5월 14일 목요일

Sendmail 보안 설정

##  Sendmail 보안 설정 ##

 * sendmail 업그레이드
 * 기본 RPM으로 설치되는 SpamAssassin 가동
 * Sendmail SPF 세팅

1. sendmail 업그레이드
# -> 체크후 8.12.8이하일 경우 업그레이드

yum -y update sendmail*
rpm -qa |grep sendmail


2. 기본 RPM으로 설치되는 SpamAssassin 가동

# -> Procmail 확인

[root@www ~]# grep "procmail" /etc/mail/sendmail.mc
MAILER(procmail)dnl

# -> Procmail 이용 SpamAssassin 가동 /etc/procmailrc 만들기

echo "#
# SpamAssassin procmail
#
OPPRIVS=yes
:0fw
* < 256000
| /usr/bin/spamc" >> /etc/procmailrc

% 참고 설정 파일 만들기 사이트
# http://www.yrex.com/spam/spamconfig.php

# /etc/mail/spamassassin/local.cf 파일을 만들어 준다. ##

echo "# SpamAssassin config file for version 3.x
# NOTE: NOT COMPATIBLE WITH VERSIONS 2.5 or 2.6
# See http://www.yrex.com/spam/spamconfig25.php for earlier versions
# Generated by http://www.yrex.com/spam/spamconfig.php (version 1.50)

# How many hits before a message is considered spam.
required_score           5.0

# Change the subject of suspected spam
rewrite_header subject         *****SPAM*****

# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe             1

# Enable the Bayes system
use_bayes               1

# Enable Bayes auto-learning
bayes_auto_learn              1

# Enable or disable network checks
skip_rbl_checks         1  ## 과도 점수 방지
use_razor2              0
use_dcc                 0
use_pyzor               0

# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
# - korean
ok_languages            ko

# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales              ko" > /etc/mail/spamassassin/local.cf

/etc/init.d/spamassassin start
--> 이후 정상작동 여부 체크

3. Sendmail SPF 세팅

# MILTER 세팅 되어있는지 확인, 세팅 안되어 있다면 Sendmail 재설치
[root@www ~]# sendmail -d0.1 -bt < /dev/null | grep MILTER
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6

# libspf2 설치

http://www.libspf2.org/spf/libspf2-1.2.5.tar.gz
tar zxvf libspf2-1.2.5.tar.gz
cd libspf2-1.2.5
./configure && make && make check && make install

# spfmilter 설치

wget http://www.acme.com/software/spfmilter/spfmilter-0.97.tar.gz
tar zxvf spfmilter-0.97.tar.gz
cd spfmilter-0.97
./configure && make && make install

# /etc/mail/sendmail.mc 파일에 다음 내용 추가
echo "INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter.sock, T=S:8m;R:8m')" >> /etc/mail/sendmail.mc;

# 설정파일 Remake

make -C /etc/mail;

# spfmilter 시작스크립트 및 필요 파일 만듬.

cp rc_scripts/redhat /etc/init.d/spfmilter
chmod 700 /etc/init.d/spfmilter

touch /etc/mail/spfmilter-whitelist
touch /etc/mail/spfmilter-fallback
chkconfig --add spfmilter

# 경로 문제로 인한 spfmilter시작 스크립트 파일 수정

vi +"%s/var\/run\/spfmilter\//var\/run\//g" +"%s/usr\/sbin\/spfmilter/usr\/local\/sbin\/spfmilter/g" +"%s/spfmilt:spfmilt/root:root/g" +"%s/--user spfmilt/--user root/g" +wq /etc/mail/spfmilter

# 동작 여부 테스트

/etc/init.d/spfmilter start
/etc/init.d/sendmail restart
# 메일 테스트(메일 헤드 확인)
# Received-SPF: pass (0: SPF record at smileserv.com designates 220.90.215.13 as permitted sender)

## Dovecot 설정 ##

/etc/dovecot.conf 파일 설정
protocols = imap pop3
imap_listen = [*]
pop3_listen = [*]

mssql sa패스워드 강제변경

 sa패스워드 강제변경


osql -E

EXEC sp_password NULL, '바꿀 암호', 'sa'
GO

Core2Due(콘로)를 사용하는 장비에서 SULinux 설치가 안되는 문제

Core2Due(콘로)를 사용하는 장비에서 SULinux 설치가 안되는 문제가 발생했습니다.
 설치과정에서 다음과 같은 메시지와 함께 시스템이 정지합니다.
PCI : probing PCI hardware
 
위 문제는 대부분의 리눅스 배포판에서 발생하며, CPU문제가 아닌, 메인보드에서 사용하는 칩에서 ata-piix 관련 문제로 알려지고 있다.
 조사된 메인보드는
 Intel Desktop Board D965시리즈
 Intel Desktop Board D946시리즈
 965, 946칩을 사용하는 거의 대부분의 메인보드 !!

 
 

[해결방법.]
  1. CD를 넣고 부팅한다.  첫 화면에서 다음과 같이 입력한다.
     linux pci=nommconf all-generic-ide
  위 옵션은 pci쪽에 mmconf를 사용하지 않으며,
  SATA 디스크도 ide로 인식하겠다는 의미입니다.
* 만약 SATA CD-ROM을 사용한다면, 뒤에 옵션은 제거하여도 무관.

  2. SULinux 설치
    위 옵션을 넣으면 정상적으로 설치된다. 단지 .. IRQ쪽 문제로 속도가 조금 저하되니 인내심을 가지고 기다리시기 바랍니다.
 
  3. 설치 완료후 처음 부팅시
    설치 완료후 다시 똑같은 에러가 발생한다. 여기서 GRUB를 조금 편집한다.
  1) 부팅후 첫 화면에서 "ESC"키를 눌러 grub 모드로 들어간다.
  2) "SULinux Server-up (2.6.9-22.0.2.ELsmp)"를 선택합니다.
  3) "e"키를 눌러 편집모드로 들어갑니다.
  4) 두번째줄 "kernel /vmlinuz-2.6.9-22.0.2.ELsmp ro root=/dev/VolGroup00/LogVol00 vga=773" 을 선택하고 다시 "e"키를 눌러 편집합니다.
   5) 다음과 같이 맨 아래에 "all-generic-ide pci=nommconf
"를 추가합니다.
kernel /vmlinuz-2.6.9-22.0.2.ELsmp ro root=/dev/VolGroup00/LogVol00 vga=773 all-generic-ide pci=nommconf
   6) "b"키를 눌러 부팅합니다.

  4. 부팅 한다음.
    /etc/grub.conf 파일을 열어 위와 비슷하게
  "all-generic-ide pci=nommconf" 옵션을 넣어 줍니다.
 
 
 
만약!! D965 보드를 사용한다면? 랜카드가 잡히지 않을것입니다.
  5. 첨부파일을 USB메모리 스틱에 복사합니다. 없다면, CD-ROM등을 사용하세요.
     커널 또한 복사합니다.
    http://ftp.sulinux.net/pub/SULinux/1.0/updates/i386/RPMS/kernel-smp-2.6.9-42.0.2.EL.i686.rpm
 
 
  6. 서버에 USB메모리 스틱을 꽂은 후,
    "fdisk -l" 명령으로 장치를 확인합니다.
   대부분 "/dev/sda1" 으로  나타납니다.
   mkdir /imsi 
   mount /dev/sda1 /imsi
   cd /imsi
   rpm -Uvh kernel-smp-2.6.9-42.0.2.EL.i686.rpm
   rpm -Uvh e1000-7.1.9-rh4-2.6.9-42.0.2.ELsmp.i386.rpm
   umount /imsi
   rm -rf /imsi
 
   임시디렉토리를 만들고, 마운트하며, rpm 으로 설치합니다. 꼭 위 순서를 지켜주세요.  그리고 마운트 풀고 임시디렉토리를 삭제합니다.
 
   위와같은 작업을 거치면 렌키드는 정상 적으로 작동합니다.!!
 
 
 
* TEST BASE
  CPU : Core2Duo E6400
  M/B : Intel Desktop Board D965SS
  RAM : PC4200 DDR2  512M * 2
  HDD : SATA 320G
  CD-ROM : LG 52X IDE

php-security

php.ini 파일을 다음과 같이 수정

1. allow_url_fopen
On --> Off

2. magic_quotes_gpc
Off --> On

3. register_globals
On --> Off

** php 관련 프로그램 최신 버전 업그레이드


 웹서버 헤더에서 PHP 버전 정보 숨기기

php.ini 파일에서

expose_php = On 를
expose_php = Off 로 바꾸고 웹서버를 재실행하면 된다

### Apache 웹서버
(1) 소스 수정
src/include/httpd.h :
#define SERVER_BASEVERSION "Apache/[x.x.x.]"

(2) Conf 설정
httpd.conf 파일에서
ServerTokens 설정

ServerTokens Prod[uctOnly]
  --> Server: Apache
ServerTokens Min[imal]
  --> Server: Apache/1.3.0
ServerTokens OS
  --> Server: Apache/1.3.0 (Unix)
ServerTokens Full (or not specified)
  --> Server: Apache/1.3.0 (Unix) PHP/3.0 MyMod/1.2

### Proftpd

Conf 설정
proftpd.conf 파일에서
ServerIdent on "[x.x.x]"

### Sendmail
(1) 소스 수정
sendmail/version.c
char Version[] = "[x.x.x]";
(2) Conf 설정
/etc/sendmail.cf:
# SMTP initial login message
O SmtpGreetingMessage=$j [x.x.x]

### Bind
Conf 설정
/etc/named.conf 파일에서
options {
        directory "/var/named";
        version "x.x.x";
};

### SSH1/OpenSSH
소스 수정
version.h 파일에서
#define SSH_VERSION "[x.x.x]"

### SSH2
소스 수정
apps/ssh/ssh2version.h 파일에서
#define SSH2_VERSION "[x.x.x]"

### IMAP (imapd,ipop2d,ipop3d)
소스 수정
src/imapd/imapd.c 파일에서 char *version = "[x.x.x]";
src/ipopd/ipop2d.c 파일에서 char *version = "[x.x.x]";
src/ipopd/ipop3d.c 파일에서 char *version = "[x.x.x]";


에러처리 PHP 에 연결된 데이타베이스 외부프로그램등의 에러메세지가 노출되지않고 서버의 에러
로그에 남기도록 설정


log_erros = Off

mysql.trace_mode=Off


1.
php 에서 오류 발생시 디렉토리 경로의 내용을 좌악 보여주면 이 정보를 악용할 소지가 있습니다.
php.ini 에서 display_errors를 Off 로 하면됩니다 (기본값은 On 입니다.)

display_errors=Off

2.
phpinfo() 함수는 시스템내의 php,http,mysql 과 관련한 모든 정보를 보여 줍니다.
따라서 운용시 막아두는 것이 좋습니다. phpinfo() 스크립트를 금지 시키는 옵션 입니다.

disable_functions = phpinfo()

3.
php 내에서 스크립트 함수를 ( exec() ) 모두 막을수 있지만, 불편함을 초래 할수 있습니다. 이경우 실행될 디렉토리를 지정해 주고 이 내에있는 것만 실행 하도록 하면 됩니다.

safe_mode = On  ( 디폴트는 Off 입니다. )
safe_mode_exec_dir=/usr/local/bin   ( 지정할 디렉토리 디폴트는 없습니다. )


#. 외부 파일 불러오기 방지
  ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
  allow_url_fopen=off  로 설정


#. 특수문자 필터링설정
   ; Magic quotes for incoming GET/POST/Cookie data.
   ; GET 방식으로 입력되는 ".."는 일반적으로 필터링 하도록 설계되고 있다.
   ; 쉘에서는 ".\./"는 ".." 과 동일하게 간주된다.
   ; 이에 특수문자에 대한 전체적인 제한이 필요하다.
   magic_quotes_gpc = On


#. 위험한 함수 사용방지
   ; This directive allows you to disable certain functions for security reasons.
   ; It receives a comma-delimited list of function names. This directive is
   ; *NOT* affected by whether Safe Mode is turned On or Off.
   disable_functions =


#. 안전한 세션관리
   ; Argument passed to save_handler.  In the case of files, this is the path
   ; where data files are stored. Note: Windows users have to change this
   ; variable in order to use PHP's session functions.
   ; As of PHP 4.0.1, you can define the path as:
   ;     session.save_path = "N;/path"
   ; where N is an integer.  Instead of storing all the session files in
   ; /path, what this will do is use subdirectories N-levels deep, and
   ; store the session data in those directories.  This is useful if you
   ; or your OS have problems with lots of files in one directory, and is
   ; a more efficient layout for servers that handle lots of sessions.
   ; NOTE 1: PHP will not create this directory structure automatically.
   ;         You can use the script in the ext/session dir for that purpose.
   ; NOTE 2: See the section on garbage collection below if you choose to
   ;         use subdirectories for session storage
   ; 이 부분을 /tmp/session처럼 디렉토리를 따로 만들고
   ; session.save_path = /tmp/session 디렉토리를
   ; chown nobody.nobody /tmp/session
   ; chmod 750 /tmp/session  이렇게 해주시면 됩니다.
   session.save_path = /tmp


#. 에러처리
   ; 만일 PHP나 연결된 데이터베이스, 외부 프로그램 등의 에러메시지가 임의의 사용자가 볼수 있도록
   ; 화면에 나타난다면, 이것은 시스템의 정보를 노출하기 때문에 공격의 수단으로 될수 있다.
   ; 이에 에러메시지를 보여주기 보다는 서버의 에러 로그로 남기도록 설정을 바꿔주어야 한다.
   ;---------------------------------------------------------------------------------
   ; Log errors into a log file (server-specific log, stderr, or error_log (below))
   ; As stated above, you're strongly advised to use error logging in place of
   ; error displaying on production web sites.
   log_errors = Off
   ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
   ; SQL-Erros will be displayed.
   mysql.trace_mode = Off 


 

php.ini 보안설정


기본
1. allow_url_fopen
On --> Off

2. magic_quotes_gpc
Off --> On

3. register_globals
On --> Off

1.
php 에서 오류 발생시 디렉토리 경로의 내용을 좌악 보여주면 이 정보를 악용할 소지가 있습니다.
php.ini 에서 display_errors를 Off 로 하면됩니다 (기본값은 On 입니다.)

display_errors=Off

2.
phpinfo() 함수는 시스템내의 php,http,mysql 과 관련한 모든 정보를 보여 줍니다.
따라서 운용시 막아두는 것이 좋습니다. phpinfo() 스크립트를 금지 시키는 옵션 입니다.

disable_functions = phpinfo()

3.
php 내에서 스크립트 함수를 ( exec() ) 모두 막을수 있지만, 불편함을 초래 할수 있습니다. 이경우 실행될 디렉토리를 지정해 주고 이 내에있는 것만 실행 하도록 하면 됩니다.

safe_mode = On  ( 디폴트는 Off 입니다. )
safe_mode_exec_dir=/usr/local/bin   ( 지정할 디렉토리 디폴트는 없습니다. )


#. 외부 파일 불러오기 방지
  ; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
  allow_url_fopen=off  로 설정


#. 특수문자 필터링설정
   ; Magic quotes for incoming GET/POST/Cookie data.
   ; GET 방식으로 입력되는 ".."는 일반적으로 필터링 하도록 설계되고 있다.
   ; 쉘에서는 ".\./"는 ".." 과 동일하게 간주된다.
   ; 이에 특수문자에 대한 전체적인 제한이 필요하다.
   magic_quotes_gpc = On


#. 위험한 함수 사용방지
   ; This directive allows you to disable certain functions for security reasons.
   ; It receives a comma-delimited list of function names. This directive is
   ; *NOT* affected by whether Safe Mode is turned On or Off.
   disable_functions =


#. 안전한 세션관리
   ; Argument passed to save_handler.  In the case of files, this is the path
   ; where data files are stored. Note: Windows users have to change this
   ; variable in order to use PHP's session functions.
   ; As of PHP 4.0.1, you can define the path as:
   ;     session.save_path = "N;/path"
   ; where N is an integer.  Instead of storing all the session files in
   ; /path, what this will do is use subdirectories N-levels deep, and
   ; store the session data in those directories.  This is useful if you
   ; or your OS have problems with lots of files in one directory, and is
   ; a more efficient layout for servers that handle lots of sessions.
   ; NOTE 1: PHP will not create this directory structure automatically.
   ;         You can use the script in the ext/session dir for that purpose.
   ; NOTE 2: See the section on garbage collection below if you choose to
   ;         use subdirectories for session storage
   ; 이 부분을 /tmp/session처럼 디렉토리를 따로 만들고
   ; session.save_path = /tmp/session 디렉토리를
   ; chown nobody.nobody /tmp/session
   ; chmod 750 /tmp/session  이렇게 해주시면 됩니다.
   session.save_path = /tmp


#. 에러처리
   ; 만일 PHP나 연결된 데이터베이스, 외부 프로그램 등의 에러메시지가 임의의 사용자가 볼수 있도록
   ; 화면에 나타난다면, 이것은 시스템의 정보를 노출하기 때문에 공격의 수단으로 될수 있다.
   ; 이에 에러메시지를 보여주기 보다는 서버의 에러 로그로 남기도록 설정을 바꿔주어야 한다.
   ;---------------------------------------------------------------------------------
   ; Log errors into a log file (server-specific log, stderr, or error_log (below))
   ; As stated above, you're strongly advised to use error logging in place of
   ; error displaying on production web sites.
   log_errors = Off
   ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
   ; SQL-Erros will be displayed.
   mysql.trace_mode = Off 

원격지에서 오라클서버 시동/종료

원격지에서 오라클서버 시동/종료
 
 

원격지에서 오라클서버 시동/종료

사실 기본적인 내용이지만, 모르는 사람들이 많은 것 같아 적어본다.
여기서 다루는 내용은 원격지 오라클DB서버를 자신의 컴퓨터에서 시동/종료하는 것이다.

리눅스:
192.168.0.2
Oracle EE 8.1.7
ORACLE_SID=db


[리눅스에서 작업]

1. init.ora에서 remote_login_passwordfile = remote 확인
일단, 자신의 초기화패러미터파일(initSID.ora)에서 remote_login_passwordfile패러미터가 exclusive값으로
설정되어 있는지 확인한다.

[oracle@linux oracle]$ cd $ORACLE_HOME/dbs
[oracle@linux dbs]$ grep remote_login_passwordfile initdb.ora
remote_login_passwordfile = exclusive
[oracle@linux dbs]$

대부분 위와 같은 값을 가지고 있을 것이다.
디폴트로, 보통 아무런 지정을 하지 않았다면 exclusive값을 가지고 있고,
원격지 로그인이 가능한 놈은 sys, internal 두 놈이 있다.
여기에 다른 오라클 계정들을 추가할 수도 있는데 이 글의 후반부에 언급하겠다.


2. 리스너를 실행
원격에서 연결하려면, 당연히 리스너가 실행되어 있어야 한다.

[oracle@linux dbs]$ lsnrctl start

LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 19-APR-2003 20:26:32

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

Starting /u01/app/oracle/product/8.1.7/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 8.1.7.0.0 - Production
System parameter file is /u01/app/oracle/product/8.1.7/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/8.1.7/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.2)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 8.1.7.0.0 - Production
Start Date                19-APR-2003 20:26:32
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/8.1.7/network/admin/listener.ora
Listener Log File         /u01/app/oracle/product/8.1.7/network/log/listener.log
Services Summary...
  db            has 1 service handler(s)
The command completed successfully
[oracle@linux dbs]$


[윈도에서 작업]

3. init.ora파일을 자신의 컴퓨터로 복사
리눅스에 있는 init.ora파일을 자신의 컴퓨터로 복사해 온다.
우리는 윈도에서 리눅스에 존재하는 오라클서버를 시동할때 이것을 이용할 것이다.

C:\oracle\admin>ftp 192.168.0.2
Connected to 192.168.0.2.
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
User (192.168.0.2:(none)): oracle
331 Please specify the password.
Password:
230 Login successful. Have fun.
ftp> bin
200 Binary it is, then.
ftp> cd /u01/app/oracle/product/8.1.7/dbs
250 Directory successfully changed.
ftp> get initdb.ora
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for initdb.ora (4426 bytes).
226 File send OK.
ftp: 4426 bytes received in 0.00Seconds 4426000.00Kbytes/sec.
ftp> quit
221 Goodbye.

C:\oracle\admin>


4. 원격지 DB를 기동/종료
C:\oracle\admin>type C:\oracle\ora81\network\ADMIN\tnsnames.ora
LINUXDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (COMMUNITY = TCP_COMM)(PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = db)
      (GLOBAL_NAME = db.world)
    )
  )

sqlplus실행부분이 빠져서 추가했음(2003-07-30)
C:\oracle\admin>sqlplus /nolog

SQL*Plus: Release 8.1.7.0.0 - Production on 수 Jul 30 22:24:24 2003

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

SQL> connect sys/change_on_install@linuxdb as sysoper
휴지 인스턴스에 접속되었습니다.
SQL> startup pfile=c:\oracle\admin\initdb.ora
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area   30064800 bytes
Fixed Size                    73888 bytes
Variable Size              13041664 bytes
Database Buffers           16777216 bytes
Redo Buffers                 172032 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
INTERNAL                       TRUE  TRUE
SYS                            TRUE  TRUE

SQL> shutdown
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL>


다른 계정으로 시동/종료
v$pwfile_users에 존재하는 internal, sys는 원격지 시동/종료가 가능하다.
그럼, sys사용자 대신 system으로 시동/종료해 보도록 하자.

SQL> startup pfile=c:\oracle\admin\initdb.ora
ORACLE 인스턴스가 시작되었습니다.
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> connect sys/change_on_install@linuxdb as sysdba sysoper권한을 주기 위해선 sysdba권한이 필요하다.
연결되었습니다.
SQL> grant sysoper to system; 시동/종료는 sysoper권한으로 충분하다. sysdba권한은 되도록이면 남용하지 않는 것이 좋다.

권한이 부여되었습니다.

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
INTERNAL                       TRUE  TRUE
SYS                            TRUE  TRUE
SYSTEM                         FALSE TRUE

SQL> shutdown
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> connect system/change_on_install@linuxdb as sysoper
휴지 인스턴스에 접속되었습니다.
SQL> startup pfile=c:\oracle\admin\initdb.ora
ORACLE 인스턴스가 시작되었습니다.
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> shutdown
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL>


PS>
리눅스에서 부팅시마다 리스너를 실행토록 하려면 다음과 같이 해둔다.
[root@linux root]# cat >> /etc/rc.d/rc.local
su - oracle -c "/u01/app/oracle/product/8.1.7/bin/lsnrctl start"
[root@linux root]#


[2003-07-30 추가]
DB서버를 제어(시동/종료)하는 윈도클라이언트에서, DB서버내의 리스너가 정상적으로 실행되어 있는지는
'lsnrctl statux 서비스이름'으로 파악할 수 있다. 물론 간단히 tnsping으로도 확인할 수 있을 것이다.

C:\oracle\admin>lsnrctl status linuxdb

LSNRCTL for 32-bit Windows: Version 8.1.7.0.0 - Production on 30-JUL-2003 22:29:25

(c) Copyright 1998 Oracle Corporation.  All rights reserved.

(DESCRIPTION=(ADDRESS=(COMMUNITY=TCP_COMM)(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))(CONNECT_DATA=
(SID=db)(GLOBAL_NAME=db.world)(SERVER=DEDICATED)))에 연결되었습니다
리스너의 상태------------------------
별칭                  LISTENER
버전                  TNSLSNR for Linux: Version 8.1.7.0.0 - Production
시작 날짜          30-JUL-2003 22:06:07
업타임                    0 일 0 시간. 19 분. 0 초
트레이스 수준      off
보안               OFF
SNMP                      OFF리스너 매개변수 파일   /u01/app/oracle/product/8.1.7/network/admin/list
ener.ora
리스너 로그 파일              /u01/app/oracle/product/8.1.7/network/log/listener.log
서비스 요약...
  db            has 1 서비스 핸들러
명령이 성공적으로 수행되었습니다

C:\oracle\admin>


This article comes from dbakorea.pe.kr (Leave this line as is)  

Redo Log File 초기화

Redo Log File 초기화
 
  - 모든 멤버 중에서 한 리두 로그 파일이 훼손되었다면, 훼손된 로그 파일을 초기화하여 문제를 해결할 수 있습니다.
  - ALTER DATABASE CLEAR LOGFILE명령을 사용 합니다.    


[예제]
SQL>ALTER DATABASE CLEAR LOGFILE ‘/disk3/log2a.rdo’;

openssh 란

### ssh ###

1. ssh ( Secure Shell )
: 로그인 쉘
이것은 압축 되고 암호화된 파일을 전송한다.
일반적으로 암호를 이용하여 접속하는 방법과 인증키를 이용하여 접속하는 방법이 있다.


2. 이것을 왜 사용해야 할까?

- 강력한 보안

- 프라이버시 보호. 모든 통신은 자동으로 그리고 투명하게 암호화된다.

- 안전한 X11 세션. 원격 서버에 DISPLAY 변수를 자동으로 설정하고 모든 X11 연결을 보안채널을 통해서 포워딩한다.

- TCP/IP 포트를 양 방향에서 다른 포트로 자유롭게 포워딩할수 있다.

- rlogin, rsh, rcp등을 완전히 대체한다.

- 선택적으로 데이터를 압축하여 느린 네트워크 상에서의 속도 향상

- 서버는 자신의 RSA 키를 가지며 일정 시간마다 자동으로 재 생성한다

3. ssh 종류
- www.ssh.com   
- www.openssh.com
이곳에선 openssh 를 중심으로 설명하겠다.

4. ssh 서버

ssh 서버는 처음 설치 했을 때 특별히 설정 하지 않고도 사용 할 수 있다.
하지만 좀 더 세부적인 설정을 원한다면 sshd_config 를 이용하여 설정 할 수 있다.

[root@localhost ssh]# rpm -ql openssh-server-3.4p1-2
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh
/etc/ssh/sshd_config
/usr/libexec/openssh/sftp-server
/usr/sbin/sshd
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd

#vi /etc/ssh/sshd_config

      # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
      # This is the sshd server system-wide configuration file.  See sshd(8)  for more information.

      Port 22     <- 다른 데몬의 포트와 중복되어서는 안된다.
      Protocol 2,1    <- 우선순위는 2
      ListenAddress 0.0.0.0   <- 허용 IP, 모든 IP
      #ListenAddress ::
      HostKey /etc/ssh/ssh_host_key  <- hostkey 파일의 절대경로, 암호해독할 key값
      HostKey /etc/ssh/ssh_host_rsa_key
      HostKey /etc/ssh/ssh_host_dsa_key
      ServerKeyBits 768
      LoginGraceTime 600   <- lonin 시간을 설정
      KeyRegenerationInterval 3600
      PermitRootLogin yes   <- root login 허용
      #
      # Don't read ~/.rhosts and ~/.shosts files
      IgnoreRhosts yes    <- 원격접속 불허(rcp, rlogin..)
      # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
      #IgnoreUserKnownHosts yes
      StrictModes yes
      X11Forwarding yes    <- X-window용 프로그램 실행 가능
      X11DisplayOffset 10
      PrintMotd yes
      KeepAlive yes

      # Logging
      SyslogFacility AUTHPRIV
      LogLevel INFO
      #obsoletes QuietMode and FascistLogging

      RhostsAuthentication no
      #
      # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
      RhostsRSAAuthentication no
      #
      RSAAuthentication yes

      # To disable tunneled clear text passwords, change to no here!
      PasswordAuthentication yes
      PermitEmptyPasswords no   <- Null password를 가진 계정은 접속 불허

      # Comment to enable s/key passwords or PAM interactive authentication
      # NB. Neither of these are compiled in by default. Please read the
      # notes in the sshd(8) manpage before enabling this on a PAM system.
      #ChallengeResponseAuthentication no
      #SkeyAuthentication no
      KbdInteractiveAuthentication yes

      # To change Kerberos options
      #KerberosAuthentication no
      #KerberosOrLocalPasswd yes
      #AFSTokenPassing no
      #KerberosTicketCleanup no

      # Kerberos TGT Passing does only work with the AFS kaserver
      #KerberosTgtPassing yes

      CheckMail yes    <- ssh로 접속했을 때 메일 유무 확인
      #UseLogin no

      MaxStartups 10:30:60
      #Banner /etc/issue.net
      #ReverseMappingCheck yes

      Subsystem  sftp /usr/libexec/openssh/sftp-server


5. ssh 클라이언트

  - 윈도우즈에서 ssh 클라이언트를 프로그램을 이용한 접속 방법

  - 리눅스 등에서 접속하는 방법
   
    $ssh -l mbaltop 192.168.0.221
    $ssh mbaltop@mbaltop.org

  - 인증키 사용하여 접속하는 방법

인증키를 사용하는 것은 로그인 할때마다 암호를 직접 입력하는 것보다 더욱 안전하며, 하나의 암호로 여러 ssh서버에 접속할수 있는등의 장점을 가진다.


- 인증키 만들기

인증키는 ssh-keygen로 만든다. 키를 만들때는 사용할 키의 형태를 지정해 주어야 하는데
원격 서버가 ssh 프로토콜 버전 2를 지원한다면 ``rsa'' 또는 ``dsa'', 프로토콜 1만을 지원한다면 ``rsa1''을 사용한다.

예를 들어 원격 서버가 ssh2를 지원하고, ``rsa'' 키를 만들고자 한다면,
키가 저장될 곳과 이름을 물어 오는데 디폴트로 그냥 엔터를 치고 넘어가면, 다음과 같이 인증키 암호를 물어온다. 원하는 암호를 두번 반복해서 입력해주면 키가 생성된다.
(엔터만 쳐도 된다)

[mbaltop@localhost mbaltop]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mbaltop/.ssh/id_rsa):
Created directory '/home/mbaltop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mbaltop/.ssh/id_rsa.
Your public key has been saved in /home/mbaltop/.ssh/id_rsa.pub.
The key fingerprint is:
1a:d0:cd:9e:b6:b8:4d:05:e6:d5:06:a9:5e:90:3e:64 mbaltop@localhost

인증키 생성시 인증키 암호를 공백으로 (passphrase 를 물어올때 그냥 엔터를 치면 된다) 만들수도 있는데, 이것은 ssh 접속시 암호를 입력하지 않아도 그냥 접속이 되므로 편리할수는 있으나,
만약 당신의 인증키가 어떠한 경로로든 유출되었을 경우를 생각 해보면 피해야 할 것이다.
그리고 ssh-add와 ssh-agent를 사용하여 접속시마다 인증키 암호를 입력하지 않는 방법이 있다.

- 공개 키 사용하기

이제 ~/.ssh/ 안에 한쌍의 키(id_rsa 와 id_rsa.pub)가 생성되어 있을것이다.
.pub 확장자가 붙은 것은 공개키로 이 파일을 접속할 리모트 서버들의 ~/.ssh/ 에 authorized_keys 라는 이름으로 복사해준다.

[mbaltop@localhost mbaltop]$ scp ~/.ssh/id_rsa.pub admin@192.168.0.221:.ssh/authorized_keys
[mbaltop@localhost mbaltop]$ ssh -l admin 192.168.0.221 (접속 성공.. ^^)

이제 ssh 접속을 진행 해보면 계정암호가 아닌 인증키 암호를 물어볼 것이다. 만약 계정 암호를 물어본다면 원격 서버상의 ~/.ssh 디렉토리나 공개키 권한의 문제이므로,
일단 접속후 chmod 755 ~/.ssh 그리고 chmod 644 .ssh/authorized_keys 해준다.

rsa1 방식의 ssh1 프로토콜의 사용할 것이라면 ssh-keygen -t rsa1 으로 키를 만들고, 공개키 (identity.pub)를 같은 방법으로 원격 서버의 ~/.ssh/authorized_keys 에 추가해 주면 된다.

키 파일을 다른 이름으로 저장했거나 서버마다 다른 키를 사용하려면 ssh에 -i 옵션을 사용해 키 파일을 직접 지정해 주면 된다.

- 인증키를 메모리에 상주 시키기

다음 방법으로 인증키를 메모리에 기억시켜 두면 처음 한번만 인증키 암호를 입력하면 다음부터는 암호를 입력하지 않아도 같은 인증키를 사용하는 모든 서버들에 접속할수 있다.

[foo@home silver]$ eval $(ssh-agent) [Enter]
다음과 같은 메세지를 보여줄 것이다.
Agent pid 31234
이제 ssh-add 를 입력하면
Identity added: /home/silver/.ssh/identity (silver@home.eunjea.org)

이제 인증키를 복사해둔 ssh서버에 접속하면 이 세션에서는 더 이상 암호를 묻지 않을 것이다.

서버가 지원한다면 되도록 SSH2 프로토콜을 사용하도록 한다. SSH2는 SSH1과는 전혀 다른 프로토콜이며 더욱 안전하고, 성능이 좋다.


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

2.3. ssh를 이용한 파일 복사

scp

위에서 인증키를 리모트 서버에 복사할때 사용한 scp에 대해서 알아보자

예를 들어, 복사하려는 파일명이 'scp.txt' 라고 하고 접속하려는 원격 서버의 주소는 192.168.0.221, 당신의 쉘 계정은 admin 라고 한다면

dumb 파일을 192.168.0.221 의 admin 계정 홈 디렉토리에 복사하기

[mbaltop@localhost mbaltop]$ scp scp.txt admin 192.168.0.221:.

192.168.0.221 의 admin 계정 홈 디렉토리에 있는 test.scp 파일을 로컬로 복사하기

[mbaltop@localhost mbaltop]$ scp admin@192.168.0.221:test.scp .
admin@192.168.0.221's password:
test.scp             100% |*************************************************|     0       00:00    

만약 ~/.ssh/config 파일에 다음과 같이 www.foobar.com 의 계정을 설정해 놓았다면,

[mbaltop@localhost mbaltop]$ cat .ssh/config
Host ttop
HostName 192.168.0.221
User admin
ForwardAgent yes
 

다음과 같이 더 간단하게 할수 있다.

[mbaltop@localhost mbaltop]$ scp test.scp1 ttop:.
admin@192.168.0.221's password:
test.scp1            100% |*************************************************|     0       00:00   

또한 scp 는 -r 옵션도 가지고 있는데 이것은 디렉토리를 통채로 복사 할때 사용한다.
예를 들어 test/ 디렉토리안의 모든 파일과 하위 디렉토리를 서버 계정의 www 디렉토리 안에 복사 하려면 다음과 같이 한다.

[mbaltop@localhost mbaltop]$ scp -r test/ admin@192.168.0.221:www/
admin@192.168.0.221's password:
aa                   100% |*************************************************|     0       00:00   
bb                   100% |*************************************************|     0       00:00   

- sftp

sftp는 ssh하에서 전통적인 ftp 환경을 제공하며, 리모트상의 프로그램을 실행시킬수도 있다.

openSSH 클라이언트 패키지에는 sftp가 포함되어 있다.



# 참고


인터넷 암호화 및 인증시스템의 하나.

RSA (Rivest-Shamir-Adleman)

RSA는 1977년에 Ron Rivest, Adi Shamir와 Leonard Adleman에 의해 개발된 알고리즘을 사용하는 인터넷 암호화 및 인증 시스템이다.
RSA 알고리즘은 가장 보편적으로 사용되는 암호화 및 인증 알고리즘으로서, 넷스케이프와 마이크로소프트 웹브라우저 기능의 일부로 포함된다. 이것은 또한 로터스 노츠,
인튜잇의 Quicken 등 많은 제품에 채용되어 있기도 하다. 이 암호화 시스템의 소유권은 RSA Security라는 회사가 가지고 있다. 이 회사는 알고리즘 기술들을 라이선스 해주고,
또 개발도구 등을 판매하기도 한다. 이 기술들은 기존에 이미 나와있거나 제안되어 있는 웹, 인터넷 및 컴퓨팅 표준들의 일부를 이루고 있다.

RSA 시스템의 동작원리

공개키와 개인키의 획득에 사용되는 알고리즘의 상세한 수학적 설명은 RSA 웹사이트에서 찾아볼 수 있다. 간단히 말해, 이 알고리즘은 두 개의 큰 소수 (소수는 그 숫자와 1로만
나누어지는 수이다)들의 곱과, 추가 연산을 통해 하나는 공개키를 구성하고 또하나는 개인키를 구성하는데 사용되는 두 세트의 수 체계를 유도하는 작업이 수반된다. 한번 그 키들이
만들어지면, 원래의 소수는 더 이상 중요하지 않으며, 버릴 수 있다. 공개 및 개인키 둘 모두는 암호화/복호화를 위해 필요하지만, 오직 개인키의 소유자만이 그것을 알 필요가 있다.
RSA 시스템을 사용하면, 개인키는 절대로 인터넷을 통해 보내지지 않는다.

개인키는 공개키에 의해 암호화된 텍스트를 복호화하는데 사용된다. 그러므로, 내가 만약 누군가에게 메시지를 보내는 상황을 가정해 보면, 나는 중앙의 관리자로부터 수신자의 공개키를
찾은 다음, 그 공개키를 사용하여 보내는 메시지를 암호화할 수 있다. 수신자는 그것을 받아서, 자신의 개인키로 복호화하면 된다. 프라이버시를 확실하게 하기 위해 메시지를 암호화하는 것
외에도, 자신의 개인키를 사용하여 디지털 서명을 암호화해서 함께 보냄으로써, 그 메시지가 틀림없이 바로 당신에게서 온 것임을 받는 사람에게 확신시켜줄 수 있다. 메시지를 받은 사람은,
발신자의 공개키를 이용해 메시지를 복호화할 수 있다. 아래의 표가 이러한 과정을 이해하는데 도움을 줄 수 있을 것이다.


     구 분                                     누구의 어떤 키를 사용하나?
암호화된 메시지를 보냄                               수신자의 공개키
암호화된 서명을 보냄                                 발신자의 개인키
암호화된 메시지를 복호화                             수신자의 개인키
암호화된 서명 (발신자 인증) 을 복호화                발신자의 공개키

MySQL 백업파일을 엑셀(CSV)파일로 변환하는 방법

MySQL 백업파일을 엑셀(CSV)파일로 변환하는 방법


MySQL 콘솔 접근후

select * from [디비명].[테이블명] into outfile '[파일명].csv' fields terminated by ',';

와 같이 명령을 내리면 /usr/local/mysql/data 에 관련 파일이 생성된 것을 확인할 수 있다.


 

MSI Q35 메인보드 CMOS 설정사항.txt

MSI Q35 메인보드 CMOS 설정사항

MySQL 5.0.x 에서 innoDB 설정 가이드



* 이 내용은 APM_Setup_Script.sh 에 설정되어질 예정입니다.   innoDB or MyISAM(기본) 방식중 선택.


0. MySQL 5.0.x 버전은 설치 옵션없이 innoDB를 사용할 수 있게 설치되어 집니다.
   따라서, 설치후 다음과 같이 활성화 해주어야 myISAM 방식이 아닌 innoDB 방식으로 DB를 운영할 수 있습니다.

1. /etc/my.cnf 파일을 열어 25번째 줄 즈음

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

맨 아랫줄에 default-table-type=innodb 을 추가해 줍니다.


2. 124줄 즈음 innodb 관련 설정 항목의 주석처리를 해제합니다.

#innodb_data_home_dir = /usr/local/mysql/data/
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data/
#innodb_log_arch_dir = /usr/local/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50


innodb_data_home_dir
innodb_log_group_home_dir
innodb_log_arch_dir

이 세 항목은 기본 DB DATA 경로로 설정되니 고객이 /usr/local/mysql/data 가 아닌 다른 경로를 DB DATA로 지정하는 경우 여기 또한 수정해줘야 합니다.
또한 innodb_data_file_path 또한 기본적으로 ibdata1을 2000M, ibdata2 10M로 생성하게끔 되어 있습니다.  고객이 값 수정을 요청하는 경우 여기 또한 수정해줘야 합니다.


3. MySQL 데몬을 재 시작해줍니다.


innodb로 바꾼 후 데몬 시작시 로그가 생성되는 관계로 1~2분 정도 소요될 수 있습니다.


4. 설정값 확인

최종적으로 innodb가 설정되었는지의 확인은 /usr/local/mysql/bin/mysqladmin -p variables 또는 mysql 프롬프트에서 show variables; 로 가능하고,

출력되는 내용 맨 아랫 쯔음에 아래 두 항목이 출력되는지 확인해주면 됩니다.


| storage_engine                  | InnoDB                                          |
| sync_binlog                     | 0                                               |
| sync_frm                        | ON                                              |
| system_time_zone                | KST                                             |
| table_cache                     | 512                                             |
| table_lock_wait_timeout         | 50                                              |
| table_type                      | InnoDB                                          |


아무것도 설정하지 않거나, 잘못 설정된 경우 위 항목 값은  MyISAM으로 출력됩니다.


JIB_secuRITY

1.vi /etc/skel/.bash_logout


# ~/.bash_logout

rm -rf $HOME/.bash_history

rm -rf $HOME/.mysql_history

clear


2.vi /root/.bash_logout


# ~/.bash_logout

rm -rf $HOME/.bash_history

rm -rf $HOME/.mysql_history

clear


3.vi /etc/inittab


# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

#2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6


# Run xdm in runlevel 5

# xdm is now a separate service

#x:5:respawn:/etc/X11/prefdm -nodaemon


4.vi /etc/profile


/usr/local/mysql/bin path 추가

       

 pathmunge /sbin

 pathmunge /usr/sbin

 pathmunge /usr/local/sbin

#######################################

 pathmunge /usr/local/mysql/bin


########################################

HISTSIZE=30

HISTFILESIZE=30

TMOUT=1800

########################################

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then

    INPUTRC=/etc/inputrc

fi


######################################

pathmunge /usr/local/mysql/bin after

######################################

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE TMOUT INPUTRC ##########


5.vi /etc/issue /etc/issue.net


6. /etc/ anonymous ftp 설정해제


anonymous_enable=NO

chroot_local_user=YES


9.vi /etc/securetty


tty1

tty2

tty3

tty4

tty5

tty6


10.vi /etc/ssh/sshd_config

#######################################################################

#       $OpenBSD: sshd_config,v 1.56 2002/06/20 23:37:12 markus Exp $


# This is the sshd server system-wide configuration file.  See

# sshd_config(5) for more information.


# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin


# The strategy used for options in the default sshd_config shipped with

# OpenSSH is to specify options with their default value where

# possible, but leave them commented.  Uncommented options change a

# default value.


Port 22

Protocol 2,1

#ListenAddress 0.0.0.0

#ListenAddress ::


# HostKey for protocol version 1

HostKey /etc/ssh/ssh_host_key

# HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key


# Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600

ServerKeyBits 768


# Logging

#obsoletes QuietMode and FascistLogging

#SyslogFacility AUTH

SyslogFacility AUTHPRIV

LogLevel INFO


# Authentication:


LoginGraceTime 600

PermitRootLogin no

StrictModes yes


RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys


# rhosts authentication should not be used

RhostsAuthentication no

# Don't read the user's ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

RhostsRSAAuthentication no

# similar for protocol version 2

HostbasedAuthentication no

# Change to yes if you don't trust ~/.ssh/known_hosts for

# RhostsRSAAuthentication and HostbasedAuthentication

IgnoreUserKnownHosts no


# To disable tunneled clear text passwords, change to no here!

PasswordAuthentication yes

PermitEmptyPasswords no


# Change to no to disable s/key passwords

ChallengeResponseAuthentication yes


# Kerberos options

#KerberosAuthentication no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes


#AFSTokenPassing no


# Kerberos TGT Passing only works with the AFS kaserver

#KerberosTgtPassing no


# Set this to 'yes' to enable PAM keyboard-interactive authentication

# Warning: enabling this may bypass the setting of 'PasswordAuthentication'

PAMAuthenticationViaKbdInt yes


#X11Forwarding no

X11Forwarding yes

#X11DisplayOffset 10

#X11UseLocalhost yes

PrintMotd yes

PrintLastLog yes

KeepAlive yes

UseLogin no

UsePrivilegeSeparation yes

Compression yes


#MaxStartups 10

# no default banner path

#Banner /some/path

#VerifyReverseMapping no


# override default of no subsystems

Subsystem       sftp    /usr/libexec/openssh/sftp-server

#########################################################################


11.vi /etc/pam.d/su


auth       sufficient   /lib/security/pam_rootok.so debug

auth       required     /lib/security/pam_wheel.so group=wheel

auth       sufficient   /lib/security/pam_wheel.so group=wheel

위에것만 쓴다.


##########################################################################

#%PAM-1.0

auth       sufficient   /lib/security/pam_rootok.so debug

auth       required     /lib/security/pam_wheel.so group=wheel

# Uncomment the following line to implicitly trust users in the "wheel" group.

auth       sufficient   /lib/security/pam_wheel.so group=wheel

# Uncomment the following line to require a user to be in the "wheel" group.

#auth       required     /lib/security/pam_wheel.so use_uid

auth       required /lib/security/pam_stack.so service=system-auth

account    required /lib/security/pam_stack.so service=system-auth

password   required /lib/security/pam_stack.so service=system-auth

session    required /lib/security/pam_stack.so service=system-auth

session    optional /lib/security/pam_xauth.so

##########################################################################


12.vi /etc/group


wheel:x:10:root,admin


13. /etc/passwd

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel news

userdel operator

userdel games

userdel gopher

userdel rpcuser

userdel nfsnobody

userdel rpc


14. dbbackup.sh  home계정 backup


15. fstab


/와 /boot만 빼고 다 준다.

############################################################################

LABEL=/                 /                       ext3    defaults        1 1

LABEL=/boot             /boot                   ext3    defaults        1 2

none                    /dev/pts                devpts  gid=5,mode=620  0 0

LABEL=/home             /home                   ext3    defaults,nodev        1 2

none                    /proc                   proc    defaults        0 0

none                    /dev/shm                tmpfs   defaults        0 0

LABEL=/tmp              /tmp                    ext3    defaults,nodev,nosuid,noexec

     1 2

LABEL=/usr              /usr                    ext3    defaults,nodev        1 2

LABEL=/usr/local        /usr/local              ext3    defaults,nodev        1 2

LABEL=/var              /var                    ext3    defaults,nodev        1 2

/dev/hda2               swap                    swap    defaults        0 0

############################################################################


16. kernel 등등 패키지 업그레이드


ncftp ftp.kreonet.net


17. 계정 정리


rc.local 파일에

chmod 500 /proc 추가


chmod 500 /proc

chmod 701 /bin

chmod 700 /boot

chmod 701 /dev

chmod 701 /home

chmod 700 /mnt

chmod 700 /root

chmod 701 /usr

chmod 751 /var

chmod 750 /etc/cron.*

chmod 640 /etc/crontab

chmod 750 /etc/default

chmod 600 /etc/exports

chmod 600 /etc/fstab

chmod 600 /etc/gpm-root.conf

chmod 600 /etc/host.conf

chmod 600 /etc/hosts

chmod 600 /etc/hosts.allow

chmod 600 /etc/hosts.deny

chmod 600 /etc/identd.conf

chmod 600 /etc/initlog.conf

chmod 600 /etc/inittab

chmod 400 /etc/issue

chmod 400 /etc/issue.net

chmod 600 /etc/krb.conf

chmod 600 /etc/krb5.conf

chmod 600 /etc/ld.so.conf

chmod 600 /etc/ldap.conf

chmod 600 /etc/lilo.conf

chmod 600 /etc/login.defs

chmod 600 /etc/logrotate.conf

chmod 750 /etc/logrotate.d

chmod 600 /etc/lpd.conf

chmod 600 /etc/ltrace.conf

chmod 600 /etc/modules.conf

chmod 600 /etc/modules.conf~

chmod 600 /etc/mtab

chmod 650 /etc/my.cnf

chmod 640 /etc/named.conf

chown named.named /etc/named.conf

chmod 600 /etc/nscd.conf

chmod 600 /etc/nsswitch.conf

chmod 600 /etc/pbm2ppa.conf

chmod 600 /etc/pine.conf

chmod 600 /etc/pnm2ppa.conf

chmod 600 /etc/pwdb.conf

chmod 600 /etc/radvd.conf

chmod 750 /etc/rc.d

chmod 600 /etc/redhat-release

chmod 750 /etc/rpm

chmod 600 /etc/rpc

chmod 440 /etc/screenrc

chmod 600 /etc/securetty

chmod 750 /etc/security

chmod 600 /etc/services

chmod 700 /etc/skel

chmod 750 /etc/smrsh

chmod 750 /etc/ssh

chmod 750 /etc/sysconfig

chmod 600 /etc/sysctl.conf

chmod 600 /etc/syslog.conf

chmod 600 /etc/tcp.smtp

chmod 600 /etc/updatedb.conf

chmod 600 /etc/xinetd.conf

chmod 751 /etc/xinetd.d

chmod 600 /etc/yp.conf

chmod 600 /etc/ypserv.conf

chmod 750 /var/log

chmod 751 /var/named

chmod 700 /usr/local/src

chmod 701 /usr/local/apache/cgi-bin

chmod 700 /usr/local/apache/conf

chmod 701 /usr/local/apache/htdocs

chmod 700 /usr/local/apache/logs

chmod 700 /usr/bin/chage

chmod 500 /usr/bin/wall

chmod 700 /usr/bin/chfn

chmod 700 /usr/bin/write

chmod 700 /usr/sbin/usernetctl

chmod 700 /bin/mount

chmod 700 /bin/umount

chmod 700 /sbin/netreport

chmod 700 /bin/rpm

chmod 550 /bin/ps

chmod 550 /bin/netstat

chmod 550 /bin/dmesg

chmod 550 /bin/df

chmod 550 /usr/bin/who

chmod 550 /usr/bin/finger

chmod 550 /usr/bin/last

chmod 550 /usr/bin/top

chmod 550 /usr/bin/w

chmod 550 /usr/bin/uptime

chmod 550 /usr/sbin/useradd

chmod 550 /usr/sbin/userdel

chmod 700 /usr/sbin/groupdel

chmod 700 /usr/sbin/usermod

#chmod 555 /bin/ping

#chmod 555 /usr/bin/find

chmod 600 /var/log/wtmp

chmod 600 /var/log/lastlog

chmod 600 /var/log/dmesg

chmod 600 /var/run/utmp

chmod 750 /usr/bin/rlogin

chmod 750 /usr/bin/rcp

chmod 755 /usr/bin/gpasswd

chmod 755 /usr/bin/at

chmod 711 /usr/bin/newgrp

chmod 755 /usr/bin/crontab

chmod 750 /usr/bin/rsh

chmod 111 /usr/bin/sudo

#chmod 755 /usr/bin/ssh

#chmod 755 /usr/sbin/traceroute

chmod 755 /usr/sbin/traceroute6

chmod 755 /usr/sbin/ping6

chmod 711 /usr/bin/chsh

#chmod 600 /usr/local/apache/conf/*


18. sendmail.mc 설정


divert(-1)

dnl This is the sendmail macro config file. If you make changes to this file,

dnl you need the sendmail-cf rpm installed and then have to generate a

dnl new /etc/mail/sendmail.cf by running the following command:

dnl

dnl        m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

dnl

include(`/usr/share/sendmail-cf/m4/cf.m4')

VERSIONID(`linux setup for Red Hat Linux')dnl

OSTYPE(`linux')

dnl Uncomment and edit the following line if your mail needs to be sent out

dnl through an external mail server:

dnl define(`SMART_HOST',`smtp.your.provider')

define(`confDEF_USER_ID',``8:12'')dnl

undefine(`UUCP_RELAY')dnl

undefine(`BITNET_RELAY')dnl

dnl define(`confAUTO_REBUILD')dnl

define(`confTO_CONNECT', `1m')dnl

define(`confTRY_NULL_MX_LIST',true)dnl

define(`confDONT_PROBE_INTERFACES',true)dnl

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl

define(`ALIAS_FILE', `/etc/aliases')dnl

dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl

define(`UUCP_MAILER_MAX', `2000000')dnl

define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl

define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

define(`confAUTH_OPTIONS', `A')dnl

TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')

dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')

dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')

dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')

dnl define(`confTO_QUEUEWARN', `4h')dnl

dnl define(`confTO_QUEUERETURN', `5d')dnl

dnl define(`confQUEUE_LA', `12')dnl

dnl define(`confREFUSE_LA', `18')dnl

define(`confTO_IDENT', `0')dnl

dnl FEATURE(delay_checks)dnl

FEATURE(`no_default_msa',`dnl')dnl

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl

FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl

FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

FEATURE(redirect)dnl

FEATURE(always_add_domain)dnl

FEATURE(use_cw_file)dnl

FEATURE(use_ct_file)dnl

dnl The '-t' option will retry delivery if e.g. the user runs over his quota.

FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl

FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl

FEATURE(`blacklist_recipients')dnl

EXPOSED_USER(`root')dnl

dnl This changes sendmail to only listen on the loopback device 127.0.0.1

dnl and not on any other network devices. Comment this out if you want

dnl to accept email over the network.

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')

dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires

dnl       a kernel patch

dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')

dnl We strongly recommend to comment this one out if you want to protect

dnl yourself from spam. However, the laptop and users on computers that do

dnl not have 24x7 DNS do need this.

FEATURE(`accept_unresolvable_domains')dnl

dnl FEATURE(`relay_based_on_MX')dnl

MAILER(smtp)dnl

MAILER(procmail)dnl

Cwlocalhost.localdomain


18-1. m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


19. vi /etc/sysconfig/iptables


# Firewall configuration written by lokkit

# Manual customization of this file is not recommended.

# Note: ifup-post will punch the current nameservers through the

#       firewall; such entries will *not* be listed here.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:RH-Lokkit-0-50-INPUT - [0:0]

-A INPUT -j RH-Lokkit-0-50-INPUT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 23 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 21 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 110 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 143 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 53 -j ACCEPT

-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT

-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT

-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT

-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT

COMMIT


20. vi /etc/cron.daily/dbbackup.sh


#!/bin/sh


find /backup/mysqldump -ctime +10 \-exec rm -f {} \;

#

######################################################

##

## [백업하는 자료]

##

## 0. 날짜별로 백업(예: filename-20010310-04.xxx)

## 1. 시스템 날짜 수정(rdate)

## 2. mysql 모든 DB를 .sql 이나 .sql.gz 형태로 백업

## 3. 기타(아직 없음)

##

## * 나머지 설정 파일은 일주일에 한번이나 두번 정도로

##   백업하는 것이 적당.

##

######################################################

##

## [관리자가 꼭 설정해야할 내용 - 10가지]

##


## [0] MySQL DB를 백업할까요?

##     1 = yes(DB를 백업합니다.)

##     0 = no (DB를 백업하지 않습니다.) *** 이하 설정할 필요없음 ***

mysql_dbdump="1"


## [1] MySQL이 어떠한 이유 등으로 가동중이지 않을 경우에 메일을

##     받을 볼 user나 메일 주소 설정.

##

##     만약 메일을 받아 보기를 원치 않는다면 다음 설정을 주석(#)

##     으로 처리하거나 공백으로 설정

##

#reportmailto="san2"


## [2] 기본 백업 디렉토리 설정(수동으로 디렉토리 만들 필요없음)

##

backupdir="/backup"


## [3] MySQL DB 서버(클라이언트가 아님)

## localhost인 경우 localhost로 설정하세요.

##

mysql_host="localhost"


## [4] MySQL DB root 암호(시스템 root 암호 아님)

##     **이 파일의 퍼미션에 주의 **

##

mysql_rootpasswd="gkehdgus"


## [5] MySQL DB dump 디렉토리(뒤 부분, 수동으로 디렉토리 만들 필요없음)

##

mysql_backupdir="${backupdir}/mysqldump"


## [6] MySQL DB dump 프로그램

##     RPM으로 설치했다면 'which mysqldump'의 결과 명시

##

mysql_dump="/usr/local/mysql/bin/mysqldump"


## [7] MySQL DB show 프로그램

##     RPM으로 설치했다면 'which mysqlshow'의 결과 명시

##

mysql_show="/usr/local/mysql/bin/mysqlshow"


## [8] dump한 DB를 압축하시겠습니까?

##     1 = yes(예: dbname-20010310-04.sql.gz)

##     0 = no (예: dbname-20010310-04.sql)

##

db_compress="1"


## [9] 전체 DB 중 포함시키지 않을 DB 설정

##     각 DB의 구분은 "또는 연산자(|)"로 다음과 같이 구분

##     기본 값으로는 test와 test2로 설정되어 있음.

##

not_dump_db="test|test2"


##

## 설정 내용 끝(이하 수정할 필요 없음)

##

######################################################

######################################################

##

## 시스템 시간 설정 조정

##

#/usr/bin/rdate -s time.kriss.re.kr | clock -w >/dev/null 2>&1

/usr/bin/rdate -s time.kriss.re.kr >/dev/null 2>&1


## MySQL DB를 백업하지 않는다면 종료함.

##

if [ "$mysql_dbdump" != "1" ] ; then

        exit 0

fi


## 파일을 구분하기 위해서 날짜-시간으로 설정

##

sysdtime=`date +%Y%m%d-%H`


## MySQL DB dump

##

## MySQL 접속 파라미터

##

mysql_connect="-h $mysql_host -u root -p$mysql_rootpasswd"


## MySQL 모든 DB 축출

## 앞에서 설정한 $not_dump_db는 제외됨

##

mysql_DBs=`$mysql_show $mysql_connect 2>/dev/null | egrep -v "(${not_dump_db}|Databases|\+)" | awk '{print $2}'`


## 실제로 DB를 dump 하는 함수

##

mysql_dump_work() {

        mysql_each_DB="$1"

        mysql_dump_file="${mysql_backupdir}/${mysql_each_DB}-${sysdtime}.sql"

        $mysql_dump $mysql_connect $mysql_each_DB > $mysql_dump_file

        if [ "$db_compress" = "1" ] ; then

                gzip -f9 $mysql_dump_file

        fi

}


if [ "$mysql_DBs" != "" ] ; then


        if [ ! -d "$mysql_backupdir" ] ; then

                mkdir -p "$mysql_backupdir"

                chmod 700 "$mysql_backupdir"

        fi


        ## All DB dump to one file(.sql) !!!!

        ## Verbal advice --> LSN tip board : 'lubzzon'

        ## --all-databases > all_db.sql

        ##

        for mysql_DB in $mysql_DBs ; do

                mysql_dump_work $mysql_DB

        done


        #chmod 600 $mysql_backupdir

        #chown root mysql_backupdir


else

        ## MySQL이 가동중이지 않을 경우

        ## 주) 아래에서 ${IFS}=$IFS HTML에서 <BR>과 같음.

        ##


        if [ "$reportmailto" != "" ] ; then

                mailsubject="dailydump.cron report [${HOSTNAME}]"

                mailmessages="MySQL이 가동하지 않거나 DB가 없습니다.${IFS}MySQL 서버(${mysql_host}) 확인하세요!!!"

                echo "$mailmessages" | mail -s "$mailsubject" "$reportmailto" >/dev/null 2>&1

        fi

fi


exit 0


21. vi /etc/cron.weekly/homebackup.sh

#!/bin/sh


# 디렉토리 설정하실때 끝에 꼭 / 넣어주세요.

home_root="/home/"

backup_home_root="/backup/home/"


cd $home_root


echo "백업 중입니다"

for home_name in $(ls)

do

if [ -d "$home_root/$home_name" ] ; then

echo "tar -cvzf $backup_home_root$home_name.tar.gz $home_name"

tar -czf "$backup_home_root$home_name.tar.gz" "$home_name"

fi

done


22. vi /etc/named.conf


logging {

        category lame-servers { null; };

        category cname { null; };

        category response-checks { null; };

        category notify { null; };

};


23. vi /usr/local/apache/conf/apache.conf


<Directory /home/*>

    AllowOverride FileInfo AuthConfig Limit

    Options MultiViews SymLinksIfOwnerMatch Includes ExecCGI

    <Limit GET POST OPTIONS PROPFIND>

        Order allow,deny

        Allow from all

    </Limit>

    <LimitExcept GET POST OPTIONS PROPFIND>

        Order deny,allow

        Deny from all

    </LimitExcept>

</Directory>




<IfModule mod_dir.c>

    DirectoryIndex index.php index.php3  index.html index.htm index.jsp

</IfModule>



    # And for PHP 4.x, use:

    AddType application/x-httpd-php .php .php3 .inc .ph .htm

    AddType application/x-httpd-php-source .phps


24. ntsysv


crond

imap

ipop3

iptables

named

network

random

sendmail

sshd

syslog

telnet

vsftpd

xinetd


###############################################################


1. mysql


mysql 패스워드 지정하기

>#mysqladmin -u root password new-passwd


mysql 패스워드 바꾸기

>#killall mysqld

>#/usr/local/mysql/bin/safe_mysqld --skip-grant &

>#/usr/local/mysql/bin/mysql mysql

mysql>UPDATE user SET Password=PASSWORD('111111')WHERE user='root';

mysql>FLUSH PRIVILEGES;


2. apache 설정 (httpd.conf)

    <IfModule mod_dir.c>

        DirectoryIndex index.html index.html index.php index.php3 index.cgi

    </IfModule>


    AddType application/x-tar .tgz

    AddType application/x-httpd-php .php .php3 .php4 .html .htm

    AddType application/x-httpd-php-source .phps



ipacctable

 ipacctable
dlmod ipAcctTable /usr/lib/snmp/dlmod/ipaccttable.so

ICMP 막기 풀기

ICMP 막기

/etc/rc.d/rc.local

핑막기
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all


핑풀기
주석처리 후 리부팅

아니면

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

httpd.conf보안.

htdosc 안에 정의된 초기파일이 존재하지 않을 경우
htdosc  디랙토리 내의 파일 목록을 리스트 형태로 보여주게 된다

<Directory "/usr/local/apache/htdocs">

  Options IncludesNoExec

</Directory>


특정파일에대한 접근허용 or 거부

<Files ~ "admin.php">    ////admin.php 파일 접근거부

   Order Deny Allow
   Deny from all
   Allow from 192.168.1.1   ////192.168.1.1 만 접근 허용

</Files>

.bak  .old 파일들과 같은 서버 사이드 소스파일을 접근 못하게 하는것이 좋다
dbconn.php  --> dbconn.bak 로 백업해놓은 파일들경우

특정확장자를 PHP와 같은 서버 사이드 언어로 설정해 웹서버어 소스를 그대로 보이지 않고 실행하도록 하는 방법

AddType application/x-httpd-php .php .inc .bak .old .c

특정 ip대역 호스트 차단 하기

<Directory /usr.local/apache/htdocs>   

   Order Deny Allow
   Deny from 192.168.1    ///192.168.1.X대역 아이피 접근 거부
   Allow from all 

</Directory>

haldaemon & udevd

haldaemon & udevd




HAL은 Hardware Abstraction layer의 약자로 Kernel 2.6.X기반의 배포판에서는Udev, hotplug , D-bus , autofs(automounting) 과 함께 각종 디바이스 장치를 인식하는데 있어 중요한 역활을 합니다.
HAL은 아래의 주소에서 좀더 상세한설명을 참고하실수 있습니다. http://www.freedesktop.org/Software/hal

HAL은 시스템에서 하드웨어에 대해 몇몇 소스들로부터 정보를 수집하고 관리하기 위한 데몬입니다. 이것은 D-BUS를 통하여 탄력적인 디바이스 리스트를제공합니다.

[root@www ~]# pstree -p | grep hald ├─hald(1893)───hald-addon-acpi(1898)

[root@www ~]# pstree -p | grep bus ├─dbus-daemon(1883)

사실 HAL Daemon은 2.6.13부터 devfs(Device Filesystem)이 여러가지 문제로인해 제거되면서
그대안으로 Udev(Userspace Device Filesystem)라는 것이 나왔는데, 이 Udev를 견고하게 지원하기
위한 방법으로 HAL이 탄생하고 쓰이고 있다고할수 있습니다.

이왕 설명한거 좀더 구체적으로 설명해보도록 하겠습니다.
이동식 USB 저장장치를 인식했을ㄸㅒ의 동작구조를 설명해보도록 하겠습니다.
USB 2.0 저장장치를 플러그인하면 2.6 Kernel의 Hotplug Device는 이 장치를 인식하여
/sbin/udevsend를 실행합니다. 이 udev는 Serializing를 위해 아래의 /sbin/udevd 을 호출하게 됩니다.

[root@www ~]# pstree -p | grep udev ├─udevd(773)

이것은 이제 HAL device name helper의 도움을 받아서 local socket을 통하여 hald(HAL daemon)에게 메세지를 보냅니다. 참고로, hald는 init script에 의에 start되어 아래처럼 항시 실행됩니다.이 hald는 /etc/hal/device.d/을 통하여 /etc/fstab의 엔트리들을 갱신합니다. 이제 마지막으로 automount daemon을 통하여 /media 디렉토리에 오토마운팅이됩니다.
[root@linux ~]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
#LABEL=/ / ext3 defaults 1 1
/dev/hdb1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
........................................ 중간생략 .......................................................
/dev/sda1 /media/USB_512M vfat <-------- USB를 꼽은후 hald에 의해 자동으로 생성된 라인입니다.
pamconsole,exec,noauto,iocharset=utf8,noatime,sync,managed 0 0

아래는 automount 데몬이 실행되고 있는지 확인하여 본것입니다.

[root@www ~]# pstree -p | grep auto ├─automount(1632) ├─automount(1662)

여기서 한가지 짚고 넘어 갈것은 hald 데몬만으로 /etc/fstab에 plugin된 usb 이동식 저장장치의
엔트리가 추가되고 마운팅되어 /media/USB_512M 를 사용할수 있는데 그럼 automount daemon은
무엇인가? 이 automount 데몬은 좀더 다양한 옵션( sambfs을 마운팅 한다라던가? USB 이동장치가
60초동안 사용안되면 자동으로 언플러그 한다라던가?) 을 지원하기 때문에 hald daemon + automount가
같이 쓰이게 되었었습니다.
[root@www etc]# /etc/init.d/autofs status
Configured Mount Points:
------------------------
/usr/sbin/automount --timeout=60 /misc file /etc/auto.misc
/usr/sbin/automount --timeout=60 /net program /etc/auto.net

Active Mount Points:
--------------------
/usr/sbin/automount --timeout=60 /misc file /etc/auto.misc
/usr/sbin/automount --timeout=60 /net program /etc/auto.net

이렇게 최종적으로 오토마운팅이 되면 사용자는 #> df 를 통하여 마운트 된것을확인 하실수 있습니다. 그리고, 마운트된 /media/USB_512M 을 사용하실수 있게됩니다.

결론적으로 님이 이동식 저장장치를 사용하시고자 한다면 Failed가 된

HAL daemon(hald)과 D-bus daemon(dbus-daemon)을 정상적으로 설치하셔야 합니다. 참고로, FC3의 배포판에 장착된 udev은 심각한 버그가 있다고 레드헷(페도라측)에서공지한 바 있으니 최근의 udev으로 업데이트 함으로써 본 문제가 해결되실수 있으니이 부분도 참고하여 해결하시기 바랍니다.