윈도우 (Windows)2016. 3. 29. 13:27

개인이 정상적인 메일 서비스를 통해 발송한 메일은 수신 측에서 스팸으로 분류될 확률이 적다. 하지만 서버에서 공지/안내 등의 이유로 다량의 메일을 지속적으로 발송할 경우 스팸으로 분류될 확률이 높다. 이 글에서 설명하고자 하는 것은 서버에서 다량의 메일 발송시 스팸으로 분류될 확률을 낮추기 위해 처리해야 할 몇가지를 소개하고자 한다.

스팸 필터는 아래에 설명하는 조건 외에도 메일의 내용, 수신한 사용자의 반응(스팸으로 체크) 등의 다양한 조건을 사용해서 스팸을 분류하므로 이 내용을 모두 적용한다고 스팸으로 무조건 분류되지 않는 것은 아니다. 하지만 아래의 조건들을 만족함으로써 정상적인 메일을 발송함에도 불구하고 스팸 서버로 분류되는 것을 어느 정도 예방하기 위한 활동이라고 생각하면 된다. 그리고 아래의 내용은 스팸 서버로 분류되는 상황을 겪으면서 조금씩 추가했던 내용들을 정리한 것이지만 잘못된 부분이 있을 수 있으니 참고용으로 둘러보기를 권장한다. 스팸 필터 정책은 수시로 변경되기도 하고 서비스별로 모두 다른 정책을 사용하므로 아래의 내용이 진리는 아니라는 것이다(사실 그런 것이 있다면 스패머들이 판치는 세상이 될 것이다).

그럼 하나씩 알아보자.

Reverse DNS 설정

Reverse DNS란 DNS의 반대 개념으로서 IP로 Domain Name을 조회하는 것을 말한다. Reverse DNS를 통해 도메인이 조회 가능한 IP를 가지는 서버는 실제 운영되는 서비스 서버일 확률이 높으므로 스팸 서버가 아닐 확률이 높은 것으로 보는 것이다. 특히 구글과 같은 메일 서버들은 Reverse DNS가 등록되지 않은 서버에서 발송한 메일은 스팸 점수를 높게 책정하거나 수신을 거부하는 경우도 있다. 따라서 이메일을 발송하는 서버는 필히 Reverse DNS를 설정하는 것을 권장한다.

등록이 되어 있는지를 확인하는 방법은 아래와 같다. 여기서 A.B.C.D는 해당 서버 IP다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ nslookup -type=ptr A.B.C.D
Server:		168.126.63.1
Address:	168.126.63.1#53

Non-authoritative answer:
D.C.B.A.in-addr.arpa	name = mail.domain.com.

Authoritative answers can be found from:
C.B.A.in-addr.arpa	nameserver = rev2.kornet.net.
C.B.A.in-addr.arpa	nameserver = rev1.kornet.net.
rev1.kornet.net	internet address = 211.216.50.170
rev2.kornet.net	internet address = 211.216.50.180

Reverse DNS가 정상적으로 설정되어 있다면 위와 같이 조회 결과를 볼 수 있다.

등록이 되어 있지 않다면 어떻게 해야 할까? 대부분의 경우(전체 네트워크를 소유하지 않은 경우) 망사업자 측에 요청하여 설정해야 한다.

KT 회선을 기준으로 아래의 방법으로 등록 신청이 가능했다. 하지만 얼마전 확인해 보니 사이트가 변경되어 아래의 방법을 사용할 수 없었다. 대부분의 경우 IDC 등에 문의해서 처리하면 된다.

등록 방법 : [아래]
① http://dns.kornet.net 사이트 접속
② 도메인 등록 요청/문의 클릭
③ 새글작성 클릭
④ 게시물 유형 -> 리버스 등록, 소속 -> idc 체크, 나머지 정보 기입후 등록
rDNS 관련 연락처 : 02-3674-5820

SPF(Sender Policy Framework) 레코드 등록

구글 관리자 도움말 - SPF 레코드 정보에 SPF에 대해 다음과 같이 설명하고 있다.

SPF 레코드는 도메인을 대표하여 이메일을 보낼 수 있는 메일 서버를 식별하는 DNS(Domain Name Service) 레코드의 한 유형입니다.

SPF 레코드의 목적은 스팸 발송자가 도메인의 위조된 ‘보낸사람’ 주소를 사용하여 메일을 보내지 못하도록 하는 것입니다. 수신자는 SPF 레코드를 참조하여 자신의 도메인에서 보낸 것처럼 위장한 메일이 인증된 메일 서버에서 전송된 것인지를 판별할 수 있습니다.

예를 들어 example.com 도메인에서 Gmail을 사용한다고 가정해 보겠습니다. Google Apps 메일 서버를 도메인에 대한 인증된 메일 서버로 식별하는 SPF 레코드를 만듭니다. 수신자의 메일 서버가 user\@example.com에서 보낸 메일을 수신하는 경우, example.com에 대한 SPF 레코드를 확인하여 유효한 메일인지 여부를 판별할 수 있습니다. 메일이 SPF 레코드에 나열된 Google Apps 메일 서버가 아닌 다른 서버에서 전송된 경우 수신자의 메일 서버에서 이를 스팸으로 간주하여 수신 거부할 수도 있습니다.

도메인에 SPF 레코드가 없는 경우에는 수신자 도메인에서 메일이 인증된 메일 서버에서 전송된 것인지를 확인할 수 없으므로 사용자의 메일이 수신 거부될 수도 있습니다.

위 설명을 보면 알 수 있듯이 SPF 레코드 등록의 경우도 메일 발송을 위해서는 필수적으로 해야할 것 중 하나다. 그리고 뒤에 설명할 White Domain 등록을 위해서도 필히 등록이 되어 있어야 한다.

SPF 레코드 등록 방법은 잘 설명된 문서들이 많으므로 굳이 여기서 다시 설명하지는 않는다. 다만 간단히 예시만 하나 남긴다.

DNS zone 설정에 추가

@   IN TXT      "v=spf1 ip4:A.B.C.1 ip4:A.B.C.2 ip4:A.B.C.3 ~all"

간단히 설명하자면 다음의 IP(A.B.C.1, A.B.C.2, A.B.C.3)가 설정된 서버에서 해당 도메인을 사용해 메일을 발송할 수 있다는 의미다.

화이트 도메인(White Domain) 등록

KISA RBL에서 통합 White Domain 등록제를 운영하고 있다. 통합 White Domain 등록제에 대해서는 위 사이트에서 아래와 같이 안내하고 있다.

정상적으로 발송하는 대량 이메일이 RBL이력으로 간주되어 차단되는 것을 방지하기 위하여, 사전에 등록된 개인이나 사업자에 한하여 국내 주요 포탈사이트로의 이메일 전송을 보장해주는 제도입니다. ( 무료 )

  • 단, White Domain으로 등록되었다 하더라도 이후 모니터링을 통해 RBL이력발송 사실이 확인되면, 즉각 차단 조치되며 White 리스트에서도 삭제될 수 있습니다.

기존에 개별 포탈에서 ‘IP 등록제’, ‘IP 실명제’등의 이름으로 운영해오던 것을 2006년 9월 1일부로 KISARBL이 등록접수/관리/운영을 통합한 것이므로, KISARBL에 White Domain으로 등록하게 되면 , 여러번 별도로 등록할 필요없이 참여하고 있는 포탈사이트에 동시에 등록됩니다 .

  • 단 , 개인의 경우에는 일부 포탈사이트에서 자사의 정책상 등록을 허용하지 않습니다.

위 설명을 보면 알 수 있듯이 White Domain은 국내 포털 사이트로 메일을 발송하는 경우에 적용될 수 있는 것으로 범위가 제한되지만 대부분의 수신자가 국내 포털 사이트의 이메일을 사용하고 있는 것을 감안하면 이 또한 필수적으로 등록하는 것이 좋다. 등록 방법은 위 사이트에서 안내하고 있으므로 별도로 설명하지는 않는다. 하지만 등록 과정이 그리 복잡하지 않으므로 큰 어려움은 없을 것으로 생각된다.


상기 안내한 사항들은 필수적으로 처리하는 것이 좋은 것들이고 이후의 사항들은 가급적 처리하는 것이 좋은 것이다. 하지만 스팸으로 분류되지 않기 위해서는 최대한 할 수 있는 모든 방법을 동원하는 것이 좋다. 그렇게 해도 스팸으로 빠진다. 따라서 확률을 낮추는데 집중해야 한다. 정확하게 이야기 하자면 요즘엔 메일 내용을 더 중요하게 다루는 경우가 많아 내용 작성에도 공을 들여야 한다. 여기서 내용이란 의미를 갖는 문장 뿐아니라 html 마크업과 같은 메일 전문을 뜻한다. 하지만 이 부분은 이 글에서 이야기 하고자하는 것이 아니므로 이 이상의 언급은 피하려 한다.


DKIM(DomainKeys Identified Mail) 인증

Google Apps 관리자 도움말 - DKIM으로 이메일 인증에서는 다음과 같이 DKIM을 소개하고 있다.

DKIM 표준을 사용하여 발신 메일 헤더에 디지털 서명을 추가하면 스푸핑을 방지하는 데 도움이 됩니다. 이렇게 하려면 비공개 도메인 키를 사용하여 도메인의 발신 메일 헤더를 암호화하고 키의 공개 버전을 도메인의 DNS 레코드에 추가해야 합니다. 그러면 수신 서버가 공개 키를 검색하여 수신 헤더의 암호를 해독하고 메일이 실제로 사용자의 도메인에서 전송되었으며 전송 과정에서 변경되지 않았는지 여부를 확인할 수 있습니다.

위 설명을 보면 알 수 있듯이 스푸핑 방지에 도움을 준다. 따라서 수신된 메일이 스푸핑되지 않았음을 보증하므로 스팸으로 분류될 확률을 낮추는데 도움이 된다(기술적 의미에서는 스팸과 아무런 연관성이 없으나 스팸 필터에서 DKIM이 적용된 메일의 스팸 지수를 낮추는 정책을 사용하는 곳들이 많다).

DKIM에서 사용할 서명 키는 openssl등을 이용해서 직접 생성하는 것도 가능하지만 잘 만들어진 온라인 도구들이 있다. 그중에서 DKIM Core Tools를 간략히 소개하고자 한다. 직접 생성하는 방법을 사용해도 되나 여기서는 다루지 않는다(RSA 키를 생성하는 것이므로 쉽게 정보를 얻을 수 있다). 단, 직접 생성했을 경우라면 DNS에 등록할 레코드를 만드는 것이 조금 복잡할 수 있으니 DNS 레코드 생성을 도와주는 DNS Watch - DKIM DNS Wizard를 활용하자.

http://dkimcore.org/tools/ 로 접속해보면 상단에 도메인을 넣는 란이 있다. 여기에 원하는 도메인을 입력하고 Generate 버튼을 누르면 private/public key를 만들어 보여주며 DNS에 설정할 DKIM 레코드도 생성하여 바로 보여준다(친절하게도 Bind9, Tinydns, Raw 포멧으로 제공한다). 여기서 제공하는 DKIM 레코드를 DNS에 추가하면 된다.

그런데 DKIM의 경우는 앞서 설명했던 것들과 다르게 설정만하면 완료되는 것이 아니다. DKIM 레코드에는 공개키를 제공하는 것이므로 메일 발송시 비공개 도메인 키를 사용하여 도메인의 발신 메일 헤더를 암호화하는 과정이 필요하다. 이 부분에 대해서는 오픈소스로 제작된 라이브러리들이 다수 있으니 쉽게 찾을 수 있다. 아니면 직접 구현해도 된다. 다만 RSA를 다루어야 하므로 약간의 지식이 필요하다.

DMARC(Domain-based Message Authentication, Reporting and Conformance) 정책 게시

dmarc.org에서는 DMARC에 대해 다음과 같이 설명하고 있다.

DMARC, which stands for “Domain-based Message Authentication, Reporting & Conformance”, is an email authentication protocol. It builds on the widely deployed SPF and DKIM protocols, adding a reporting function that allows senders and receivers to improve and monitor protection of the domain from fraudulent email.

위 내용을 번역한 것은 아니지만 DMARC를 조금 더 이해하기 쉽게 설명하자면 다음과 같다.

DMARC는 이메일 인증 프로토콜로써 도메인 기반 메시지 인증, 보고, 준수를 의미한다. DMARC는 SPF, DKIM 두 가지 방법에 의존하여 서명 무결성을 확인한다. 메일이 SPF, DKIM 검사에 실패하면 DMARC 정책이 실행된다. 어떤 방법을 사용하든 두 가지 검사에 모두 실패하지 않는 한 메일은 DMARC를 통과한 것으로 간주된다. 그렇다면 DMARC를 통과하지 못하면 어떻게 되는가? 이때 어떻게 대응할 것인지에 대해서 정의하는 것이 DMARC 정책 게시라고 볼 수 있다.

Google Apps 관리자 도움말 - DMARC 레코드 추가에서 설명하고 있는 DMARC TXT 레코드에 대한 설명은 아래와 같다.

태그 이름필수항목목적샘플
v필수프로토콜 버전v=DMARC1
p필수도메인에 대한 정책p=quarantine
pct선택사항필터링이 적용되는 메일의 비율(%)pct=20
rua선택사항집계 보고서의 보고 URIrua=mailto:aggrep@example.com
sp선택사항 도메인의 하위 도메인에 대한 정책sp=reject 
aspf선택사항SPF의 정렬 모드aspf=r

v(버전) 및 p(정책) 태그만 필수항목입니다. 가능한 정책 설정, 즉 메일 처리에는 다음 3가지가 있습니다.

none - 아무 조치도 취하지 않습니다. 문제가 발생한 메일을 일일 보고서에 기록만 합니다. quarantine - 문제가 있는 메일을 스팸으로 표시합니다. reject - SMTP 계층에서 메일을 취소합니다. 정렬 모드란 발신자 레코드를 SPF 및 DKIM 서명과 비교하는 정밀도를 의미하는데, 느슨함 또는 엄격함의 두 가지 값을 가질 수 있으며, 느슨함은 ‘r’, 엄격함은 ‘s’로 표시됩니다. 간단히 말해, 느슨함 모드에서는 주어진 도메인의 하위 도메인처럼 부분 일치를 허용하며, 엄격함 모드에서는 완전히 일치해야 합니다.

일일 보고서를 받으려면 선택항목인 rua 태그와 함께 이메일 주소를 포함해야 합니다.

다음은 DMARC TXT 레코드(_dmarc.your_domain.com IN TXT)의 예입니다. 적절히 수정하여 사용할 수 있습니다. ‘your_domain.com’ 및 ‘postmaster@your_domain.com’은 실제 도메인 이름과 이메일 주소로 변경해야 합니다.

다음 TXT 레코드 예에서는 ‘your domain.com’에서 전송된 것으로 표시되는 메일이 DMARC 검사에 실패하는 경우, 아무런 조치도 취하지 않습니다. 대신 해당하는 모든 메일은 ‘postmaster@your_domain.com’에 전송되는 일일 집계 보고서에 표시됩니다.

“v=DMARC1; p=none; rua=mailto:postmaster@your_domain.com” 다음 TXT 레코드 예에서는 ‘your domain.com’에서 전송된 것으로 표시되는 메일이 DMARC 검사에 실패하는 경우, 이런 메일의 5%에 대해 차단 조치(스팸으로 표시)를 취합니다. 그런 다음 일일 집계 보고서를 ‘postmaster@your_domain.com’으로 보냅니다.

“v=DMARC1; p=quarantine; pct=5; rua=mailto:postmaster@your_domain.com” 마지막 예에서는 ‘your_domain.com’에서 전송된 것으로 표시되는 메일이 DMARC 검사에 실패하는 경우, 이런 메일을 항상 거부합니다. 그런 다음 일일 집계 보고서를 ‘postmaster@your_domain.com’ 및 ‘dmarc@your_domain.com’으로 보냅니다.

“v=DMARC1; p=reject; rua=mailto:postmaster@your_domain.com, mailto:dmarc@your_domain.com”

설명을 보면 알 수 있듯이 이것 또한 메일이 스팸으로 분류되는 것과는 크게 상관이 없다. 하지만 여러 스팸 필터에서 DMARC가 설정된 도메인의 메일을 스팸 지수를 낮게 책정하는 정책을 사용하는 경우가 있어 소개한 것이다. 그도 그럴 것이 메일 품질(스팸, 스푸핑 등)에 대한 관리를 하고자하는 의지를 보이는 것이므로 정상적인 발송자라고 생각할 수 있는 것이다.

그리고 한가지. DMARC는 모든 메일 수신처에 적용되는 것이 아니다. dmarc.org 표준을 준수하는 곳에서만 정책을 확인하고 대응한다.

Posted by 랩퍼우
윈도우 (Windows)2016. 3. 29. 13:09

▶ Reverse DNS

  

DNS 의 반대 개념으로서 IP로 Domain name 을 조회하는 것입니다.

Reverse DNS 를 조회함으로서 신뢰할 수 있는 기업에서 정상적인 용도로 사용되고 있는 IP 인지 또는 가정용에 배포되는 유동IP 인지를 파악할 수 있습니다.

 

특히 해외로 메일을 보내려면 사용중인 메일서버 IP에 대해 Reverse DNS(PTR Record)가 등록되여 있어야 수신이 될 가능성이 높습니다. 이는 해외 메일 시스템 및 스팸장비에서 Reverse DNS 조회를 거쳐 메일을 필터링 하기 때문입니다.
 
 

▶ Reverse DNS 조회

  

아래의 조회 결과는 네이버의 메일서버 IP를 기준으로 조회 했을때이며 mx-1.naver.com 이라는 값이 Reverse DNS로 등록되어 있는 것을 확인 할 수 있습니다


만약 Reverse DNS가 등록되여 있지 않은 IP 라면 아래와 같이 찾을 수 없습니다. 라는 실패 메세지가 나옵니다


▶ Reverse DNS 등록

 

Reverse DNS 를 등록하기 위해서는 아래 절차에 따라 해당 메일서버 IP를 관리하는 상위기관에 등록요청을 하셔야 합니다.
 
1. 등록요청이 가능한 IP - 서버호스팅, 전용회선 사용자
주의) VDSL, ADSL, 광랜등의 가정용서비스는 국내 정책상 등록이 불가능합니다.
 
2. 등룍요청 기관
a. 서버호스팅 - 호스팅 제공업체에 요청
b. 전용회선 - 전용회선 임대사업자(KT, 데이콤 등)의 DNS 서버관리자에게 요청
참고) 데이콤 DNS 서버 관리자 : dnsadm@bora.net, KT(Kornet) : http://dns.kornet.net/jsp/login.jsp

   

cf) Reverse DNS는 자체 DNS에 등록한다고 해결되는 것이 아니라 상위 네트워크 기관에서 등록해 주어야 합니다.
 
3. 등록전 준비사항
등록하려는 메일서버IP와 메일 호스트명이 일치하는지 점검 후 DNS 세팅을 정확히 해 놓으셔야 합니다.
 
4. 등록 요청 양식
Reverse DNS (PTR Record) 등록을 요청 합니다.
1. 업체명(고객이름)
2. 사용서비스명(상품영)
3. 고객번호(관리번호)
4. 메일서버 IP : x.x.x.x

5. 메일서버 호스트(도메인) mail.hope.pe.kr



Posted by 랩퍼우
윈도우 (Windows)2016. 3. 29. 11:45


① 등록 대상 도메인의 DNS 정보를 편집합니다.
1. 시작 > 프로그램 > 관리 도구 > DNS
2. SPF Record를 출판하고자 하는 도메인명을 클릭합니다.
3. 해당 도메인에 대해 마우스 오른쪽 버튼 클릭 후 ‘다른 새 레코드’를 클릭합니다.
4. ‘리소스 레코드 종류’ 대화 상자에서 ‘텍스트(TXT)’ 선택 후 ‘레코드 만들기’를 클릭합니다.
5. ‘텍스트(TXT)’ 탭에서 ‘텍스트(E)’ 란에 SPF Record를 입력한 후 ‘확인’을 클릭합니다.
※ SPF Record는 kisarbl.or.kr의 ‘SPF 작성도우미’를 이용하면 쉽고 편리하게 작성할 수 있습니다.
※ 윈도우의 경우, SPF Record에 큰따옴표(" ")를 입력하지 않습니다.
6. SPF Record가 출판된 내용을 확인합니다.
※ 변경된 DNS가 반영되는 시간을 고려하여 SPF Record를 출판한 시점으로부터 하루 정도 경과한 후에 White Domain 등록신청을 해주시기 바랍니다.
② DNS 서비스를 재시작 합니다.
시작 > 프로그램 > 관리 도구 > 서비스 
'DNS Sever'를 마우스 오른쪽 버튼 클릭 후 '다시 시작'을 클릭합니다.
③ nslookup 등의 명령어로 DNS 질의 시, SPF 레코드가 출력되는지 확인합니다.


Posted by 랩퍼우
윈도우 (Windows)2016. 3. 25. 17:28

[개요]

이제 웹서버와 데이터베이스 서버를 연결해 보도록 합시다.

 앞으로 간단한 게시판을 만들고 게시판에 들어갈 데이터베이스 서버를 구축 하고 쿼리문을 이용하여 데이터를 관리 하는 방법을 알아 봅시다.

  보안 측면에서 sa 계정으로 바로 데이터 베이스 서버에 연결을 하게 되면 굉장히 위험합니다. 따라서 하나의 계정을 추가한 데이터베이스 서버를 만들고 이를 연결하는 방법을 알아보도록 합시다.

1. DataBase구축

실습용 Database/Table 생성 record입력, 로그인(암호설정 포함) 사용자생성

DB이름 : testDB , DB소유자: sa

LOGIN 계정 : asp_user , 암호:1234

사용자 계정 : asp_user




Database 생성( 계정으로 생성)

개체 탐색기> 보안 > 로그인 > 마우스 우클릭 > 로그인 > SQL Server 인증으로 변경 > 패스워드 입력 > 확인


SQL 서비스 재시작

실행 > services.msc > SQL Server (MSSQLSERVER) 재시작


개체탐색기에서 연결 끊기 다시 연결

1. 테이블생성 (asp_user계정으로 로그인 후 작업)

USE testDB

CREATE TABLE freshman(

num varchar(50) NOT NULL PRIMARY KEY,

name varchar(50) NOT NULL,

dept varchar(50) NOT NULL,

credit float(8)

)

2. 로그인생성(암호설정)

USE master

CREATE LOGIN [asp_user] WITH PASSWORD=N'1234',

DEFAULT_DATABASE=[testDB],

DEFAULT_LANGUAGE=[한국어],

CHECK_EXPIRATION=OFF,

CHECK_POLICY=OFF

3. 사용자 생성

USE [testdb]

CREATE USER [asp_user] FOR LOGIN [asp_user]

   

 

4.권한부여

USE master

GRANT VIEW ANY DATABASE TO asp_user

USE testDB

GRANT SELECT,UPDATE,INSERT,DELETE ON freshman TO asp_user

5.데이터입력

USE testDB

INSERT INTO freshman VALUES('20070001','스티브잡스','컴퓨터공학',3.69)

INSERT INTO freshman VALUES('20070002','보링','기계공학',4.21)

INSERT INTO freshman VALUES('20070101','고흐','서양미술',4.18)

INSERT INTO freshman VALUES('20070301','샤라포바','사회체육',4.36)

INSERT INTO freshman VALUES('20070401','모짜르트','실용음악',4.11) 


2. IIS 연동  

제어판 - 관리도구 - 데이터원본(ODBC) - 시스템DSN   - 추가   - SQL Server  마침


이름  : 임의로 정해도 (ex. sqlgrade)

서버 : local  (서버 선택하는데 시간이 상당히 걸릴수도 있으나 기다리면 됩니다.)

아래 그림 처럼 사용자가 입력한 로그인 ID 암호를 사용하는 SQL Server 인증 사용 클릭

로그인 - Database에서 설정했던 아이디, 암호 입력

기본테이블 설정

마침 - 데이터 원본 테스트 클릭을 하였을때

아래처럼 테스트 결과가 정상적으로 성공하였다면 제대로 연동이 것이다.



3. IIS ASP 연동 설정

IIS ASP모듈/확장자 등록확인


부모 경로 사용  => True 확인

4. 간단한 연동 테스트

C:\inetpub\wwwroot\Default.asp ß생성

<%Response.Write"<H1>ASP인식성공</H1>"%> ß 내용삽입 

위의 내용을 입력한 후 웹브라우저에서 정상 실행되는지 확인




데이터 인출을 위한 ASP파일 작성(sqlsearch_ole.asp)(OLEDB연결)

<html>

<body>

<h2>레코드검색하기</h2>

<hr><hr>

<%

   Dim DBconnectionSTR, DB

   DBconnectionSTR = "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=asp_user;Initial Catalog=testDB;Data Source=localhost"

   Set DB = Server.CreateObject("ADODB.Connection")

   DB.Open DBconnectionSTR

 

   SQL="select name,credit from freshman WHERE dept= '컴퓨터공학'"

   set rs = db.execute(SQL)

 

   Do Until rs.EOF

  

   strName      = rs("name")

   strCredit   = rs("credit")

 

   Response.Write strName &"/"& strCredit &"<br>"

 

   rs.moveNext

   Loop

  

   rs.close()

   set rs = Nothing

 

   DB.Close

   Set DB=Nothing

%>

</body>

</html>



Posted by 랩퍼우
윈도우 (Windows)2016. 3. 21. 12:00

"다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다" 오류가 발생하였다.

이유를 알아 보자


1. 내 컴퓨터에서 우클릭하여 컴퓨터 관리를 실행하고 이벤트를 본다.

이벤트를 들여다 보니 다음과 같은 메시지가 있다

"World Wide Web Publishing 서비스(WWW 서비스)에서 2 사이트에 대한 URL 접두사 https://*:443/을(를) 등록하지 못했습니다. 사이트를 사용할 수 없습니다. 데이터 필드에 오류 번호가 있습니다."


2. 구글링을 하여 이유를 알아 낸다.

일반적으로 한 경우 이 문제가 발생합니다 하나 이상에 해당하면:

  • 다른 프로세스에서 포트 80 이나 포트 443 IIS가 실행되는 컴퓨터에서 사용하고 있습니다. 기본적으로 IIS는 SSL (Secure Sockets Layer) 에 대한 기본 TCP 포트로 포트 80 및 443 포트를 사용합니다.
  • IIS가 실행되는 컴퓨터에서 ListenOnlyList 레지스트리 하위 키는 올바르게 구성되지 않았습니다. 
3. 위와 같은 구글신의 계시를 받는다.
그러면 이제 네트워크 포트 상태를 확인하고 
Netstats -na 라고 쳐 보자
443을 누가 쓰고 있다.

4. 할수 없다. SSL을 따른 포트로 변경한다. 
IIS바인딩에서 441로 변경하니 오류 해결 



Posted by 랩퍼우
윈도우 (Windows)2016. 3. 21. 10:43

실행창 -> gpedit.msc

로컬그룹정책 편집기 -> 컴퓨터 구성 -> 관리템플릿 -> windows 구성요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결 -> 연결개수 제한 편집

연결개수 제한에서 '사용' 선택후 옵션에서 TS 최대허용 연결 에 999999(최대) 지정


로컬그룹정책 편집기 -> 컴퓨터 구성 -> 관리템플릿 -> windows 구성요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결 -> 원격 데스크톱 서비스 사용자를 하나의 원격 데스크톱 서비스 세션으로 제한

편집창에서 구성되지 않음에서 사용안함으로 체크 및 적용


cmd -> gpupdate /force 

정책 업데이트


Posted by 랩퍼우
윈도우 (Windows)2016. 1. 26. 17:09

Windows Server 2012 R2 Teaming 구성에 대해 알아 보겠습니다.

 

인터넷 검색을 하다가 보니 시게이트에서 설명을 잘 해놓았네요.

 

Windows Server 2012 R2 Teaming 구성 하기 전에 알고 있으면 유용한 정보 입니다.

 

 

출처 : 시게이트 (http://www.seagate.com/kr/ko/manuals/network-storage/business-storage-wss-2012/nic-teaming/)

 

NIC 팀

 

두 개 이상의 이더넷 포트가 있는 서버는 NIC팀을 사용 할 수 있습니다.

여러 네트워크에서 서버를 사용하기 위해 특별한 구성은 필요 없습니다.

각 네트워크 어댑터를 네트워크를 위한 각 스위치에 연결하면 서버가 스스로 네트워크 트래픽을 적절히 구성합니다.

 

NIC 팀 구성

3가지 팀 구성 모드가 있습니다.

정적 팀 구성, 독립 전환, LACP 의 팀 구성 모드로 설정 가능합니다.

 

- 정적 팀 구성 : 스위치가 팀을 지원하지만 수동으로 구성해야 하는 경우 사용 됩니다.

- 독립 전환 : 스위치가 NIC 팀을 지우너하지 않는 경우 사용 됩니다.

- LACP : LACP(LAN 집계 제어 프로토콜)을 지원하는 스위치에 사용 됩니다. 스위치에는 독립적인 구성이 필요 없습니다.

 

모든 NIC 팀에서 아웃바운드 및 인바운드 트래픽은 팀의 여러 링크로 분산됩니다.
다음과 같은 방법으로 여러 포트에 걸쳐 트래픽을 분산할 수 있습니다.

 

- Hyper-V 포트 : 서버가 Hyper-V 가상 컴퓨터를 사용하는 경우 각 가상 컴퓨터는 별도의 MAC 주소를 가지며 하나의 서버 포트를 독점적으로 사용합니다. 서버는 가상 컴퓨터에 대한 모든 아웃바운드 트래픽을 해당 포트에 배치하고, 스위치는 해당 가상 컴퓨터의 모든 인바운드 트래픽을 동일한 포트로 유도합니다.

 

- 주소 해싱 : 서버는 각 패킷에 지정된 주소를 기반으로 해시를 생성하고 해시를 기반으로 아웃바운드 포트를 할당합니다. 이 방법은 아웃바운드 트래픽의 부하를 고르게 분산합니다. 스위치 독립 팀에서는 인바운드 트래픽 분산을 사용할 수 없습니다. 모든 인바운드 트래픽은 하나의 포트로 들어옵니다.
정적 팀의 경우 스위치의 구성에 따라 인바운드 트래픽에 사용될 포트가 결정됩니다.

 

 

시게이트에서 NIC 팀 구성하는 순서 대로 직접 해보겠습니다.

제가 개인적으로 사용하는 Windows Server 2012 R2 Standard 버전 입니다.

 

 

NIC 팀 구성
NIC 팀을 구성하려면 이더넷 포트가 스위치에 연결되어야 합니다.

 

1. 서버 관리자에서 왼쪽 열의 로컬 서버를 선택합니다.
    속성 표가 나타납니다.

 

 

 

2. NIC 팀을 클릭합니다.

 


 

 

3. NIC 팀 창에서 새 팀 작업 메뉴를 선택합니다.

 


 

 


 

 

4. 팀 이름과 사용할 네트워크 어댑터를 지정합니다.

5. 네트워크 어댑터 목록 아래에서 추가 속성을 클릭합니다.
6. 팀 모드, 부하 분산 모드 및 두 어댑터가 모두 활성인지 여부를 지정합니다.
7. 확인을 클릭합니다. 


팀 표에 새 팀이 나타납니다. 팀이 확인되고 활성 상태가 될 때까지 몇 초 정도 소요될 수 있습니다. 

 


 

▲ 제 서버 같은 경우 이더넷 포트 하나는 네트워크에 연결 되어 있지 않아서 위와 같은 화면 입니다.



 

▲ 상세하게 보면 연결 끊김 / 오류 미디어 연결 끊김 으로 표시 되네요



 

▲ 제어판 - 모든 제어판 항목 - 네트워크 및 공유 센터 - 어댑터 설정 변경 - 네트워크 연결 창에서 보시면

   Teaming이 제대로 연결 되었습니다. 고정 IP를 사용하시는 분들은 고정 IP를 입력 해주시면 됩니다. 

 

 

간단하게 Windows Server 2012 R2 Teaming(NIC 팀) 구성 에 대해 알아 보았습니다.

 

Posted by 랩퍼우
윈도우 (Windows)2016. 1. 26. 17:03

Windows Server 2012 R2 원격 데스크톱 다중 연결 허용 하는 방법은 다음과 같이 설정 해주면 된다.



1. 로컬 그룹 정책 편집기를 실행 시켜야 한다. 실행창에서 "gpedit.msc" 입력 후 실행




2. 로컬 그룹 정책 편집기에서 다음과 같은 경로로 이동한다.

   로컬 컴퓨터 정책 -> 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 ->  연결 -> 연결 개수 제한







3. 연결 개수 제한에서 다음과 같은 설정을 한다.


 



연결 개수 제한을 "사용"으로 변경하고 옵션에서 TS 최대 허용 연결을 "999999"으로 변경하면 된다.

연결을 제한하지 않으려면 999999를 입력하십시오 라는 설명도 있다. 특정 허용 연결 갯수를 원하는 수 만큼 입력 해도 상관없다.



적용 후 확인을 누르면 설정 끝이다.



간단하게 Windows Server 2012 R2 원격 데스크톱 다중 연결 허용을 설정 하였다.



 

Posted by 랩퍼우
윈도우 (Windows)2016. 1. 8. 18:20

최근 고화질 영상이 대중화됨에 따라 고용량 하드디스크를 찾는 분들도 많아졌는데요.

특히 3테라 이상의 HDD(하드디스크) 용량을 100% 인식하기 위해선 별도의 방식이 필요합니다.

그럼 3테라 하드 인식 설정 방법에 대해 알아보도록 하겠습니다. 


우선 하드 인식을 위해 HDD를 컴퓨터 본체에 연결을 합니다.

그리고 시작버튼 우클릭 -> 디스크 관리로 들어갑니다.




 


초기의 상태일 경우 디스크 관리에 들어가면 자동으로 아래와 같은 창이 뜨는데요.

'선택한 디스크에 사용할 파티션 형식'에서 'GPT(GUID 파티션 테이블)'을 선택하고 확인을 누릅니다.



 


혹시 자동으로 위와 같은 창이 뜨지 않는다면,

디스크 관리에서 아래와 같이 해당 디스크를 우클릭하면 'GDP 디스크로 변환'이 존재합니다.


 


이렇게 설정을 해주면 3테라 4테라 하드 인식은 물론 그 이상의 대용량 HDD도 모든 용량이 인식됩니다.

3TB 하드 인식 어렵지 않게 해결해보세요.


참고)

MBR 포맷 방식과 GPT 포맷 방식의 주요 차이점


MBR 방식 : 윈도우 부팅 가능 / 4개의 파티션 지원 / 파티션당 최대 크기 2TB / OS 모든 버전 지원

GPT 방식 : 윈도우 부팅을 위해선 EFI 시스템 필요 / 128개의 파티션 지원 /

             파티션당 최대 크기 약 1900만TB / XP pro 64비트부터 지원


보통 윈도우 부팅용으론 MBR 방식을, 대용량 데이터 저장용으론 최신 기술인 GPT 방식을 많이 쓰는 편입니다.



Posted by 랩퍼우
윈도우 (Windows)2015. 12. 25. 00:13

http://cafe.naver.com/window7/205027

윈도우 7에서 원 격데스크탑을 멀티 유저 로그인 가능하게 하는 파일입니다.
Service Pack 1 (7601) 으로 패치된후 과거 파일이 동작하지 않더군요..
이제서야 패치 했다는... ㅡ,.ㅡ;
과거 버젼(7600)은..  요기 에서 다운받아 사용하시고요..
압축을 푸시고..


1.

install.cmd 파일을 관리자 권한으로 실행 하시고.. (반드시 오른쪽 마우스를 클릭하셔서 관리자 권한으로 실행.)


2.

시작+R -> gpedit.msc

-> 컴퓨터 구성 -> 관리템플릿 -> Windows 구성 -> 터미널 서비스 -> 원격 데스크톱 세션 호스트 -> 연결

에서 "연결 개수 제한" 클릭하셔서 사용으로 하시고, "TS 최대 허용 연결" 를 필요한 수 만큼 지정.


 

3.

방화벽에서 원격 데스트탑을 허용.
ps. 추가 사용자를 만드실 때 반드시 관리자로 생성하세요.. 표준사용자는 로그인 권한이 없습니다.
리붓 하시면 끝입니다.


현재 최신 버젼인
build 6.1 7601 에서 정상 동작하며,
32비트 64비트 모두 가능합니다.
termsrv.dll 을 7601 에서 가능하도록 수정한 겁니다.
다음 버젼이 나오면 제가 필요하니 또 할 것 같습니다...^^
그럼... 잘 사용하시기 바랍니다.



Posted by 랩퍼우