BIND + Email + Custom IP Cheatsheet

Kratki i jasni šalabahter za BIND DNS, reverse DNS, Postfix + telnet testiranje i trik za rad s dodatnom custom IP adresom koja nije u izvornoj mreži.

BIND forward

named, zona, A i MX zapisi, resolv.conf, testovi.

Idi na BIND
Reverse DNS

PTR zona, obrnuti IP, testovi s dig -x.

Idi na reverse DNS
Email

Postfix, port 25, telnet SMTP dijalog.

Idi na Email
Custom IP trik

Dodatna IP adresa + statička ruta kad profesor inzistira na drugoj mreži.

Idi na custom IP

1. BIND DNS – forward zona

Instalacija i pokretanje

dnf install bind bind-utils -y
systemctl enable --now named
systemctl status named

Minimalne postavke u /etc/named.conf

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { any; };
    allow-query { any; };
};
Zašto: listen-on određuje na kojim IP adresama named sluša. allow-query određuje tko smije slati DNS upite.

Modularna konfiguracija zona

mkdir -p /etc/named/zones
vim /etc/named/zones/lab.conf
zone "lab.local" IN {
    type master;
    file "/etc/named/zones/db.lab.local";
};

U /etc/named.conf dodaj include:

include "/etc/named/zones/lab.conf";

Forward zone file

vim /etc/named/zones/db.lab.local
$TTL 1D
@   IN SOA  serverb.lab.local. root.lab.local. (
        2026041301
        1H
        15M
        1W
        3H )

    IN NS   serverb.lab.local.
    IN MX 10 mail.lab.local.

serverb IN A 172.25.250.11
www     IN A 172.25.250.10
web     IN A 172.25.250.10
mail    IN A 172.25.250.11
Podsjetnik: 2026041301 je serial zone, ne verzija DNS servera. Ako mijenjaš zonu, serial mora biti veći.

Permisije i validacija

chown root:named /etc/named/zones/db.lab.local
chmod 640 /etc/named/zones/db.lab.local

named-checkconf
named-checkzone lab.local /etc/named/zones/db.lab.local
systemctl restart named

Klijent – resolv.conf (ispitna metoda)

chattr -i /etc/resolv.conf
vim /etc/resolv.conf
nameserver 172.25.250.11
search lab.local

Testovi

nslookup www.lab.local
nslookup web.lab.local
nslookup mail.lab.local
nslookup -type=mx lab.local

dig @172.25.250.11 www.lab.local

2. Reverse DNS – PTR zona

Dodavanje reverse zone u isti modularni file

vim /etc/named/zones/lab.conf
zone "lab.local" IN {
    type master;
    file "/etc/named/zones/db.lab.local";
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "/etc/named/zones/db.192.168.1";
};
Logika: za mrežu 192.168.1.x obrnuti dio zone je 1.168.192.in-addr.arpa.

Reverse zone file

vim /etc/named/zones/db.192.168.1
$TTL 1D
@   IN SOA  serverb.lab.local. root.lab.local. (
        2026041301
        1H
        15M
        1W
        3H )

    IN NS   serverb.lab.local.

115 IN PTR www.lab.local.
116 IN PTR serverb.lab.local.

Permisije, validacija i test

chown root:named /etc/named/zones/db.192.168.1
chmod 640 /etc/named/zones/db.192.168.1

named-checkconf
named-checkzone 1.168.192.in-addr.arpa /etc/named/zones/db.192.168.1
systemctl restart named

dig -x 192.168.1.115
nslookup 192.168.1.115

3. Email – Postfix + telnet

Instalacija i pokretanje

dnf install postfix -y
systemctl enable --now postfix
systemctl status postfix

Konfiguracija /etc/postfix/main.cf

vim /etc/postfix/main.cf
myhostname = mail.lab.local
mydomain = lab.local
myorigin = $mydomain

inet_interfaces = all
inet_protocols = ipv4

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks = 127.0.0.0/8, 172.25.250.0/24
Zašto: mydestination definira koje domene server prihvaća kao lokalne. mynetworks definira tko smije slati preko servera.

Restart i provjera porta 25

systemctl restart postfix
ss -tuln | grep :25

Telnet test

telnet mail.lab.local 25

Ispravan početak SMTP sesije izgleda ovako:

220 mail.lab.local ESMTP Postfix

Ručno slanje emaila

HELO lab.local
MAIL FROM: test@lab.local
RCPT TO: student@lab.local
DATA
Subject: test

Ovo je test poruka
.
QUIT
Važno: ako vidiš samo Trying ... i nema 220 ..., SMTP veza nije uspostavljena. Tada je problem IP/routing/port, a ne SMTP naredbe.

4. Custom IP trik – kad profesor inzistira na drugoj mreži

Problem

Primjer: server radi u mreži 172.25.250.0/24, ali profesor traži da koristiš IP 192.168.1.116.

Ključ: nije dovoljno samo napisati tu IP adresu u DNS zoni. Server tu IP adresu mora stvarno imati, a klijent mora imati rutu do te mreže.

Dodavanje dodatne IP adrese na server

ip addr add 192.168.1.116/24 dev eth0
ip a
Napomena: ovo je brzo rješenje za vježbu. Za ispit može trebati i trajna konfiguracija ako profesor inzistira da sve preživi reboot.

Statička ruta na klijentu – trik koji ti je proradio

ip route add 192.168.1.0/24 via 172.25.250.11
Zapamti: ovo rješava pristup prema dodatnoj, nenativnoj mreži preko servera koji ima obje adrese.

DNS zona kad profesor inzistira na custom IP-u

serverb IN A 192.168.1.116
mail    IN A 192.168.1.116

I u tom slučaju reverse zona može imati:

116 IN PTR serverb.lab.local.

Ključna logika

StvarŠto mora vrijediti
DNS A zapisIP može biti custom, ali mora postojati na serveru
BINDMora slušati na toj adresi ili na any
KlijentMora imati rutu do te mreže
Postfix/telnetPort 25 mora biti dohvatljiv preko te rute

5. Brzi debug – kad nešto ne radi

BIND debug

systemctl status named
ss -tulpn | grep :53
named-checkconf
named-checkzone lab.local /etc/named/zones/db.lab.local
nslookup www.lab.local 172.25.250.11
dig @localhost www.lab.local

Email debug

systemctl status postfix
ss -tulpn | grep :25
nslookup mail.lab.local
telnet mail.lab.local 25

Kako čitati tipične greške

GreškaZnačenje
connection timed out; no servers could be reachedklijent ne može doći do DNS servera
REFUSEDnamed radi, ali odbija upit; provjeri allow-query
NXDOMAINzapis ne postoji u zoni
Trying ... bez 220 ...telnet nije uspostavio SMTP vezu; problem je IP/routing/port
# BIND
ip a
dnf install bind bind-utils -y
systemctl enable --now named
vim /etc/named.conf
mkdir -p /etc/named/zones
vim /etc/named/zones/lab.conf
vim /etc/named/zones/db.lab.local
named-checkconf
named-checkzone lab.local /etc/named/zones/db.lab.local
systemctl restart named
chattr -i /etc/resolv.conf
vim /etc/resolv.conf
nslookup www.lab.local

# Reverse DNS
vim /etc/named/zones/db.192.168.1
named-checkzone 1.168.192.in-addr.arpa /etc/named/zones/db.192.168.1
systemctl restart named
dig -x 192.168.1.115

# Email
dnf install postfix -y
systemctl enable --now postfix
vim /etc/postfix/main.cf
systemctl restart postfix
ss -tuln | grep :25
telnet mail.lab.local 25

# Custom IP trik
ip addr add 192.168.1.116/24 dev eth0
ip route add 192.168.1.0/24 via 172.25.250.11