'리눅스서버'에 해당되는 글 2건

  1. 2015.03.07 [무작정 따라하기] Gentoo Linux PPTP 서버 셋팅하기
  2. 2014.07.05 Bind DDNS 구축하기








안녕하세요~

 

현종이닷 입니다~^^

 

요즘 HP MicroServer N40L애 젠투 설치하는데 푹 빠져 있습니다.^^

 

삽질 후의 '아 해냈다' 라는 쾌감에 취해 더더욱 열심히 삽질을 하는거 같습니다.

 

오늘은 '무작정 따라하기' 편으로 준비했습니다... ^^'

 

아! '공유기에 VPN이 있는데 왜 서버에 VPN을 설정 하냐'고 의문을 가지신다면

 

'속도가 어~마 하게 잘 나옵니다' 라고 답 해드리겠습니다.

 

자 아무튼 설명하기에도 애매한 것들이 있고 해서요;; 그냥 무따기로 준비했습니다.^^

 

우선 시스템커널을 새로 빌드해야 합니다....

 

그러기 위해 cd /usr/src/linux 로 이동한 후

 

아래 첨푸파일의 .config 를 덮어쓰거나

 

아래 해당하는 부분을 선택해 주세요

 

 

 

 

 

 

(추가 사항입니다... NAT를 위해서 )

Network packet filtering framework (Netfilter)  ---> IP: Netfilter Configuration  --->

 

  │ │            {M} IPv4 packet logging                                                            │ │
  │ │            {M} IPv4 packet rejection                                                          │ │
  │ │            -M- IPv4 NAT                                                                       │ │
  │ │            -M-   IPv4 masquerade support                                                      │ │
  │ │            <M> IP tables support (required for filtering/masq/NAT)                            │ │
  │ │            <M>   "ah" match support                                                           │ │
  │ │            <M>   "ecn" match support                                                          │ │
  │ │            <M>   "rpfilter" reverse path filter match support                                 │ │
  │ │            <M>   "ttl" match support                                                          │ │
  │ │            <M>   Packet filtering                                                             │ │
  │ │            <M>     REJECT target support                                                      │ │
  │ │            < >   SYNPROXY target support                                                      │ │
  │ │            <M>   iptables NAT support                                                         │ │
  │ │            <M>     MASQUERADE target support                                                  │ │
  │ │            <M>     NETMAP target support                                                      │ │
  │ │            <M>     REDIRECT target support  

 

이 부분도 추가 선택해주셔야 합니다..^^;;

 

이게 선택해야 하는 부분이고요 x86 기준입니다... x64 시스템 이용자 분들은 해당 부분도 체크해 주세요~

 

x64애서 만들어논 .config 입니다....

config
다운로드

 

x86에서는 아직 작업해 논게 없어서 죄송합니다^^;;; 사실 x86을 쓸 일이 거의 없어서요;;;;

(데비안에서는 그냥 사용하실 수 있는거 같더라구요;;;;;; 커널 리빌딩 필요 없이요;;)

 

이제 pptpd를 설치해야 갰죠?

 

emerge --sync

emerge ppp pptpd

 

설치를 완료 하였다면 vi 나 nano 등의 편집기로 /etc/pptp.conf 파일을 열어주신 후

 

원래 내용은 모두 지운 후 아래 내용만 붙혀 넣어주세요

 

 

ppp /usr/sbin/pppd

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.130.240
remoteip 192.168.130.241-250

 

여기서 중요한 거는 localip 와 remoteip 입니다.

딱 봐도 눈치가 오시나요? 그렇습니다.

VPN 서버가 사용할 IP와 클라이언트가 사용할 IP대역입니다.

 

localip = VPN서버가 사용할 IP

remoteip = 클라이언트 IP대역 

 

입니다. NAS 상단에 있는 공유기와 같은 아이피 대역을 쓰셔도 되구요, 다른 대역을 쓰셔도 됩니다.

아참 localip 와 remoteip 는 같은 대역이여야 합니다^^

 

저장 후 이번엔 /etc/ppp/options.pptpd 파일을 에디터로 여신 후

나머지 내용은 다 지워주신 후 아래의 내용을 입력해 주세요

 

name pptpd

 

refuse-pap
refuse-chap
refuse-mschap

require-mschap-v2

#require-mppe-128

 

ms-dns 192.168.130.254
ms-dns 168.126.63.1

 

nopcomp
noaccomp

 

nobsdcomp

 

novj
novjccomp

 

nologfd

 

proxyarp
debug
lock

 

 

자 여기서 눈 여겨 봐아 할 것은

#require-mppe-128

ms-dns 192.168.130.254
ms-dns 168.126.63.1  요 세줄입니다. 

 

ms-dns 는 네임서버 지정 부분 이고요,  #require-mppe-128 는 PPP 암호화 (MPPE) 부분 입니다.

 

#require-mppe-128 = PPP 암호화 (MPPE) 없음

require-mppe-128 = MPPE 암호화 (MPPE) 적용  이런식으로 주석처리 여부에 따라 암호화 적용 여부가 달라집니다.

 

자 역시 저장 하고 이번에는 /etc/ppp/chap-secrets 파일을 열어 사용자 ID와 비밀번호를 셋팅하도록 하겠습니다.

 

파일을 열어보면

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses 이러한 형식으로 작성하게 되어 있습니다.

 

위 형식에 맞춰 사용자이름 서버 비밀번호 아이피주소를 입력해 주면 되는데요....

아래 형식만 유지해 주면 됩니다.

아이디 * 비밀번호 *

 

서버와 IP 부분에는 와이드카드(*) 처리해 주시면 되고요, 각 필드 사이는 텝이나 스페이스로 구분해 주시고

저장해 주시면됩니다.

 

이제 95% 이상 진행하였습니다.^^ 제가 말솜씨가 없어서;;; 좀 지루하실텐데 잘 따라 오셨습니다.

 

이제 마지막 방화벽 설정입니다.

 

우선 ifconfig 로 자신이 사용하고 있는 인터페이스 이름을 확인해 주세요 eth0,eth1 enp5s0 enp6s0 등..

 


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

대소문자 구별 잘 하셔서 입력 하여야 하며, bond0 부분을 자신의 인터페이스 이름으로 변경하여야 합니다.

 

여기까지 잘 따라 오셨다면 /etc/init.d/iptables save 로 현제 방화벽을 저장해 주시면 됩니다.

 

이제 서비스를 지작하겠습니다.

/etc/init.d/iptables restart

/etc/init.d/pptpd restart

 

위에서 셋팅하신 아이디와 비밀번호로 접속하시면 됩니다.

 

아 부팅시 마다 시작되도록 하는 방법은요...

 

eselect rc add pptpd default 입니다~~

 

이야 다 쓰고 나니 5시가 넘어버렸내요....

 

마지막 인증샷 두게 날리고 저는 이만 물러나도록 하겠습니다~

 

새해 복 많이 받으시고 남은 연휴 즐겁게 보내세요~~

 

인증샷 입니다~

 

 

LTE 모바일에서 125.138 대역대를 볼 수는 없기에 인증샷으로 올렸습니다.^^

 

서버에서 ifconfig 입력하니 이렇게 ppp0 부터 시작해 접속한 순서대로 보여주네요 ㅎ

 

 

 

 

Posted by 현종이닷
,

Bind DDNS 구축하기

PC/Linux 2014. 7. 5. 07:57








안녕하세요?

 

오늘의 포스팅 주제는 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
다운로드

이제 블로그 첨부파일에서 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 를 받아 앞축을 풀어줍니다.

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

붙혀넣기 후 저장 
 
그러면 자동으로 SSH로 들어가 ip업데이트 한 후 변경내용 저장 까지~~

 이상 Bind 구축 포스팅이였습니다~ 

Posted by 현종이닷
,