Автор Тема: iptables  (Прочетена 911 пъти)

Archer

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
iptables
« -: Jan 05, 2006, 21:07 »
Здравейте, наскоро се опитах да премодифицирам един скрипт с iptables правила така, че да отговаря на мойте изисквания. Проблема е че нещо не работи, преди да го постна бих искал да дам малко повече инфо. Имам  Slackware 10.2--2.4.31, който го ползвам за рутер и има IP 83.228.X.X(това е за и-нета, а за към LAN 192.168.110.1). Зад него има машина със същите параметри(192.168.110.2), която ще се ползва за Web и FTP . Имам ping от вътрешната машина и към двата и-фейса на рутера, но след това няма никой. Молбата ми е ако на някой му се занимава да го погледне и ако има нещо което да му се струва нередно да го сподели(критиката ще бъде градивна). Благодаря предварително

Та ето го и скрипта:

#!/bin/bash
#RULES FOR FIREWALL & NAT
IPT="/usr/sbin/iptables"

echo "Loading aditional modules ..."
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filter

function flush() {
echo "Flushing firewall ..."
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT

$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
}

case $1 in

start)
echo "Starting firewall ..."
flush
#Zadavame "othvurlqne" kato standartno povedenie na trite vgradeni verigi

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Davame pulna svoboda na interfacite za obratna vruzka

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT


echo "Executing FILTER table ..."

#Nqkolko osnovni pravila protiv podpraveni IP-addressi

$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

#$IPT -A INPUT -s 192.168.0.0/16 -j LOG --log-prefix "Spoofed source IP!"
#$IPT -A INPUT -s 192.168.0.0/16 -j DROP

$IPT -A INPUT -s 83.228.X.X -j LOG --log-prefix "Spoofed by my own IP!"
$IPT -A INPUT -s 83.228.X.X -j DROP

#Definirame pravilo, s koeto kazvame na "netfilter", che vsichki sessions po TCP,
#zaduljitelno trqbva da zapochvat sus SYN (Vuzmojno scanirane ot strana na nqkoi lubopitko)

$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


echo "Processing INPUT chain ..."

#Priemame vhodqshti paketi, koito sa chast ot veche odobreni sessinos
$IPT -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

#Priema vhodqshti paketi, koito startirat sessions po FTP
$IPT -A INPUT -p tcp -j ACCEPT --dport 21 -m state --state NEW

#Priema vhodqshti paketi, koito startirat sessions po SSH
$IPT -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW

#Priema vhodqshti paketi, koito startirat sessions po HTTP
$IPT -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW

#Priema vsichko koeto idva ot vutreshnata mreja 192.168.110.0/24  Tuk mojebi e dobre da ima portove 1025-65355
$IPT -A INPUT -p all -s 192.168.110.0/24 -d 83.228.X.X -j ACCEPT

#Zapisvame vsichko ostanalo v LOG
$IPT -A INPUT -j LOG --log-prefix "Dropped by default:"


echo "Processing OUTPUT chain ..."

#Ako paketa e chast ot veche odobrena vruzka go puskame navun
$IPT -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

#Pozvolqvame izhodqshti ICMP zaqvki- "ping"
$IPT -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-reqest

#Pozvolqvame izhodqshti zaqvki po DNS "opredelqne na imena po IP address"
$IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

#Zapisvame v LOG vsichko ostanalo
$IPT -A OUTPUT -j LOG --log-prefix "Dropped by default:"


echo "Processing FORWARD chain ..."

$IPT -A FORWARD -p all -j ACCEPT


echo "Executing NAT table ..."

#PREROUTING
#Prehvurlqne na vsichki zaqvki na port 21 kum vutreshno IP 192.168.110.2
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.110.2:21

#Prehvurlqne na vsichki zaqvki na port 80 kum vutreshno IP 192.168.110.2
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.110.2:80


#POSTROUTING
#Prehvurlqne na vsichko ot vutreshnata mreja kum 83.228.X.X
IPT -t nat -A POSTROUTING -o eth0 -j SNAT –to--source 83.228.X.X
;;


stop)
echo "Stoping firewall ..."
flush
;;


nat)
echo "Running firewall but only NAT table ..."
flush
;;


*)
echo "Usage: FIREWALL & NAT start|stop|nat"
;;
esac
Активен

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
iptables
« Отговор #1 -: Jan 05, 2006, 22:31 »
eth0 с какъв адрес е, трябва да е този на интернет интерфейса
провери си реда за маскиране дали нетрябва да е -o eth1.
Активен

  • Гост
iptables
« Отговор #2 -: Jan 06, 2006, 09:02 »
Цитат (Archer @ Ян. 05 2006,22:07)

Здрасти !
Погледни това :
#Zadavame "othvurlqne" kato standartno povedenie na trite vgradeni verigi

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

Не трябва ли да е :

$IPT -P OUTPUT ACCEPT

Не е ли добра идея да се допуска по УДР и ТСП поне порт 53 ?
Активен

carlitto

  • Напреднали
  • *****
  • Публикации: 33
    • Профил
iptables
« Отговор #3 -: Jan 06, 2006, 13:24 »
При мен е така и работи...

$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Активен

"You want to be making moves on the street?
Have no attachments. Allow nothing to be in your life...
...that you can't walk out on in 30 seconds if you spot the heat around the corner."

  • Гост
iptables
« Отговор #4 -: Jan 06, 2006, 13:37 »
Моят съвет е да почнеш с минимум правила, но работещо и постепенно да добавяш, докато разбереш къде ти е проблемното правило '<img'>
Прим.

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
IPT -t nat -A POSTROUTING -o eth0 -j SNAT –to--source 83.228.X.X

Докато това не проработи не вкарвай нови правила '<img'>
Активен

  • Гост
iptables
« Отговор #5 -: Jan 06, 2006, 13:39 »
Опа, copy-paste-a не стана този път '<img'>
В предишния пост - навсякъде е ACCEPT вместо DROP, и eth0 ти е външния интерфейс
Активен

Archer

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
iptables
« Отговор #6 -: Jan 06, 2006, 18:25 »
Благодаря на всички, които се отзоваха. Щом се прибера днес ще тествам и ще върна инфо.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Iptables
Настройка на програми
mozly 1 3921 Последна публикация Dec 10, 2002, 23:48
от Vency
iptables
Настройка на програми
sunhater 3 3746 Последна публикация Apr 23, 2003, 15:02
от sunhater
iptables
Настройка на програми
dumdum 4 4341 Последна публикация Apr 30, 2003, 10:40
от dumdum
IPTABLES
Настройка на програми
achird 2 4429 Последна публикация May 20, 2003, 14:14
от achird
iptables
Настройка на програми
dumdum 2 3459 Последна публикация May 03, 2003, 17:00
от