서버 설정 · 6 min read · Oct 28, 2025

NAT 게이트웨이, Iptables, 포트 포워딩, DNS 및 DHCP 설정 - Ubuntu 8.10 서버

NAT 게이트웨이, Iptables, 포트 포워딩, DNS 및 DHCP 설정 - Ubuntu 8.10 서버

그래서 당신은 또 다른 비싼 라우터를 살 여유가 없고 스스로 해보길 원합니다. 당신은 올바른 튜토리얼을 찾았습니다! 이 튜토리얼은 NAT, 포트 포워딩, DNS 서버 및 DHCP 서버가 있는 Ubuntu 8.10 라우터를 설정하는 방법을 보여줄 것입니다.

왜 Ubuntu냐고 묻나요?

Ubuntu는 훌륭한 운영 체제일 뿐만 아니라 매우 유연하고 강력하여 빠르게 설정할 수 있습니다! 참고: 각 단계 후에 컴퓨터를 재시작하세요. 이렇게 하면 모든 것이 올바르게 작동하는지 확인할 수 있습니다.

우리가 필요로 할 기본적인 것들은…

DHCP – dhcp3-server
DNS – bind9
iptables – ubuntu에 포함됨

먼저 할 일

네트워크 카드 2개가 필요합니다. 첫 번째 네트워크 카드를 가져와서 WAN 연결을 연결하세요. 이 네트워크 카드가 무엇인지 알아야 합니다, eth0, eth1 등… 만약 모르겠다면, 시행착오를 통해 알아보세요.

WAN 카드가 eth0이라고 가정해 보겠습니다 ( 만약 eth1이라면, 모든 것을 동일하게 진행하되 설정을 조정하세요). /etc/network/interfaces 파일을 찾아야 합니다. 다음과 같이 VI로 파일을 엽니다.

sudo vi /etc/network/interfaces

파일에서 다음과 같은 내용을 볼 수 있어야 합니다 ( 아직 설정이 없다면):

# 이 파일은 시스템에서 사용할 수 있는 네트워크 인터페이스와 이를 활성화하는 방법을 설명합니다.
# 더 많은 정보는 interfaces(5)를 참조하세요.
# 루프백 네트워크 인터페이스
auto lo
iface lo inet loopback

이 내용을 파일에 추가할 것입니다. 참고로, VI 사용법을 모른다면 nano를 사용하거나 VI를 배우세요.

auto eth0
iface eth0 inet dhcp

auto eth0 코드는 부팅 시 eth0을 시작하도록 지시합니다. 이는 다음과 유사합니다.

sudo ifconfig eth0 up

iface eth0 inet dhcp 코드는 eth0 인터페이스가 DHCP 서버를 찾아 정보를 가져오도록 지시합니다. 이는 케이블 모뎀에 연결된 경우 중요합니다. ISP로부터 공인 IP를 받아야 하기 때문입니다.

다음 단계는 네트워크 카드 eth1을 구성하는 것입니다. 이것이 “LAN” 카드가 될 것입니다.

기억하신다면, 우리의 /etc/network/interfaces 구성은 다음과 같았습니다.

# 이 파일은 시스템에서 사용할 수 있는 네트워크 인터페이스와 이를 활성화하는 방법을 설명합니다.
# 더 많은 정보는 interfaces(5)를 참조하세요.
# 루프백 네트워크 인터페이스
auto lo
iface lo inet loopback
# 기본 네트워크 인터페이스
auto eth0
iface eth0 inet dhcp

다시 interfaces 파일을 VI로 열고 몇 줄을 더 추가하겠습니다:

sudo vi /etc/network/interfaces

파일의 맨 아래에 다음 줄을 추가하세요.

auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

이것은 LAN 카드에 대해 서버의 정적 IP 주소를 제공합니다.

이제 파일은 다음과 같아야 합니다.

# 이 파일은 시스템에서 사용할 수 있는 네트워크 인터페이스와 이를 활성화하는 방법을 설명합니다.
# 더 많은 정보는 interfaces(5)를 참조하세요.
# 루프백 네트워크 인터페이스
auto lo
iface lo inet loopback
# 기본 네트워크 인터페이스
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

이제 잊기 전에 /etc/hosts 파일을 수정합시다.

sudo vi /etc/hosts

파일을 내 것처럼 만들어주세요. 하지만 서버를 userve 또는 myserver라고 부른다면 변경할 수 있습니다.

또한 asus.local 도메인 이름에 유의하세요. mydomain.local과 같은 자신의 도메인을 사용하는 것이 좋지만, 학습 목적으로 내가 가진 것을 사용할 수 있습니다.

.local을 사용하는 이유는 기억하기 쉽고 공개되지 않기 때문에 어떤 것과도 간섭하지 않기 때문입니다.

127.0.0.1       localhost server.localhost
172.17.207.121  server.asus.local server asus.local

인터페이스 구성이 완료되었으니, 이제 DHCP 서버를 설치하고 설정하겠습니다. DHCP 서버를 설치하려면 다음 명령을 실행하세요.

sudo apt-get install dhcp3-server

이제 dhcpd.conf 파일을 수정합시다. 다음 명령을 실행하여 시작하세요.

sudo vi /etc/dhcp3/dhcpd.conf

이 파일에 내용이 있다면, 제거하세요.

다음 내용을 파일에 복사하여 붙여넣고, 저장 후 종료하세요.

ddns-update-style none;
option domain-name "whatever.local"; //이것을 원하는 것으로 변경하세요.local, 예: mydomain.local
option domain-name-servers 172.17.207.121, 24.92.226.41; //두 번째 DNS 서버를 ISP의 로컬 DNS 서버로 변경할 수 있습니다.
option routers 172.17.207.121;
default-lease-time 42300;
max-lease-time 84600;
authoritative;
log-facility local7;
subnet 172.17.0.0 netmask 255.255.255.0 {
        range 172.17.207.1 172.17.207.100; //범위를 확장하려면 .100을 .254 또는 그와 비슷한 것으로 변경하세요.
}

이제 다음 명령을 실행하세요.

sudo /etc/init.d/dhcp3-server start

이렇게 하면 DHCP 서버가 시작되며, 이 부분은 완료되었습니다.

다음은… DNS

Bind는 우리가 사용할 DNS 패키지입니다. 이를 설치하려면 다음과 같이 간단히 실행합니다.

sudo apt-get install bind9

이렇게 하면 bind 서버가 다운로드되고 설치됩니다.

다음 명령을 실행하여 시작하세요.

vi /etc/bind/named.conf

그런 다음 파일의 모든 내용을 제거하고 내 주석을 찾으세요. 주석은 보통 //로 표시됩니다.

// 이것은 BIND DNS 서버 named의 기본 구성 파일입니다. // 사용자 정의하기 전에 /usr/share/doc/bind9/README.Debian.gz를 읽어보세요. // 영역을 추가하는 경우 /etc/bind/named.conf.local에서 그렇게 하세요. include "/etc/bind/named.conf.options"; // 루트 서버에 대한 지식을 서버에 주입합니다. zone "." { type hint; file "/etc/bind/db.root"; }; // localhost 포워드 및 리버스 존에 대해 권위가 있으며, RFC 1912에 따라 브로드캐스트 존에 대해 권위가 있습니다. zone "asus.local" { //asus.local을 mydomain.local과 같은 도메인 이름으로 변경하세요. type master; file "/etc/bind/zones/asus.local.db"; //이 파일 또는 폴더는 존재하지 않으므로 만들어야 합니다. }; zone "207.17.172.in-addr.arpa" { type master; file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";//이 파일은 존재하지 않으므로 만들어야 합니다. }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";

asus.local.db 및 rev.207.17.172.in-addr.arpa 두 파일을 만들기 전에 다른 파일을 수정해야 합니다. 그래서

sudo vi /etc/bind/named.conf.options

파일의 모든 내용을 제거하고 다음을 사용하세요…

options {
        directory "/var/cache/bind";
        // 이름 서버와 통신하려면 방화벽을 수정해야 할 수 있습니다.
        // ISP가 안정적인 이름 서버에 대해 하나 이상의 IP 주소를 제공한 경우,
        // 이를 포워더로 사용하려고 할 것입니다.
        // 다음 블록의 주석을 제거하고 주소를 삽입하세요.
         forwarders {
          24.92.226.41; //매우 중요, 이를 로컬 ISP의 DNS 서버로 변경하세요.
      24.92.224.40;
         };
        auth-nxdomain no;    # RFC1035를 준수합니다.
        listen-on-v6 { any; };
};

주석에 주의하세요. 이는 로컬 ISP의 DNS로 포워더 주소를 변경하라고 알려줍니다.

다음으로, bind 디렉토리로 이동하세요:

cd /etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db

(또는 mydomain.local.db와 같은 도메인 이름을 사용하세요.)

asus.local.db 파일 또는 mydomain.local.db 파일(당신이 부른 것)에 들어가면, 다음 내용을 복사하여 붙여넣고 도메인 이름에 적절한 변경을 하세요.

$ORIGIN .
$TTL 4000 ;
asus.local.     IN SOA  server.asus.local. admin.asus.local. (
2007031001      ; serial
28800           ; refresh
3600            ; retry
604800          ; expire
38400           ; min
)
                NS      server.asus.local.
$ORIGIN asus.local.
                IN      A       172.17.207.121
www             IN      A       172.17.207.121 //예시
server          IN      A       172.17.207.121 //예시
macpro          IN      A       172.17.207.4   //예시

macpro에 대해 nslookup을 수행하면 172.17.207.4가 응답으로 돌아옵니다. 따라서 도메인 이름과 IP를 설정에 맞게 변경하세요.

다음으로, 아직 존재하지 않는 rev.207.17.172.in-addr.arpa 파일을 vi로 열겠습니다. 하지만 저장하면 생성될 것입니다. zones 폴더에 여전히 있다고 가정하면:

vi rev.207.17.172.in-addr.arpa

여기에서 내가 제공한 내용을 복사하여 붙여넣고 적절한 변경을 하세요.

$ORIGIN .
$TTL 28800      ; 8시간
207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. (
                                2008110601 ; serial
                                28800      ; refresh (8시간)
                                7200       ; retry (2시간)
                                604800     ; expire (1주)
                                86400      ; minimum (1일)
                                )
                        NS      server.asus.local.
$ORIGIN 207.17.172.IN-ADDR.ARPA.
4                     PTR    macpro.asus.local.

이제 172.17.207.4에 대해 역 조회를 수행하면 macpro.asus.local이 반환됩니다.

이제 named를 시작하는 명령을 실행하세요:

sudo /etc/init.d/named start

시작되지 않으면 /var/logs에서 로그를 확인하세요.

마지막으로, IPTABLES

첫 번째로, /etc/ 폴더의 sysctl.conf를 수정해야 합니다. 그래서:

sudo vi /etc/sysctl.conf

28번째 줄의 주석을 제거하세요. 즉, 앞의 #를 제거하는 것입니다. 그 줄은 net.ipv4.ip_forward=1이어야 합니다.

다음으로, rc.local로 이동합시다:

sudo vi /etc/rc.local

파일의 맨 아래에 다음 두 줄을 추가하세요:

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

이렇게 하면 iptables를 사용하여 게이트웨이를 설정합니다. 이 기본 설정보다 더 안전하게 만들기 위해 iptables를 사용할 수 있습니다.

포트를 포워딩하려면 rc.local 파일의 끝에 다음과 같은 내용을 추가할 수 있습니다.

/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389

위의 긴 줄은 포트 3389에서 들어오는 모든 트래픽을 IP 172.17.207.4로 포워딩하므로, 외부 네트워크에서 내 Windows 박스에 원격 데스크톱으로 접속할 수 있습니다.

원하는 모든 포트에 대해 이 작업을 수행할 수 있습니다.

재시작하세요!

또한 문제를 보고하면 이 튜토리얼을 업데이트하여 수정하겠습니다. 감사합니다, Jeremy user gibbsj.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.