Автор Тема: initial firewall script  (Прочетена 5333 пъти)

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« -: Jan 12, 2005, 23:20 »
Здравейте '<img'>
Реших да си сложа firewall на router, който е над една малка мрежичка.Намерих един примерен скрипт и го настроих според моята система, но се появи един проблем.След като пусна скрипта и не ми работи (от части) DNS-а.Имам отделен zone файл, според който IP-to на router-а ми се reslove-ва с определено име.Та след като пусна скришта и не мога да reslove-на IP-to на router-а. Или с други думи като напиша името в browser-а на самия router и не се resove-ва, но ако го пробвам от машина в мрежата...няма проблем всичко си работи нормално. Не мога да разбера как точно този скрипт ми спира тази услога и то само на router-а. Ако някой може да ми помогне... ? '<img'>
ето и скрипта как изглежда
Цитат
#!/bin/sh
LAN_IP_RANGE="192.168.10.0/24"
LAN_IP="192.168.10.1/32"
LAN_BCAST_ADRESS="192.168.10.255/32"
LOCALHOST_IP="127.0.0.1/32"
STATIC_IP="X.X.X.X/32"
INET_IFACE="eth0"
LAN_IFACE="eth1"
IPTABLES="/usr/local/sbin/iptables"
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t filter -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t filter -X
$IPTABLES -t mangle -X

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE -j TTL --ttl-set 128
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N icmp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets

$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 137 -j allowed

$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j DROP
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/16 -j DROP

$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $STATIC_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $STATIC_IP -j ACCEPT
Активен

Your Soul is Mine!

Uvigii

  • Напреднали
  • *****
  • Публикации: 381
    • Профил
initial firewall script
« Отговор #1 -: Jan 13, 2005, 13:28 »
може да пробваш да локализираш проблема. Малко хамалско е но работи и без да мислиш
'<img'>
Цитат

iptables -P INPUT/OUTPUT/FORWARD ACCEPT

едно по едно - докато проработи...
след което гледаш точно какво е ...
Успех.
Активен

http://www.openlab.info мрежова лаборатория

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« Отговор #2 -: Jan 14, 2005, 11:33 »
Това съм го пробвал вече поне за OUTPUT, но не става, а FORWARD не искам да го правя на ACCEPT, защото рискувам някое IP  от мрежата ми да "излезе на вън", а това няма да се хареса на моя ISP '<img'> пък и до колкото съм чел default policy-то на FORWARD е DROP. Ако имате други идеи с удоволствие ще ги чуя '<img'>
Активен

Your Soul is Mine!

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
initial firewall script
« Отговор #3 -: Jan 14, 2005, 14:34 »
сигурно ли е, че resolv.conf сочи към 127.0.0.1?
скрипта си изглежда ок (е, има какво да пооправиш, ма не изглежда той да е проблема)

dig linux-bg.org @127.0.0.1 връща ли някакъв резултат, различен от дупка от геврек?

forward мисля няма какво да го пипаш в случая, макар да не ми се верва да изскокне някое ip, ама освен с output пробвай и input да турнеш на accept
Активен

Uvigii

  • Напреднали
  • *****
  • Публикации: 381
    • Профил
initial firewall script
« Отговор #4 -: Jan 14, 2005, 16:26 »
Цитат (Soulstealer @ Ян. 14 2005,12:33)
а FORWARD не искам да го правя на ACCEPT, защото рискувам някое IP  от мрежата ми да "излезе на вън",

ми как ?
Цитат
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE


@vlad73
Цитат
Та след като пусна скришта и не мога да reslove-на IP-to на router-а.

Което значи (поне според мен), че преди пускането на скрипта си работи ОК ? т.е. означава ли, че проблема е в скрипта или не ?

@Soulstealer
Цитат
Ако имате други идеи с удоволствие ще ги чуя

Ми то май остана само в INPUT да е ... Ама по-лесно да попиташ де ...
Активен

http://www.openlab.info мрежова лаборатория

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
initial firewall script
« Отговор #5 -: Jan 15, 2005, 00:47 »
Отвори порт 53 и за TCP на INPUT, вътрешен интерфейс - може и да ти проработи DNS...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« Отговор #6 -: Jan 15, 2005, 11:55 »
VladSun, не става... '<img'>
направих го е то така:
Цитат
iptables -A INPUT -p tcp -i eth1 --dport 53 -j ACCEPT
като eth1 ми е вътрешния интерфейс
докато INPUT е с default policy DROP не става...
и не мога да разбера как така от машина в локалната мрежа името се resolve-ва а на самия router не може...
какво да правя ? '<img'>
Активен

Your Soul is Mine!

  • Гост
initial firewall script
« Отговор #7 -: Jan 15, 2005, 15:00 »
1) Протокола за DNS е UDP.
2) май този ред
Примерен код

$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT

трябва да е
Примерен код
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --dport 53 -j ACCEPT


Предполагам разбираш че ако дест порта ти е затворен няма как да резолвне. А Лан мрежата най вероятно резолвира от ДНС-а на доставчика ти.
Активен

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« Отговор #8 -: Jan 15, 2005, 15:36 »
Ами не става, добвих и dport-а и дори казах на UDP пакетите идващи от вътрешния интерфейс да скочат във верига updincoming_packets, но не става. А иначе машините в LAN мрежата ми използват моя router като DNS, аз съм пуснал BIND и нямам domain(платен) просто съм си направил zone файл, който работи само за моята мрежа...а сега тотално прецаках работата
и не знам как по-точно
като спра firewall-а и на самия router се ресолвва само главния домейн...както ми е на мен в случая soulstealer.org, а събдомейните не могат...но на машините в мрежата ми събдомайните се ресолвват но главния не може! Не мога да разбера къде съм сгрешил...
ето как ми изглежда zone файла
Цитат
$ORIGIN .
$TTL 14400
soulstealer.org       IN      SOA    soulstealer.org. root.soulstealer.org. (
                      20040647        ; serial
                      28800          ; refresh (8 hours)
                      7200            ; retry (2 hours)
                      864000          ; expire (1 week 3 days)
                      86400          ; minimum (1 day)
                      )
                      NS      ns.soulstealer.org.
                      MX      10 soulstealer.org.
                      A       192.168.10.1
$ORIGIN soulstealer.org
ftp IN A 192.168.10.2
danny IN A 192.168.10.3

а с пуснат firewall няма и идея за ресолвване на каквото и да било на самия router '<img'>
но иначе събдомейните се ресолвват на машините в мрежата
...не знам какво става, чувствам се като малоумен!... '<img'>
Активен

Your Soul is Mine!

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
initial firewall script
« Отговор #9 -: Jan 16, 2005, 03:04 »
Цитат (Guest @ Ян. 15 2005,15<!--emo&':0')
1) Протокола за DNS е UDP.


.http://www.freesoft.org/CIE/Course/Section2/11.htm

... Either TCP or UDP can be used to transport DNS protocol messages, connecting to server port 53 for either. Ordinary DNS requests can be made with TCP, though convention dictates the use of UDP for normal operation. TCP must be used for zone transfers, however, because of the danger of dropping records with an unreliable delivery protocol such as UDP ...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
initial firewall script
« Отговор #10 -: Jan 16, 2005, 03:13 »
$IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $STATIC_IP -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT

Тия редове не ми харесват ...
Значи при първия и третия все ми се струва че си обърнал посоката - т.е. т.д.б. :

$IPTABLES -A INPUT -p ALL -s $LAN_IP -j ACCEPT
и
$IPTABLES -A OUTPUT -p ALL -d $LAN_IP -j ACCEPT

А втория ред не ми харесва с това че не пускаш нови конекции към сървера - как ще се добереш до ДНС-а тогава?
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« Отговор #11 -: Jan 16, 2005, 11:04 »
VladSun, мерси! '<img'>
стана ! '<img'>
просто добавих NEW към ESTABLISHED и RELATED и всичко се оправи.Source-а и destination-а на INPUT и OUTPUT не съм ги пипал...все пак съм гледал от примерен script от един iptables tutorial не вярвам хората там да са сгрешили '<img'>
както и да е...мерси отново
ама сега се появява едно малко съмнение в мене...а именно
до колко е secure тоя state NEW а ? '<img'>
Активен

Your Soul is Mine!

Astor

  • Напреднали
  • *****
  • Публикации: 332
    • Профил
initial firewall script
« Отговор #12 -: Jan 16, 2005, 15:22 »
Здравейте, странно но при моя firewall точно без това NEW във FORWARD веригата си работи идеално:
Цитат

#INTERNAL Interface = eth0
#EXTERNAL Interface = eth1
#INTERNET IP = 192.168.30.36
#LOCAL NET = 10.0.0.0/24

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -i eth1 -p ICMP -d 192.168.30.36 -j ACCEPT
iptables -A INPUT -i eth1 -m tcp -p tcp --dport 20:21 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -m state --state  ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Активен

Няма начин, да няма начин!

Bogo

  • Напреднали
  • *****
  • Публикации: 632
  • Distribution: Debian
  • Window Manager: cmd
    • Профил
initial firewall script
« Отговор #13 -: Jan 16, 2005, 15:53 »
Незнам на вас как ще ви се стори но на мен, като слаб по iptables много ми хареса генераторчето на този саит'<img'>
Активен

live free or die хард :)

Soulstealer

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
initial firewall script
« Отговор #14 -: Jan 16, 2005, 19:24 »
Astor, кое по-точно при теб си работи идеално ? '<img'>
Bogo, такова бещо за първи път виждам '<img'>
но ми харесва '<img'> идеино е
и може много да се взаимства от там, за да си направиш хубав script '<img'>
Активен

Your Soul is Mine!

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
firewall
Хардуерни и софтуерни проблеми
wandererbg 1 2240 Последна публикация Sep 14, 2003, 14:35
от n_antonov
firewall
Настройка на хардуер
velomen 5 3794 Последна публикация Mar 31, 2004, 12:36
от kennedy
Настройка на firewall-а за игра от LAN в Интернет
Настройка на програми
etvagonema 4 2848 Последна публикация Apr 04, 2004, 23:58
от hellmare
help: Firewall & more?
Настройка на програми
st0rmblast 2 1944 Последна публикация May 05, 2004, 11:54
от n_antonov
Iptables Firewall Script
Настройка на програми
Vasil_T 5 2517 Последна публикация Sep 01, 2004, 17:06
от Vasil_T