2015년 11월 14일 토요일

IIS7 멀티 도메인 SSL 인증서 설정

기본 SSL 인증서는 포트를 중복해서 사용하지 못한다.

예를 들어 HTTPS 기본포트는 443인데, 한 개의 도메인에 대해 설정을 적용하였다면

다른 도메인에서 같은 443 포트로 등록 하려고 해도 이미 사용중인 포트라며 거부한다.

 

그에 반해 멀티도메인 SSL 인증서는 같은 포트를 사용할 수 있다.

다만 IIS 에서 직접 설정이 불가능 하며 명령어를 통하여 설정 할 수 있다.

 

SSL 설정은 웹사이트 설정(80)을  먼저 하고 나서 해야 한다.

현재 사이트 설정은 아래의 명령으로 확인 가능 하다.
cd %Windir%\system32\inetsrv
appcmd list site
appcmd set site /site.name:"www.naver.co.kr" /+bindings.[protocol='https',bindingInformation='*:443:www.naver.co.kr']
appcmd set site /site.name:"www.daum.co.kr" /+bindings.[protocol='https',bindingInformation='*:443:www.daum.co.kr']
appcmd set site /site.name:"www.daum.co.kr" /+bindings.[protocol='https',bindingInformation='*:443:']

 

 

appcmd set site /site.name:"<사이트이름>" /+bindings.[protocol='https',bindingInformation='*:443:<호스트 헤더 값>']
<사이트 이름> : IIS 에서 구성한 웹 사이트 이름
<호스트 헤더 값> : 해당 사이트에서 적용할 도메인명을 입력

 

조금 헷갈리는 게 <사이트 이름>과  <호스트 헤더>에 어떤 값을 넣어야 되나 인데, 간단하다.

사이트 이름은 기본 웹사이트 설정(80)할 때 넣은 <웹사이트이름> 이고,

호스트 헤더는 어떤 도메인을  https 로 만들지 적어 넣는다.

 

 

제일 마지막에 ...*:443:'] 이런식으로 뒤에 도메인을 주지 않으면 전체(*)로 설정 된다.

2015년 11월 11일 수요일

rsync 로 디렉토리 싱크시 /(슬러시) 주의.

*맨 뒤의 /(슬러시) 표시 주의

 
#같은 동작
rsync -arvze "ssh -p 22" --delete /test 192.168.0.2:/test
rsync -arvze "ssh -p 22" --delete /test 192.168.0.2:/test/
 
#같은 동작
rsync -arvze "ssh -p 22" --delete /test/ 192.168.0.2:/test
rsync -arvze "ssh -p 22" --delete /test/ 192.168.0.2:/test/
 

/를 붙이면 디렉토리를 생성하지 않는다
/를 붙이지 않으면 디렉토리를 생성한다.

결론. 원본 소스 부분만  /(슬러시) 표시만 주의 하면 됨. dest의 /(슬러시)는 영향을 주지 않음.




160930

man rysync 페이지에 해당 내용이 있었음.ㅡㅡ;

정리하면

  1. dest 는 슬래시 상관없음.(man 에도 안나오나, 테스트 결과가 그럼)

  2. src에 슬래시가 붙으면 src 디렉토리 미포함, 안 붙으면 포함

  3. dest 디렉토리가 없으면 1depth까지 생성.

디렉토리를 심볼릭 링크 걸 걸때 주의사항

*맨 뒤의  / 표시 주의
ln -s /usr/local/apache2/ /usr/local/apache/

ln: target `/usr/local/apache/' is not a directory: 그런 파일이나 디렉터리가 없습니다

잘못된 명령어.

 

ln -s /usr/local/apache2/ /usr/local/apache
ln -s /usr/local/apache2/ /usr/local/apache/
ln -s /usr/local/apache2 /usr/local/apache

처음에는 제대로 생성 되나, 다시 한번 실행하면 /usr/local/apache2/ 디렉토리 밑에 한개 더 생성된다.

 
결론. 전부 안됨. 그냥 주의 할 수 밖에 없음.

2015년 11월 10일 화요일

아파치 SSL 설정 파일

아파치 SSL 설정 파일
SSL 설정파일은 4가지가 있다.

1. 인증서파일
SSLCertificateFile

2. 키 파일
SSLCertificateKeyFile

3. Chain CA인증서 파일
SSLCertificateChainFile

4. ROOT CA인증서 파일
SSLCACertificateFile
이 중에서 기본적으로 1,2번인 인증서파일과 키파일만 있으면 설정 가능하다.

3,4번 같은 경우 사용자의 브라우저에서 인증기관이 제대로 등록되어 있지 않을 때,

체인인증서를 등록하면 해당 CA인증서가 브라우저에 등록된다.
3번과 4번 같은 경우 약간 헷갈렸는데, 찾아본 바로는 아래와 같다.

SSLCertificateChainFile 옵션은 version 2.4.8 부터 deprecated 되었다.

해서 이후 부터는 SSLCACertificateFile 를 사용하여 지정하면 된다고 한다..
https://httpd.apache.org/docs/2.4/mod/mod_ssl.html
https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=SO6252

http://stackoverflow.com/questions/1899983/difference-between-sslcacertificatefile-and-sslcertificatechainfile

ps. 다른 글을 찾았는데, 이분은 아파치 설정에 SSLCertificateChainFile는 2.x,  Apache 1.x는 SSLCACertificateFile 이라고 하신다.

짧은 영어실력이라, 번역이 틀렸을 수도 있음.;;
요즈음은 CA(Certificate Authority,인증기관)에 요청하면 알아서 인증서를 만들어 주기 때문에 csr(certificate

signing request, 인증서 발급 신청서) 파일이 딸려오는데, 이건 원래 인증기관에 요청하는 파일이기 때문에

없어도 된다.

인증기관 마다 보내주는 파일의 이름이 각각 달라서 적용할 때마다 애를 먹어서 여기에 예제를 적어 놓는다.
1. 인증서 파일
아파치 설정명 : SSLCertificateFile
예제)
도메인_cert.pem
cert.pem
server.crt
ssl.crt
2. 키 파일
아파치 설정명 : SSLCertificateKeyFile
예제)
도메인.key
key.pem
server.key
ssl.key
- key 들어가면 key 파일이기 때문에 구별이 쉽다.

3. Chain CA인증서 파일
아파치 설정명 : SSLCertificateChainFile,SSLCACertificateFile
예제)
Chain_RootCA_Bundle.crt
도메인_ChainBundle.cr
secureCA.pem
server-ca.crt
server.ca.pem
ChainCA.cer
Name-Chain.pem
intermediate.pem
ADDTRUST_EXTERNAL_CA_ROOT.crt
ca.pem



https://wiki.kldp.org/HOWTO/html/SSL-RedHat-HOWTO/ssl-redhat-howto-4.html
https://www.ucert.co.kr/tech/sslinstall/apache_standard.html

2015년 10월 8일 목요일

qmail SMTP 접속이 느려지는 현상

메일 보내기가 제대로 되지 않는 현상이 발생.
exec /usr/local/bin/softlimit -m 100000000 \
/usr/local/bin/tcpserver -v -H -R -l0 -c200 -x /etc/tcp.smtp.cdb -u $Q_UID -g $Q_GID 0 25 \
/usr/local/bin/rblsmtpd -t 30 -b -r spamlist.or.kr \
/var/qmail/bin/qmail-smtpd $HOSTNAME /home/vpopmail/bin/vchkpw /bin/true 2>&1

이런 식으로 KISA RBL을 사용하고 있었는데,  해당 spamlist.or.kr 이 문제가 있는 것 같음.

전화해 봤더니, 문제없다고만 하고...

일단 제거로 문제 해결.

2015년 8월 11일 화요일

리눅스 netstat 현재 접속 된 나라 확인.

#!/bin/bash

kisa_key="111111111111111111111";


IPLIST=`netstat -ant |grep "tcp" | awk '{print $5}' | cut -d: -f1 | sort | uniq`

for ip in $IPLIST
do
case "$ip" in
"0.0.0.0"|"127.0.0.1"|"8.8.8.8")
continue;;
*)
return_tmp_xml=`curl -s "http://whois.kisa.or.kr/openapi/ipascc.jsp?key=$kisa_key&query=$ip&answer=xml"`
countryCode=$(grep -oP "(?<=<countryCode>)[^<]+" <<< "$return_tmp_xml")
echo $ip : $countryCode
esac
done

예전에 위와 같이 KISA WHOIS 를 가지고 현재 접속된 나라를 찾았었는데,

geoiplookup 란 명령어가 있었다.

 

geoiplookup 명령어를 사용하려면 YUM 설치 하면 됨.

yum install GeoIP GeoIP-data

 

아래 처럼 하면 KISA KEY 받을 필요도 없고 좋다.
다만 몇몇개 IP는 'IP Address not found' 가 나온다.
#!/bin/bash



IPLIST=`netstat -ant |grep "tcp" | awk '{print $5}' | cut -d: -f1 | sort | uniq`

for ip in $IPLIST
do
case "$ip" in
"0.0.0.0"|"127.0.0.1"|"8.8.8.8")
continue;;
*)
geoiplookup $ip
esac
done

 

 

count 기능을 추가. 해당 아이피가 몇개가 접속해 있는 지 파악. (최종)
#!/bin/bash

#v2
#netstat -ant |grep "tcp" | awk '{print $5}' | cut -d: -f1 | grep -v "^$" | grep -v "0.0.0.0" | sort | uniq -c
netstat -ant |grep "tcp" | awk '{print $5}' | cut -d: -f1 | grep -v "^$" | grep -v "0.0.0.0" | grep -v "127.0.0.1" | sort | uniq -c > output.txt
while read -r line; do
count=$(echo $line | cut -f1 -d " ");
ip=$(echo $line | cut -f2 -d " ");
echo "count: $count, $ip : $(geoiplookup $ip)";
done < output.txt;
rm -rf output.txt

[root@mail foreignIp]# sh netstatIpCountryV2.sh 
count: 1, 108.168.211.204 : GeoIP Country Edition: IP Address not found
count: 1, 109.66.88.75 : GeoIP Country Edition: IP Address not found
count: 1, 112.173.207.169 : GeoIP Country Edition: IP Address not found
count: 3, 112.175.145.4 : GeoIP Country Edition: IP Address not found
count: 3, 112.221.136.253 : GeoIP Country Edition: IP Address not found
count: 1, 113.172.120.40 : GeoIP Country Edition: VN, Vietnam
...

 

참고

2015년 8월 7일 금요일

at least one shared directory is not a valid local path filezilla

filezilla server 설치 후 디렉토리 설정시

"at least one shared directory is not a valid local path" 라는 메시지가 나오며 적용되지 않는다.

 

서비스에서 Application Layer Gateway Service를 실행해주면 잘 된다.

 

출처