Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-04-04 14:06:07

  proknet - Użytkownik

proknet
Użytkownik
Zarejestrowany: 2006-05-31

problemy z firewallem

Witam
mam firewalla:

Kod:

#!/bin/sh

################
# Konfiguracja #
################

F="/sbin/iptables"
LOG="ipt#"

#interfejs globalny - dla sieci zewnetrznej
G_NET_NAME="eth1"
G_NET_IP="83.12.xx.xx"
#interfejs lokalny - dla sieci wewnetrznej
L_NET_NAME="eth0"
L_NET_IP="192.168.0.1"
L_NET="192.168.0.0/24"
L_BRDC="192.168.0.255"

#ustawienie modulow i konfiguracji jadra
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

echo "1" > /proc/sys/net/ipv4/ip_forward

#dynamiczny przydzial adresu
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr

#ignorowanie ICMP echo request wysylanych na adres rozgloszeniowy
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#ochrona przed SYN flood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#refuse source routed packets
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects

#walidacja zrodla za pomoca reversed path (RFC1812).
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

#logowanie pakietow z nieprawidlowych adresow
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

#################
# INICJALIZACJA #
#################

echo "Ustawienia polityki dla lancuchow standardowych..."
$F -P INPUT ACCEPT
$F -P FORWARD ACCEPT
$F -P OUTPUT ACCEPT
$F -t nat -P PREROUTING ACCEPT
$F -t nat -P OUTPUT ACCEPT
$F -t nat -P POSTROUTING ACCEPT
$F -t mangle -P PREROUTING ACCEPT
$F -t mangle -P OUTPUT ACCEPT
$F -t mangle -P INPUT ACCEPT
$F -t mangle -P FORWARD ACCEPT
$F -t mangle -P POSTROUTING ACCEPT

echo "Czyszczenie regul dla lancuchow standardowych..."
$F -F
$F -t nat -F
$F -t mangle -F

echo "Kasowanie wszystkich niestandardowych lancuchow..."
$F -X
$F -t nat -X
$F -t mangle -X

if [ "$1" = "stop" ]
then
    echo "Firewall zostal wylaczony."
    exit 0
fi

echo "Ustawienia polityki lancuchow standardowych..."
$F -P INPUT DROP
$F -P OUTPUT DROP
$F -P FORWARD DROP

echo "Tworzenie niestandardowych lancuchow regul..."
$F -N bledne_pakiety
$F -N bledne_pakiety_tcp
$F -N pakiety_icmp
$F -N tcp_wchodzace
$F -N tcp_wychodzace
$F -N udp_wchodzace
$F -N udp_wychodzace

##################
# bledne_pakiety #
##################
echo "Tworzenie regul dla lancucha bledne_pakiety..."

$F -A bledne_pakiety -p ALL -m state --state INVALID -j LOG --log-prefix "$LOG bledne_pakiety "
$F -A bledne_pakiety -p ALL -m state --state INVALID -j DROP
$F -A bledne_pakiety -p tcp -j bledne_pakiety_tcp
$F -A bledne_pakiety -p ALL -j RETURN

######################
# bledne_pakiety_tcp #
######################
echo "Tworzenie regul dla lancucha bledne_pakiety_tcp..."
#dla gate
$F -A bledne_pakiety_tcp -p tcp -i $L_NET_NAME -j RETURN

$F -A bledne_pakiety_tcp -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp ! --syn -m state --state NEW -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL NONE -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL ALL -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL ALL -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

$F -A bledne_pakiety_tcp -p tcp -j RETURN

################
# pakiety_icmp #
################
echo "Tworzenie regul dla lancucha pakiety_icmp..."

$F -A pakiety_icmp --fragment -p ICMP -j LOG --log-prefix "$LOG pakiety_icmp fragmenty "
$F -A pakiety_icmp --fragment -p ICMP -j DROP

#pingowanie i logowanie pingowania
# $F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j LOG --log-prefix "$LOG pakiety_icmp "
# $F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT

#ping - zachaszowac w przypadku odsloniecia powyzszych regul
$F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j DROP
#Time Exceeded
$F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$F -A pakiety_icmp -p ICMP -j RETURN

#################
# tcp_wchodzace #
#################
echo "Tworzenie regul dla lancucha tcp_wchodzace..."

#ident request
#reject zamiast drop w celu unikniecia opoznien przy polaczeniach
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 113 -j REJECT
#FTP client (data port non-PASV)
$F -A tcp_wchodzace -p TCP -s 0/0 --source-port 20 -j ACCEPT
#FTP control
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 21 -j ACCEPT
# Passive FTP
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 62000:64000 -j ACCEPT
#ssh
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 22 -j ACCEPT
#HTTP
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 80 -j ACCEPT
#HTTPS
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 443 -j ACCEPT
#SMTP
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 25 -j ACCEPT
#POP3
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 110 -j ACCEPT
#SSL POP3
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 995 -j ACCEPT
#IMAP4
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 143 -j ACCEPT
#SSL IMAP4
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 993 -j ACCEPT
#ICQ File Transfers & Other Advanced Features
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port : -j ACCEPT
#MSN Messenger File Transfers
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port : -j ACCEPT
#NFS Server - portmapper
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - statd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - NFS daemon
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - lockd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - mountd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - quotad
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT
#User specified allowed TCP protocol
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port  -j ACCEPT

#nie pasujace: powrot i logowanie
$F -A tcp_wchodzace -p TCP -j RETURN

##################
# tcp_wychodzace #
##################
echo "Tworzenie regul dla lancucha tcp_wychodzace..."

#Blokowanie FTP Data
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 20 -j REJECT
#Blokowanie FTP Control
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 21 -j REJECT
#Blokowanie SSH
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 22 -j REJECT
#Blokowanie Telnet
$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 23 -j REJECT
#Blokowanie HTTP
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 80 -j REJECT
#Blokowanie HTTPS
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 443 -j REJECT
#Blokowaie SMTP
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 25 -j REJECT
#Blokowaie POP3
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 110 -j REJECT
#Blokowaie POP3SSL
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 995 -j REJECT
#Blokowaie IMAP4
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 143 -j REJECT
#Blokowaie IMAP4SSL
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 993 -j REJECT
#Blokowanie NEWS
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 119 -j REJECT
#Blokowanie IRC
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port : -j REJECT
#Blokowaie AIM
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 5190 -j REJECT
#Blokowaie AIM Images
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 4443 -j REJECT
#Blokowaie MSN Messenger
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 1863 -j REJECT
#Blokowany zakres portow
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port  -j REJECT
#blokowanie gg
#$F -A tcp_wychodzace -p TCP -s 0/0 -d 217.17.41.0/24 -j REJECT
#$F -A tcp_wychodzace -p TCP -s 0/0 -d 217.17.33.0/24 -j REJECT

#nie pasujace ACCEPT
$F -A tcp_wychodzace -p TCP -s 0/0 -j ACCEPT

#################
# udp_wchodzace #
#################
echo "Tworzenie regul dla lancucha udp_wchodzace..."

#Drop netbios calls
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 137 -j DROP
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 138 -j DROP

#ident - reject zamiast drop w celu unikniecia opoznien w polaczeniach
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 113 -j REJECT

#NTP
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 123 -j ACCEPT
#DNS
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 53 -j ACCEPT
#zewnetrzny server DHCP
#$F -A udp_wchodzace -p UDP -s 0/0 --source-port 68 --destination-port 67 -j ACCEPT
#NFS Server - portmapper
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - statd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - NFS daemon
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - lockd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - mountd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#NFS Server - quotad
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT
#dopuszczalny zakres portow udp
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port  -j ACCEPT

#nie pasujace - powrot i logowanie
$F -A udp_wchodzace -p UDP -j RETURN

##################
# udp_wychodzace #
##################
echo "Tworzenie regul dla lancucha udp_wychodzace..."

#Blokowany zakres portow
#$F -A udp_wychodzace -p UDP -s 0/0 --destination-port  -j REJECT
#blokowanie gg
#$F -A udp_wychodzace -p UDP -s 0/0 -d 217.17.41.0/24 -j REJECT
#$F -A udp_wychodzace -p UDP -s 0/0 -d 217.17.33.0/24 -j REJECT

#nie pasujace ACCEPT
$F -A udp_wychodzace -p UDP -s 0/0 -j ACCEPT

#########
# INPUT #
#########

echo "Tworzenie regul dla lancucha INPUT..."

$F -A INPUT -p ALL -i lo -j ACCEPT
$F -A INPUT -p ALL -j bledne_pakiety

#DOCSIS compliant cable modems
#Drop without logging.
$F -A INPUT -p ALL -d 224.0.0.1 -j DROP

#zezwolenie dla sieci lokalnej - dla gate
$F -A INPUT -p ALL -i $L_NET_NAME -s $L_NET -j ACCEPT
$F -A INPUT -p ALL -i $L_NET_NAME -d $L_BRDC -j ACCEPT

#Ustanowione polaczenia
$F -A INPUT -p ALL -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT

#reszta do odpowiednich lancuchow
$F -A INPUT -p ICMP -i $G_NET_NAME -j pakiety_icmp
$F -A INPUT -p TCP -i $G_NET_NAME -j tcp_wchodzace
$F -A INPUT -p UDP -i $G_NET_NAME -j udp_wchodzace

#zatrzymanie rozgloszen
$F -A INPUT -p ALL -d 255.255.255.255 -j DROP

#nie pasujace - logowanie
$F -A INPUT -j LOG --log-prefix "$LOG INPUT:99 "

###########
# FORWARD #
###########
#dla gate caly
echo "Tworzenie regul dla lancucha FORWARD..."

$F -A FORWARD -p ALL -j bledne_pakiety
$F -A FORWARD -p tcp -i $L_NET_NAME -j tcp_wychodzace
$F -A FORWARD -p udp -i $L_NET_NAME -j udp_wychodzace
$F -A FORWARD -p ALL -i $L_NET_NAME -j ACCEPT

$F -A FORWARD -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT

#nie pasujace - loguj
$F -A FORWARD -j LOG --log-prefix "$LOG FORWARD:99 "

##########
# OUTPUT #
##########

echo "Tworzenie regul dla lancucha OUTPUT..."

$F -A OUTPUT -m state -p icmp --state INVALID -j DROP
$F -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
$F -A OUTPUT -p ALL -o lo -j ACCEPT

#dla gate
$F -A OUTPUT -p ALL -s $L_NET_IP -j ACCEPT
$F -A OUTPUT -p ALL -o $L_NET_NAME -j ACCEPT

$F -A OUTPUT -p ALL -o $G_NET_NAME -j ACCEPT

#nie pasujace - loguj
$F -A OUTPUT -j LOG --log-prefix "$LOG OUTPUT:99 "

#############
# nat table #
#############
echo "Tworzenie regul dla tablicy nat..."
#w nat wszystkie reguly dla gate
##############
# PREROUTING #
##############
echo "    lancuch PREROUTING"
#przekierowanie hosta a.a.a.a wchodzacego na x.x.x.x na adres y.y.y.y
#$F -t nat -A PREROUTING -s 192.168.0.31 -d 83.12.xx.xx -j DNAT --to-destination 192.168.0.31
#PRZEKIEROWANIE IP ZEWNETRZNYCH NA WEWNETRZNE (MARIUSZL)
iptables -t nat -A PREROUTING -d 83.12.xx.xx -j DNAT --to 192.168.0.11
iptables -t nat -A POSTROUTING -s 192.168.0.11 -j SNAT --to-source 83.12.xx.xx

iptables -A FORWARD -s 83.12.xx.xx -d 192.168.0.11 -j ACCEPT
iptables -A FORWARD -s 192.168.0.11 -d 83.12.xx.xx -j ACCEPT

#PRZEKIEROWANIE IP ZEWNETRZNYCH NA WEWNETRZNE (RAFAL)
iptables -t nat -A PREROUTING -d 83.12.xx.xx -j DNAT --to 192.168.0.31
iptables -t nat -A POSTROUTING -s 192.168.0.31 -j SNAT --to-source 83.12.xx.xx

iptables -A FORWARD -s 83.12.xx.xx -d 192.168.0.31 -j ACCEPT
iptables -A FORWARD -s 192.168.0.31 -d 83.12.xx.xx -j ACCEPT

###############
# POSTROUTING #
###############
echo "    lancuch POSTROUTING"

$F -t nat -A POSTROUTING -o $G_NET_NAME -j SNAT --to-source $G_NET_IP
$F -t nat -A POSTROUTING -o $L_NET_NAME -j SNAT --to-source $G_NET_IP
################
# mangle table #
################
echo "Tworzenie regul dla mangle table..."

$F -t mangle -A OUTPUT -o $G_NET_NAME -j TTL --ttl-set 128

działał dobrze do dzisiaj:
Problemy
1. co jakiś czas tracę łączność z routerem na kilka sekund
2. na Windowsach nie można przeglądać sieci - albo działa bardzo wooolno i nie widać MAC'ów które mam w sieci
3. W logach zaobserowałem dużo "błednych pakietów" zamarkowanych w firewallu
4. Czego mam szukać i co poprawić
Proszę o rady
Rafał

Offline

 

#2  2007-04-12 18:49:26

  .stahoo - Użytkownik

.stahoo
Użytkownik
Skąd: Wawa
Zarejestrowany: 2007-04-11

Re: problemy z firewallem

działał dobrze do dzisiaj:
Problemy
1. co jakiś czas tracę łączność z routerem na kilka sekund
2. na Windowsach nie można przeglądać sieci - albo działa bardzo wooolno i nie widać MAC'ów które mam w sieci [/quote]

sprawdzałeś router?


"What a beautiful day for science!" --Dexter

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.012 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00013 SET CHARSET latin2
0.00008 SET NAMES latin2
0.00114 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.163.58' WHERE u.id=1
0.00120 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.163.58', 1713518636)
0.00069 SELECT * FROM punbb_online WHERE logged<1713518336
0.00094 SELECT topic_id FROM punbb_posts WHERE id=57561
0.00169 SELECT id FROM punbb_posts WHERE topic_id=7460 ORDER BY posted
0.00143 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=7460 AND t.moved_to IS NULL
0.00025 SELECT search_for, replace_with FROM punbb_censoring
0.00181 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=7460 ORDER BY p.id LIMIT 0,25
0.00102 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=7460
Total query time: 0.01038 s