Титла: Dns+mail server Публикувано от: Archer в Oct 11, 2006, 16:37 Здравейте, реших да си направя личен майл сървър, но имам следния проблем при конфигурирането му: На една машина която е с реалено IP съм пуснал рутер и DNS, който е authority за моя домейн. Зад този компютър съм пуснал един майл сървър, който обаче е с частно IP. Предварително искам да кажа, че съм направил пренасочванията на майл портовете към вътрешната машина и пренасочването работи. проблема е, че когато направя обръщение към майл сървъра ми се казва, че не може да бъде намерен същия. От тук си правя заключението, че явно нещо с пренасочването в SOA записа не е наред. За по-голяма яснота прилагам записа от "hosting provider" и SOA record.
При hosting provider: Адрес Тип на запис Стойност **************************************** domain.net А реалното IP domain.net MX 10 mail.domain.net. *.domain.net A реалното IP *.domain.net MX 10 mail.domain.net. SOA record на моя DNS server ; zone file for domain.net $TTL 2d ; zone TTL default = 2 days or 17280 seconds domain.net. IN SOA ns.domain.net. root.ns.domain.net( 2006101101 ; serial number 43200 ; refresh = 12 hours 7200 ; update retry = 2 hour 604800 ; expiry = 1 week 86400 ; minimum = 1 day ) IN NS ns.domain.net. IN MX 10 mail.domain.net. ns IN A реалното IP domain.net. IN A реалното IP localhost.domain.net. IN A 127.0.0.1 mail IN A реалното IP В допълнение искам да кажа, че съм разрешил DNS server да бъде достъпен отвън за всеки(това го направих по препоръка на един познат, който ми каза, че така трябвало да бъде). Ами общо взето това е. Ако някой смята, че може да помогне, но все пак се нуждае от реалния домайн или пък от някоя друга конфигурация може да ми изпрати ЛС. Благодаря предварително Титла: Dns+mail server Публикувано от: laskov в Oct 12, 2006, 09:27 Виж тук как можеш да го тестваш с помощта на telnet. Направи тестове отвътре по IP (като ползваш частното IP) и с mail.domain.net, но според мен е по-добре да имаш две различни зони за запитвания към DNS отвътре и за отвън. После направи тестове и отвън като ползваш публичното IP, а след това и mail.domain.net. Препращам те да четеш за sendmail, но този начин за тестване е универсален. По-напред в описанието има обяснения и за настройката на DNS. Казваш "пренасочването работи". Предполагам, че имаш предвид пренасочването чрез iptables и че проблемът ти може да се окаже там.
Титла: Dns+mail server Публикувано от: Hapkoc в Oct 12, 2006, 12:19 Записите в хостинг доставчика ми подсказват, че DNS сървъра, който е на твоята машина, не е authoritative за зоната. За да бъде такъв трябва да ти бъде делегирана зоната, а това става чрез NS записи, примерно:
domain.net IN NS your.dns.server.hostname Ако your.dns.server.hostname е от същия домейн (domain.net) се прави glue запис: your.dns.server.hostname.domain.net IN A <your.pubic.ip.address> Това трябва да присъства в DNS-а на хостинг компанията (регистратора май се водеше). Не знам за какво пренасочване на SOA записи говориш, не съм чувал за такова нещо. Я поясни малко какво имаш предвид под "правя обръщение към мейл сървъра"? Не успяваш да пращаш поща, да получаваш поща, или и двете? Дай си правилата от iptables, ако не те притеснява. Кажи какъв пощенски сървър си инсталирал. Титла: Dns+mail server Публикувано от: Archer в Oct 12, 2006, 16:29
#!/bin/sh #RULES FOR FIREWALL & NAT ifconfig eth0 up 83.228.113.50 ifconfig eth0 netmask 255.255.252.0 ifconfig eth1 up 192.168.110.1 ifconfig eth1 netmask 255.255.255.0 #NQKOLKO PROMENLIVI ZA PO-GOLQMA QSNOTA IPT="/usr/sbin/iptables" IFACE_EXT=eth0 IFACE_INT=eth1 IP_EXT=83.228.113.50 IP_INT=192.168.110.1 NET_INT=192.168.110.0/24 SRV_ADR=192.168.110.2 echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter #**************************************************************# #START echo -n "Loading FIREWALL !!!" #ZAREJDAME MODULITE NA QDROTO #IZHVURLQME STARITE PRAVILA, STARITE TEBLICI $IPT --flush $IPT --delete-chain $IPT --flush -t nat $IPT --delete-chain -t nat #ZADAVAME "DROP" KATO STANDARTNO POVEDENIE NA TRITE VGRADENI VERIGI $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP #DAVAME SVOBODA NA I-FACE ZA OBRATNA VRUZKA $IPT -I INPUT 1 -i lo -j ACCEPT $IPT -I OUTPUT 1 -o lo -j ACCEPT #****************************************************************************************# #PRAVILA PROTIV PODPRAVENI IP ADDRESSI VUV "INPUT" VERIGATA $IPT -A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 255.0.0.0/8 -j DROP $IPT -A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 0.0.0.0/8 -j DROP $IPT -A INPUT -s 127.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 127.0.0.0/8 -j DROP $IPT -A INPUT -s 10.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 10.0.0.0/8 -j DROP $IPT -A INPUT -s 172.16.0.0/12 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 172.16.0.0/12 -j DROP #Paket sus IP:192.168.0.0/16 idva ot internet na i-face eth0=83.228.113.50 $IPT -A INPUT -s 192.168.0.0/16 -i $IFACE_EXT -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 192.168.0.0/16 -i $IFACE_EXT -j DROP #Paket razlichen ot tozi na vutreshnata mreja idva na vutreshen i-face eth1=192.168.110.1 $IPT -A INPUT -s ! $NET_INT -i $IFACE_INT -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s ! $NET_INT -i $IFACE_INT -j DROP #Paket sus IP:192.168.110.1 idva na i-face eth1=192.168.110.1 $IPT -A INPUT -s $IP_INT -i $IFACE_INT -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s $IP_INT -i $IFACE_INT -j DROP #Paket sus IP:83.228.113.50 idva na i-face eth0=83.228.113.50 $IPT -A INPUT -s $IP_EXT -i $IFACE_EXT -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s $IP_EXT -i $IFACE_EXT -j DROP #****************************************************************************************** *# #PRAVILA PROTIV PODPRAVENI IP ADDRESSI VUV "FORWARD" VERIGATA $IPT -A FORWARD -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 255.0.0.0/8 -j DROP $IPT -A FORWARD -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 0.0.0.0/8 -j DROP $IPT -A FORWARD -s 127.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 127.0.0.0/8 -j DROP $IPT -A FORWARD -s 10.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 10.0.0.0/8 -j DROP $IPT -A FORWARD -s 172.16.0.0/12 -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 172.16.0.0/12 -j DROP #Paket sus IP:192.168.0.0/16 idva ot internet na i-face eth0=83.228.113.50 $IPT -A FORWARD -s 192.168.0.0/16 -i $IFACE_EXT -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s 192.168.0.0/16 -i $IFACE_EXT -j DROP #Paket razlichen ot tozi na vutreshnata mreja idva na vutreshen i-face eth1=192.168.110.1 $IPT -A FORWARD -s ! $NET_INT -i $IFACE_INT -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s ! $NET_INT -i $IFACE_INT -j DROP #Paket sus IP:192.168.110.1 idva na i-face eth1=192.168.110.1 $IPT -A FORWARD -s $IP_INT -i $IFACE_INT -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s $IP_INT -i $IFACE_INT -j DROP #Paket sus IP:83.228.113.50 idva na i-face eth0=83.228.113.50 $IPT -A FORWARD -s $IP_EXT -i $IFACE_EXT -j LOG --log-prefix "Spoofed source IP!" $IPT -A FORWARD -s $IP_EXT -i $IFACE_EXT -j DROP #****************************************************************************************** ***# #INPUT POLICY #Priema vhodqshtite paketi, koito sa chast ot veche odobreni sesii $IPT -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED #Vsichki sesii po TCP trqbva da zapochvat sus SYN flag $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth scan attempt!" $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP #Priema SSH sesii ot internet $IPT -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW #Priema SSH sesii ot vutreshnata mreja $IPT -A INPUT -p tcp -s $NET_INT --dport 22 -m state --state NEW -j ACCEPT #Priema zaqwki po DNS ot internet $IPT -A INPUT -p udp -j ACCEPT --dport 53 -m state --state NEW,RELATED #Priema ICMP (ping) paketi ot Internet $IPT -A INPUT -p icmp -s 0/0 -j ACCEPT #Priema ICMP (ping) paketi ot vutreshnata mreja $IPT -A INPUT -p icmp -s $NET_INT -j ACCEPT #Zapisvame vsichko ostanalo v LOG $IPT -A INPUT -j LOG --log-prefix "DROPED BY DEFAULT (INPUT)" $IPT -A INPUT -j DROP #****************************************************************************************** ****# #OUTPUT POLICY #Ako paketa e chast ot veche odobrena veriga go puskame navun. !!! Ako e nujno na mchinata koqto #igrae rolqta na ROUTER da ima INTERNET, togava v tozi red pred: ESTABLISHED,RELATED pishem NEW $IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #Puskame ICMP ping $IPT -A OUTPUT -p icmp -j ACCEPT #Pozvolqvame izhodqshti zaqvki po DNS, naprimer za opredelqne imenata na IP-addressi v dnevnicite $IPT -A OUTPUT -p udp --dport 53 -j ACCEPT #Zapisvame v LOG vsichko ostanalo $IPT -A OUTPUT -j LOG --log-prefix "DROPED BY DEFAULT (OUTPUT)" $IPT -A OUTPUT -j DROP #****************************************************************************************** *****# #FORWARD POLICY #Ako paketa e chast ot veche odobrena veriga go puskame navun $IPT -I FORWARD 1 -m state --state RELATED,ESTABLISHED -j ACCEPT #Vsichki sesii po TCP treqbva da zapochvat sus SYN $IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth scan attempt!" $IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP #Razreshaveme dostup do WEB-SERVER $IPT -A FORWARD -p tcp -d $SRV_ADR --dport 80 -m state --state NEW -j ACCEPT #Razreshavame dostup do FTP_SERVER $IPT -A FORWARD -p tcp -s 0/0 -d $SRV_ADR --dport 21 -m state --state NEW,RELATED -j ACCEPT #Razreshavame izhodqshti zaqvki po DNS $IPT -A FORWARD -p udp -s $SRV_ADR -m state --state NEW,RELATED --dport 53 -j ACCEPT #Razreshavame dostup do MAIL-SERVER po SMTP-25 $IPT -A FORWARD -p tcp -s 0/0 -d $SRV_ADR --dport 25 -m state --state NEW,RELATED -j ACCEPT #Razreshavame dostup do MAIL-SERVER po POP3-110 $IPT -A FORWARD -p tcp -s 0/0 -d $SRV_ADR --dport 110 -m state --state NEW,RELATED -j ACCEPT #Razreshaveme dostup do MAIL-SERVER po IMAP-143 $IPT -A FORWARD -p tcp -s 0/0 -d $SRV_ADR --dport 143 -m state --state NEW,RELATED -j ACCEPT #Razreshaveme dostup ot vutreshnata mreja za kum Internet $IPT -A FORWARD -s $NET_INT -j ACCEPT #Zapisvame v LOG vsichko ostanalo $IPT -A FORWARD -j LOG --log-prefix "DROPED BY DEFAULT (FORWARD)" $IPT -A FORWARD -j DROP #****************************************************************************************** *****# #NAT RULES #***********************************POSTROUTING************************************# #Prehvurlqne na vsichko ot vutreshnata mreja kum IP_EXT:83.228.113.50 $IPT -t nat -A POSTROUTING -o $IFACE_EXT -j SNAT --to-source $IP_EXT #************************************PREROUTING************************************# #Prehvurlqne na vsichki zaqvki na port 21(FTP-SERVER) kum vutreshno IP:192.168.110.2 $IPT -t nat -A PREROUTING -p tcp -d $IP_EXT --dport 21 -j DNAT --to $SRV_ADR:21 #Prehvurlqne na vsichki zaqvki na port 25(SMTP-SERVER)kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -p tcp -d $IP_EXT --dport 25 -j DNAT --to $SRV_ADR:25 #Prehvurlqne na vsichki zaqvki na port 80(WEB-SERVER)kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -p tcp -d $IP_EXT --dport 80 -j DNAT --to $SRV_ADR:80 #Prehvurlqne na vsichki zaqvki na port 110(POP3-SERVER)kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -p tcp -d $IP_EXT --dport 110 -j DNAT --to $SRV_ADR:110 #Prehvurlqne na vsichki zaqvki na port 143(IMAP-SERVER) kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -p tcp -d $IP_EXT --dport 143 -j DNAT --to $SRV_ADR:143 #****************************************************************************************** *****# Цитат Цитат Титла: Dns+mail server Публикувано от: Archer в Oct 12, 2006, 16:36
След направените промени в записите при Хостинг провайдера по препоръка на Наркос: ************************************ fakepc.net A 83.228.113.50 fakepc.net MX 10 mail.fakepc.net. *.fakepc.net A 83.228.113.50 *.fakepc.net MX 10 mail.fakepc.net. ns.fakepc.net. A 83.228.113.50 ************************************ SOA record на DNS server ************************************ ; zone file for domain.net $TTL 2d ; zone TTL default = 2 days or 17280 seconds domain.net. IN SOA ns.domain.net. root.ns.domain.net( 2006101101 ; serial number 43200 ; refresh = 12 hours 7200 ; update retry = 2 hour 604800 ; expiry = 1 week 86400 ; minimum = 1 day ) IN NS ns.domain.net. IN MX 10 mail.domain.net. ns IN A реалното IP domain.net. IN A реалното IP localhost.domain.net. IN A 127.0.0.1 mail.fakepc.net. IN A реалното IP За пояснение: DNS=OS--> Slackware 10; BIND 9 MailServer=OS-->FreeBSD 6.1; Postfix; Courier; MySQL Титла: Dns+mail server Публикувано от: Hapkoc в Oct 12, 2006, 17:20 Ама така като гледам, настройките които правиш при хостинг доставчика (през web интерфейс ли, през какво не знам) не важат много много. Реално authoritative за зоната ти си си ти:
$ host -t ns fakepc.net I.GTLD-SERVERS.net. fakepc.net NS ns.fakepc.net $ host ns.fakepc.net I.GTLD-SERVERS.net. ns.fakepc.net A 83.228.113.50 Така че промените по зоната би следвало да стават само в локалните зонови файлове на машината ти. В момента ти е паднал интернета или ръчкаш нещо, понеже няма връзка до този IP адрес, та не мога да видя дали се е оправило положението. Виж след като ги сложиш записите дали работи и пиши, че аз така и не разбрах дали са тръгнали нещата. Титла: Dns+mail server Публикувано от: Archer в Oct 12, 2006, 17:42 Hаркос, мисля, че открих грешката която правя. При хостинг провайдера се казва, че за да ми отговарят всичките записи, които бях публикувал трябва да сложа dns servers на hosting provider.
Заложих ги както трябва redirns1.bgdns.net redirns2.bgdns.net //Това е host.bg да наистина нямам и-нет, защото ми е спрял най-вероятно тока. След 1ч. ще се прибера и ще проверя, макар, че промените ще се отразят след около 10ч най-малко. Наркос, много ти благодаря както винаги си много отзивчив. Титла: Dns+mail server Публикувано от: Hapkoc в Oct 12, 2006, 18:01 Хехе, моля, няма проблеми, радвам се когато мога да помогна.
Само една забележка - това, което пише, че за да ти работят записите, които си вкарал, трябва да настроиш NS записите към host.bg е вярно. Работата е там, че те имат предвид записите, които си направил през control панела на host.bg. А всъщност няма проблем да си насочиш NS записа към твоята машина и там в зоновия файл на BIND да си правиш промените и те да влизат в сила. Ако оставиш зоната да се обслужва от DNS сървърите на host.bg можеш да спреш достъпа до твоя DNS отвън (освен ако няма и други зони, за които си authoritative разбира се). |