안녕하세요?
오늘의 포스팅 주제는 bind tool (DNS관리툴) 입니다.
이번 포스팅의 계기는 이러합니다.
편리함에 익어 둔해진 머리를 위해 과감히 DNSEver 를 버렸습니다
그런데 얼마전 NAS수리를 위해 렌선을 장기간 빼놨더니.. IP주소가 갱신되었고
접속을 할 수 없는 난감한 상황이 찾아와 DDNS의 소중함을 느꼈기 때문에 삽질을 시작했습니다.
물론 C, PHP 는 하나도 안쓰고 만들었습니다.
우선 환경은.... Bind, SSH가 설치되어 있는 Linux서버와 ssh 접속하능한 Linux 클라이언트.
SSH가 22번이여야지만 공개키 부분에서 문제가 생기지 않습니다.
자 서두가 길어지기 전에 후딱 본론으로 가겠습니다.
bind서버의 ip : 10.1.0.1
클라이언트 ip : 10.1.0.2
우선 DDNS 업데이트를 받을 클라이언트에 Telnet이나 SSH로 접속 후
계정을 하나 만들어 준 후 로그인을 하여 줍니다.
Bind가 설치되어 있는 서버에도 같은 이름이나 다른사람이 모를만한 이름으로
계정을 만든 후 비빌번호를 설정합니다.
로그인을 했다면 쉘에서 ssh-keygen -t dsa 입력후 엔터 세번
ddns@HJTech-NAS ~ $ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/ddns/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ddns/.ssh/id_dsa.
Your public key has been saved in /home/ddns/.ssh/id_dsa.pub.
The key fingerprint is:
****************** 생 략 ****************** ddns@HJTech-NAS
The key's randomart image is:
+--[ DSA 1024]----+
****** 생 략 ******
요롷게 됩니다. 그럼 ssh 폴더에 id_dsa 와 id_dsa.pub 가 생성이 되었을 것입니다.
이중에 id_dsa.pub 파일을 authorized_keys2 로 복사해줍니다.
cp id_dsa.pud authorized_keys2
이제 복사한 authorized_keys2(공개키)를 scp로 서버에 복사해줍니다.
scp authorized_keys2 ddns@10.1.0.1:
이때 주의할 점은 반드시 ip나 도메인 주소 뒤에 : 콜론 기호가 들어간다는 점!
The authenticity of host '10.1.0.1 (10.1.0.1)' can't be established.
RSA key fingerprint is ******************* 생 략 **********************
Are you sure you want to continue connecting (yes/no)? yes
ddns@10.1.0.1's password:
알려지지 않은 호스트에 접속할거라고 정말 접속할건지 물어보네요
당연히 yes입력후 엔터 그리고 비밀번호를 입력하여 scp 의 과정을 끝맞춰 줍니다.
이제 블로그 첨부파일에서 ddns-updater.sh를 받아 계정에 압축을 풀어주고 서버의 주소만 변경해 주면
클라이언트에서는 준비 끝~
그럼 서버 셋팅으로 넘어가겠습니다.
bind 서버에 ssh 나 telnet으로 로그인 한후
아까 전송받은 authorized_keys2 파일을 .ssh 에 넣어줍니다.
mkdir .ssh
mv authorized_keys2 .ssh/
보안문제도 있으니 퍼미션도 조정해줍니다.
chmod 700 .ssh
chmod 644 .ssh/authorized_keys2
이제 블로그 첨부파일에 있던 server.tar.gz 를 받아 앞축을 풀어줍니다.
vi 나 nano등의 편집기로 checkddns.sh 와 ddns_update 파일만 편집해주면 됩니다,
그전에 bind 디렉토리가 어디에 위치해 있는지 부터 알고 있어야 합니다.
이 포스팅을 따라하고 있다는것은 이미 bind로 dns 서버를 구축해 논 상황이시겠죠?
우분투 12.04 LTS 기준으로 /etc/bind 네요...
9, 21, 31번째 줄 보면 /etc/bind 부분을 해당 서버의 zone 설정파일이 있는 곳으로 변경해 줍니다.
ddns_update 파일을 연후 경로와 도메인 호스트 이름을 지정해 준다.
자 이제부터 조금 집중모드에요~
/etc/passwd 파일의 ddns 혹은 ddns을 위해 만든 계정을 찾아
ddns:x:0:0:DDNS Update Script Executer:/usr/local/sbin/ddns:/bin/bash
요론식으로 변경해줍니다! 포인트는 0:0
(권한을 루트로 바꿔주는것입다 bind의 데몬을 리스탓 해야 하기 때문이죠.)
자 다시 클라이언트로 돌아와서 크론텝에 아이피를 받아오는 파일을 추가해 주면 끝입니다.
예를 들어...
0 0 * * * ddns_update > /dev/null 2>&1 이런식으로 추가해 주면 됩니다.
의미는..... 0시 0분 매일 매월 매요일에 해당 명령어를 실행하는데, 결과값이나 화면에 출력되는게 있다면 /dev/null 으로 보낸다는 것입니다.
자 이정도면 왠만하면 따라하셨으리라 생각합니다~
그리고 마지막!
서버의 DDNS업데이트 할 계정의 루트에서 vi. profile 엔터
/usr/local/sbin/ddns/ddns_update
mesg n
exit
이상 Bind 구축 포스팅이였습니다~
'PC > Linux' 카테고리의 다른 글
데비안 호스트네임 변경하기 (0) | 2015.01.03 |
---|---|
APCUPS 소스로 설치하기 (0) | 2014.08.15 |
리눅스에서 쉘로 coolsms 사용하기 (0) | 2014.07.05 |
실사용예로 알아보는 간단한 스크립트 - (1) read echo case 등 (0) | 2014.07.05 |
DNSEver DDNS 로그 남기는 스크립트 (0) | 2014.06.22 |