ďťż
 
 
   wytłumaczenie zasad firrewalla na serwerze
 
 

Tematy

 
    
 

 

 

 

wytłumaczenie zasad firrewalla na serwerze





Matrim - 25-05-2009 08:37
Witam szanownych użytkowników, jako że jestem bardzo zielony to proszę o możliwe łopatologiczne wytłumaczenie mi serwera firewall jaki mam na zaliczenie. Chodzi mi głównie o przekierowanie portów np. poczta na eth 2 lub 3 itp. Najlepiej byłoby gdyby ktoś mógł mi pomóc rozszyfrować wszystko po kroku co się dzieje i jakie ma za zadanie komenda.
Dziękuje wszystkim za zainteresowanie i pomoc.
#!/bin/bash

# sciezka do ECHO
ECHO="/bin/echo"

# sciezka do CLEAR
CZYSC="/usr/bin/clear"

# sciezka do MODPROBE
MODUL="/sbin/modprobe"

# sciezka do MODPROBE
DELMODUL="/sbin/rmmod"

# sciezka do IPTABLES
IPT="/usr/local/sbin/iptables"

# sciezka do skryptu HTB
HTB="/etc/siec/htb"
HTB_UP1="/etc/siec/up1"
HTB_UP2="/etc/siec/up2"
HTB_UP3="/etc/siec/up3"

PRZEKIEROWANIE="/etc/siec/przekierowanie"

# blokada wirusow
VIRUS="/etc/siec/rc.virus"

# ograniczenie polaczen
CONNLIMIT="/etc/siec/rc.connlimit"

# staty
STATY="/etc/siec/staty"

# ip_mack
IPMACK="/etc/siec/ip_mack"

# blokada portow p2p
P2P="/etc/siec/rc.p2p"

# zaplata miniserv
ZAPLATA="/etc/siec/zaplata"

# sciezka do IFCONFIG
IF="/sbin/ifconfig"

ILE=`arp | grep "eth0" | wc -l`

# -----=====[ Komunikat ekranowy ]=====-----
$CZYSC
$ECHO ""
$ECHO " ---=== Firewall version  x===---"
$ECHO ""
$ECHO ""
# -----=====[ Interfejsy sieciowe  ]=====-----

    ######## DSL1 #######
NET="eth2"
IPNET="87.105.20.238" # routowalny adres IP {od dostawcy}
#IPNET_0="83.16.38.163"
#IPNET_1="83.16.38.164"
#IPNET_2="83.16.38.165"
#IPNET_3="83.16.38.166"
NET_MASK="255.255.255.128"

LAN="eth0"
IPLAN="192.168.0.1"
IP_MASK="192.168.0.0/255.255.255.0"

    ######## DSL2 ######
NET2="eth1"
#IPNET2="83.17.62.226" # routowalny adres IP {od dostawcy)

IPNET2="87.105.158.201" # routowalny adres IP {od dostawcy)
#IPNET2="10.0.0.1" # routowalny adres IP {od dostawcy}

#IPNET2_0="83.17.62.227"
#IPNET2_1="83.17.62.228"
#IPNET2_2="83.17.211.109"
#IPNET2_3="83.17.211.110"

    ####### DSL3 ##########
NET3="eth3"
IPNET3="87.105.158.202"

# -----=====[ Hosty sieci Lan  ]=====-----
HOST_01="192.168.0.1"
HOST_02="192.168.0.2"
HOST_03="192.168.0.3"
HOST_04="192.168.0.4"
HOST_05="192.168.0.5"
HOST_06="192.168.0.6"
HOST_07="192.168.0.7"
HOST_08="192.168.0.8"
HOST_09="192.168.0.9"
HOST_10="192.168.0.10"
HOST_11="192.168.0.11"
HOST_12="192.168.0.12"
HOST_13="192.168.0.13"
HOST_14="192.168.0.14"
HOST_15="192.168.0.15"
HOST_16="192.168.0.16"
HOST_17="192.168.0.17"
HOST_18="192.168.0.18"
HOST_19="192.168.0.19"
HOST_20="192.168.0.20"
HOST_21="192.168.0.21"
HOST_22="192.168.0.22"
HOST_23="192.168.0.23"
HOST_24="192.168.0.24"
HOST_25="192.168.0.25"
HOST_26="192.168.0.26"
HOST_27="192.168.0.27"
HOST_28="192.168.0.28"
HOST_29="192.168.0.29"
HOST_30="192.168.0.30"
HOST_31="192.168.0.31"
HOST_32="192.168.0.32"
HOST_33="192.168.0.33"
HOST_34="192.168.0.34"
HOST_35="192.168.0.35"
HOST_36="192.168.0.36"
HOST_37="192.168.0.37"
HOST_38="192.168.0.38"
HOST_39="192.168.0.39"
HOST_40="192.168.0.40"
HOST_41="192.168.0.41"
HOST_42="192.168.0.42"
HOST_43="192.168.0.43"
HOST_44="192.168.0.44"
HOST_45="192.168.0.45"
HOST_46="192.168.0.46"
HOST_47="192.168.0.47"
HOST_48="192.168.0.48"
HOST_49="192.168.0.49"
HOST_50="192.168.0.50"
HOST_51="192.168.0.51"
HOST_52="192.168.0.52"
HOST_53="192.168.0.53"
HOST_54="192.168.0.54"
HOST_55="192.168.0.55"
HOST_56="192.168.0.56"
HOST_57="192.168.0.57"
HOST_58="192.168.0.58"
HOST_59="192.168.0.59"
HOST_60="192.168.0.60"
HOST_61="192.168.0.61"
HOST_62="192.168.0.62"
HOST_63="192.168.0.63"
HOST_64="192.168.0.64"
HOST_65="192.168.0.65"
HOST_66="192.168.0.66"
HOST_67="192.168.0.67"
HOST_68="192.168.0.68"
HOST_69="192.168.0.69"
HOST_70="192.168.0.70"
HOST_71="192.168.0.71"
HOST_72="192.168.0.72"
HOST_73="192.168.0.73"
HOST_74="192.168.0.74"
HOST_75="192.168.0.75"
HOST_76="192.168.0.76"
HOST_77="192.168.0.77"
HOST_78="192.168.0.78"
HOST_79="192.168.0.79"
HOST_80="192.168.0.80"
HOST_81="192.168.0.81"
HOST_82="192.168.0.82"
HOST_83="192.168.0.83"
HOST_84="192.168.0.84"
HOST_85="192.168.0.85"
HOST_86="192.168.0.86"
HOST_87="192.168.0.87"
HOST_88="192.168.0.88"
HOST_89="192.168.0.89"
HOST_90="192.168.0.90"
HOST_91="192.168.0.91"
HOST_92="192.168.0.92"
HOST_93="192.168.0.93"
HOST_94="192.168.0.94"
HOST_95="192.168.0.95"
HOST_96="192.168.0.96"
HOST_97="192.168.0.97"
HOST_98="192.168.0.98"
HOST_99="192.168.0.99"
HOST_100="192.168.0.100"
HOST_101="192.168.0.101"
HOST_102="192.168.0.102"
HOST_103="192.168.0.103"
HOST_104="192.168.0.104"
HOST_105="192.168.0.105"
HOST_106="192.168.0.106"
HOST_107="192.168.0.107"
HOST_108="192.168.0.108"
HOST_109="192.168.0.109"
HOST_110="192.168.0.110"
#Blokada i przekierowanie dla Hosta za brak opłaty za internet
PORT_ALL="1:65535"
VIRTUALHOST_230="192.168.0.1:230"

# -----=====[ GG za Firewall  ]=====-----
GG_PORT="1550"

##########################
case "$1" in
start)
##########################
#Komunikat ekranowy
$ECHO "Firewall odpalony"

#$IF eth1:1 $IPNET_0 netmask $NET_MASK
#$IF eth1:2 $IPNET_1 netmask $NET_MASK
#$IF eth1:3 $IPNET_2 netmask $NET_MASK
#$IF eth1:4 $IPNET_3 netmask $NET_MASK

#ÂŁadowanie modułów jeśli nie masz w tego jajku Linuksa
$MODUL ip_nat_ftp
$MODUL ip_nat_irc
$MODUL ip_conntrack
$MODUL ip_conntrack_irc
$MODUL ip_conntrack_ftp

$IPT -t mangle -I POSTROUTING -d $IP_MASK -j TTL --ttl-set 2
###################  2xDSL  #################
#$IPT -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 83.16.38.162
#$IPT -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 83.17.62.226
$IPT -t nat -A POSTROUTING -o eth2 -j SNAT --to-source 87.105.20.238
$IPT -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 87.105.158.202

$IPT -t nat -A POSTROUTING -o eth3 -j SNAT --to-source 87.105.158.201
#$IPT -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 10.0.0.1
##########################
#PRZEKIEROWANIE USLUG DLA USEROW W SIECI#
##########################
#                                                                #
#$IPT -t nat -A PREROUTING -d 83.16.38.163 -j DNAT --to 192.168.0.202
#$IPT -t nat -A POSTROUTING -s 192.168.0.202 -j SNAT --to 83.16.38.163

#$IPT -t nat -A PREROUTING -d 83.16.38.164 -j DNAT --to 192.168.0.66
#$IPT -t nat -A POSTROUTING -s 192.168.0.66 -j SNAT --to 83.16.38.164

#$IPT -t nat -A PREROUTING -d 83.16.38.165 -j DNAT --to 192.168.0.32
#$IPT -t nat -A POSTROUTING -s 192.168.0.32 -j SNAT --to 83.16.38.165
#                                                                #
#                                                                #
##########END##########

# -----=====[ Czycimy łańcuchy ]=====-----
$IPT -t mangle -D FORWARD -i $LAN - STAT >/dev/null 2>&1
$IPT -t mangle -D FORWARD -o $LAN - STAT >/dev/null 2>&1
$IPT -t mangle -F STAT >/dev/null 2>&1
$IPT -t mangle -X STAT >/dev/null 2>&1
$IPT -F
$IPT -X
$IPT -Z

# -----=====[ Polityki domylne dla pakietów  ]=====-----
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

##########################
#                                                      #
#ROUTING DSL                        #
#                                                      #
##########################

    # www
$IPT -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 0x1111
$IPT -t mangle -A PREROUTING -p udp --dport 80 -j MARK --set-mark 0x1111

#$IPT -t mangle -A PREROUTING -m layer7 --l7proto http -j MARK --set-mark 0x2222

    # www-szyfrowane
$IPT -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 0x2222
$IPT -t mangle -A PREROUTING -p udp --dport 443 -j MARK --set-mark 0x2222

    # poczta
#$IPT -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 0x2222
#$IPT -t mangle -A PREROUTING -p udp --dport 25 -j MARK --set-mark 0x2222
#$IPT -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 0x2222
#$IPT -t mangle -A PREROUTING -p udp --dport 110 -j MARK --set-mark 0x2222
#$IPT -t mangle -A PREROUTING -p tcp --dport 995 -j MARK --set-mark 0x2222
#$IPT -t mangle -A PREROUTING -p udp --dport 995 -j MARK --set-mark 0x2222
    # dns
$IPT -t mangle -A PREROUTING -p tcp --dport 53 -j MARK --set-mark 0x1111
$IPT -t mangle -A PREROUTING -p udp --dport 53 -j MARK --set-mark 0x1111

    # Proxy
#$IPT -t mangle -A PREROUTING -p tcp --dport 9999 -j MARK --set-mark 0x1111
#$IPT -t mangle -A PREROUTING -p udp --dport 9999 -j MARK --set-mark 0x1111

    # ssh
#$IPT -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 0x1111
#$IPT -t mangle -A PREROUTING -p udp --dport 22 -j MARK --set-mark 0x1111

    # skype
$IPT -t mangle -A PREROUTING -p tcp --dport 18201:18500 -j MARK --set-mark 0x2222
$IPT -t mangle -A PREROUTING -p udp --dport 18201:18500 -j MARK --set-mark 0x2222

##########################
#                                                                            #
#THE END ROUTING                                #
#                                                                            #
##########################

# -----=====[ ÂŁadowanie opcji kernela ]=====-----
$ECHO "1" > /proc/sys/net/ipv4/ip_forward
$ECHO "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
$ECHO "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#$ECHO "0" > +proc/sys/net/ipv4/conf/all/accept_source_route
$ECHO "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
$ECHO "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
$ECHO "1" > /proc/sys/net/ipv4/conf/all/rp_filter
$ECHO "1" > /proc/sys/net/ipv4/conf/all/log_martians                     

# -----=====[ Limitowanie sesji TCP ]=====-----
$ECHO "30" > /proc/sys/net/ipv4/tcp_fin_timeout
$ECHO "2400" > /proc/sys/net/ipv4/tcp_keepalive_time
$ECHO "0" > /proc/sys/net/ipv4/tcp_window_scaling
$ECHO "0" > /proc/sys/net/ipv4/tcp_sack
$ECHO "36000" > /proc/sys/net/ipv4/ip_conntrack_max
$ECHO "20" > /proc/sys/net/ipv4/ipfrag_time
$ECHO "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog

# -----=====[ Pełny ruch na interfejsie lo ]=====-----
# Wymagaja tege pewne programy servera
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPMACK

    #$IPT -N TTL_check
# Caly forward z naszej sieci przechodzi przez TTL_check
# oprocz icmp - aby dzialalo traceroute... ale bedzie dzialac tez ping!
    #$IPT -A FORWARD -p ! icmp -s $IP_MASK -j TTL_check
    #$IPT -A TTL_check -m ttl --ttl-eq 255 -j RETURN
    #$IPT -A TTL_check -m ttl --ttl-eq 127 -j RETURN
    #$IPT -A TTL_check -m ttl --ttl-eq 63 -j RETURN
    #$IPT -A TTL_check -j DROP

##########################
# -----=====[ TRANSPARENTNE PROXY ]=====----- #
##########################

#$IPT -t nat -A PREROUTING -s $IP_MASK -p tcp -d ! $IP_MASK --dport 80  -j DNAT --to-destination $IPLAN:9999

       
$PRZEKIEROWANIE

##########################
#                                            # 
#    -----=====[ LANCUCH INPUT ]=====-----  #
#                                            #
##########################

# Musimy przepuscic niektore komunikaty ICMP z LAN i net
# Source Quench - tlumienie zrodla
$IPT -A INPUT -i $NET -p icmp --icmp-type 4 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 4 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 4 -d $IPLAN -j ACCEPT

       
# Parametr problem - problem z parametrem
$IPT -A INPUT -i $NET -p icmp --icmp-type 12 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 12 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 12 -d $IPLAN -j ACCEPT

       
# Destination Unrechable - nieosiagniety cel
$IPT -A INPUT -i $NET -p icmp --icmp-type 3 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 3 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 3 -d $IPLAN -j ACCEPT

       
# Time Exceeded - Przekroczony limit czasu
$IPT -A INPUT -i $NET -p icmp --icmp-type 11 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 11 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 11 -d $IPLAN -j ACCEPT

       
# Echo request - zadanie echa
# Aby wylaczyc odpowiedzi na pingi nalezy to zakomentowac i wyzej,
# wylaczyc je w opcjach kernela
$IPT -A INPUT -i $NET -p icmp --icmp-type 8 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 8 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 8 -d $IPLAN -j ACCEPT

       
# Echo reply - echo na zadanie
# Uruchamiamy gdy chcemy muc odebrac echo z komputera ktory pingujemy
$IPT -A INPUT -i $NET -p icmp --icmp-type 0 -d $IPNET -j ACCEPT
$IPT -A INPUT -i $NET2 -p icmp --icmp-type 0 -d $IPNET2 -j ACCEPT
$IPT -A INPUT -i $LAN -p icmp --icmp-type 0 -d $IPLAN -j ACCEPT

# Przepuszcza pakiety z flaga ESTABLISHED i RELATED
$IPT -A INPUT -m state --state ESTABLISHED -j ACCEPT
$IPT -A INPUT -m state --state RELATED -j ACCEPT
               
       
# -----=====[ FTP ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 21(ftp) tcp.
# Oraz dla otworzenia kanalu danych w aktiv port 20 tcp.
$IPT -A INPUT  -p tcp --dport 21 -m state --state NEW -j ACCEPT
$IPT -A INPUT  -p tcp --dport 20 -m state --state NEW -j ACCEPT

# -----=====[ SSH ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 22(ssh).
# fajnie by bylo dodac "-s a.b.c.d" aby moc sie logowac tylko z jednego IP.
$IPT -A INPUT -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
# Tylko okreslony komputer moze sie zajac naszym komputerem
# $IPT -A INPUT -i $EXTDEV -m mac --mac-source xx:xx:xx:xx:xx:xx -s a.b.c.d -p tcp --sport 1024: --dport 22 -m state+--state NEW -j ACCEPT
                         
       
# -----=====[ DNS ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 53(DNS) tcp i udp z sieci lokalnej.
# Transakcje serwer-klient
$IPT -A INPUT -i $LAN -p tcp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $LAN -p udp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
# Transakcje serwer-serwer
#$IPT -A INPUT -i $LAN -p tcp --sport 53 --dport 53 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $LAN -p udp --sport 53 --dport 53 -m state --state NEW -j ACCEPT
       
       
# -----=====[ DHCPD ]=====-----
# Akceptujemy pakiety NEW na naszym portach 67 i 68(dhcpd) tcp i udp.
#$IPT -A INPUT -i $LAN -p tcp --dport 67 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $LAN -p udp --dport 67 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $LAN -p tcp --dport 68 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $LAN -p udp --dport 68 -m state --state NEW -j ACCEPT

# -----=====[ HTTP ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 80(www).
$IPT -A INPUT -p tcp --sport 1024: --dport 80 -m state --state NEW -j ACCEPT

# -----=====[ HTTPs ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 443(www).
$IPT -A INPUT -p tcp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT
$IPT -A INPUT -p udp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT

# -----=====[ PROXY ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 8080(proxy).
$IPT -A INPUT -i $LAN -p tcp --dport 9999 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $LAN -p udp --dport 9999 -m state --state NEW -j ACCEPT

# -----=====[ RPC ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 111(Portmap) tcp i udp z sieci lokalnej.
# $IPT -A INPUT -i $INTDEV -p tcp --dport 111 -m state --state NEW -j ACCEPT
# $IPT -A INPUT -i $INTDEV -p udp --dport 111 -m state --state NEW -j ACCEPT

# Akceptujemy pakiety NEW na naszym porcie 2049(NFS)  udp z sieci lokalnej.
# $IPT -A INPUT -i $INTDEV -p udp --dport 2049 -m state --state NEW -j ACCEPT
       

# Akceptujemy pakiety NEW na naszym niestandartowym porcie 1026(mountd) tcp i udp z sieci lokalnej.
# $IPT -A INPUT -i $INTDEV -p udp --dport $(rpcinfo -p localhost | grep "mountd" | grep "udp" | head -n 1 | awk -F' ' {'print $4'} ) -m state --state NEW -j ACCEPT
# $IPT -A INPUT -i $INTDEV -p tcp --dport $(rpcinfo -p localhost | grep "mountd" | grep "tcp" | head -n 1 | awk -F' ' {'print $4'} ) -m state --state NEW -j ACCEPT       
       

# -----=====[ SMTP ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 25(smtp) tcp i udp.
$IPT -A INPUT  -p tcp --dport 25 -m state --state NEW -j ACCEPT
$IPT -A INPUT  -p tcp --dport 465 -m state --state NEW -j ACCEPT
$IPT -A INPUT  -p tcp --dport 113 -m state --state NEW -j ACCEPT
       

# -----=====[ POP-3 ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 110(pop) tcp i udp z sieci lokalnej.
$IPT -A INPUT -i $LAN -p tcp --dport 110 -m state --state NEW -j ACCEPT
       
       
# -----=====[ POP-3 over SSL ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 995(pop over SSL) tcp i udp z sieci lokalnej.
$IPT -A INPUT -i $LAN -p tcp --dport 995 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $LAN -p tcp --dport 993 -m state --state NEW -j ACCEPT
       
       
# -----=====[ SAMBA ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 139(smbd) tcp z sieci lokalnej.
#$IPT -A INPUT -i $LAN -p tcp --dport 139 -m state --state NEW -j ACCEPT
               
# Akceptujemy pakiety NEW na naszym porcie 137 i 138(nmbd) udp z sieci lokalnej.
#$IPT -A INPUT -i $LAN -p udp --dport 137 -m state --state NEW -j ACCEPT
#$IPT -A INPUT -i $LAN -p udp --dport 138 -m state --state NEW -j ACCEPT
       
# Tak tez mozna, ale jeszcze nie wspierane przez sambe...
# $IPT -A INPUT -i $LAN -p tcp --dport 445 -m state --state NEW -j ACCEPT
       

#  -----=====[ MINISERV ]=====-----
# Akceptujemy miniserva na dzialanie na porcie 200
$IPT -A INPUT -i $LAN -p tcp --dport 200 -m state --state NEW -j ACCEPT

#  -----=====[ VIRTUALHOST ]=====-----
# Akceptujemy naszemu miniserverowi na dzialanie na porcie 230
$IPT -A INPUT -i $LAN -p tcp --dport 230 -m state --state NEW -j ACCEPT

# -----=====[ SWAT ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 901(SWAT) tcp i udp z sieci lokalnej.
# $IPT -A INPUT -i $INTDEV -p tcp --dport 901 -m state --state NEW -j ACCEPT
# $IPT -A INPUT -i $INTDEV -p udp --dport 901 -m state --state NEW -j ACCEPT

# -----=====[ MYSQL ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 3360 tcp  z sieci lokalnej.
#$IPT -A INPUT -i $LAN -p tcp --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT
               

# -----=====[ SYSLOGD ]=====-----
# Akceptujemy pakiety NEW na naszym porcie 514(syslogd)  udp z danych adresow.
# pozala nam to na odbieranie wiadomosci z serwerow syslogd.
# $IPT -A INPUT -s x.x.x.x -p udp --dport 514 -m state --state NEW -j ACCEPT
       

# -----=====[ INNE ]=====-----
# Wiesz co na jakim porcie siedzi i skad ma przyjmowac polaczenia...
# $IPT -A INPUT -p tcp -s z.z.z.z --dport 6666 -m state --state NEW -j ACCEPT
# wywala dziure dla uslugi na porcie 6666 tylko dla klienta z.z.z.z
       

# Odrzuca te pakiety-bez tego ftp by dluzej czekal na polaczenie
$IPT -A INPUT -p tcp --sport 1024: --dport 113 -m state --state NEW -j REJECT --reject-with icmp-port-unreachable

# -----=====[ LANCUCH OUTPUT ]=====-----
# Akceptacja wszystkiego co jest prawidlowe :-)
# Gdybys chcial blokady na OUTPUT to to masz zahashowac
$IPT -A OUTPUT -m state --state ! INVALID -j ACCEPT
       
# FILTRY NA RUCH WYCHODZACY
# Przepuszczamy podtrzymywanie polaczen przez nas na EXTDEV i INTDEV
# $IPT -A OUTPUT -o $INTDEV -m state --state ESTABLISHED,RELATED -j ACCEPT
# $IPT -A OUTPUT -o $EXTDEV -m state --state ESTABLISHED,RELATED -j ACCEPT

# Tytaj ma byc rozszcegulnienie z jakich portow na jakie porty i z jakich komputerow
# wypuszczamy pakiety. Powinienes zdecydowac sie z jakoch uslog moga kozystac twoi userzy...
       
#**DNS
#$IPT -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
#$IPT -A OUTPUT -o $EXTDEV -p udp -s $EXTIP --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
#jesli mamy w LAN taki serwer -czemu niet?
#$IPT -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
#$IPT -A OUTPUT -o $INTDEV -p udp -s $INTIP --sport 1024: --dport 53 -m state --state NEW -j ACCEPT

#**AUTH
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 113 -m state --state NEW -j ACCEPT
#jesli mamy w LAN taki serwer to czemu niet?
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 113 -m state --state NEW -j ACCEPT

#**SMTP
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 25 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 25 -m state --state NEW -j ACCEPT
               
#**POP
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 110 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 110 -m state --state NEW -j ACCEPT
       
#**IMAP
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 143 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 143 -m state --state NEW -j ACCEPT
       
#**NNTP
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 119 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 119 -m state --state NEW -j ACCEPT
       
#**TELNET
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 23 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 23 -m state --state NEW -j ACCEPT
       
#**SSH
$IPT -A OUTPUT -o $NET2 -p tcp -s $IPNET2 --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $LAN -p tcp -s $IPLAN --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $NET -p tcp -s $IPNET --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
       
#Tylko okreslony komputer moze sie zajac naszym komputerem :]
#$IPTABLES -A OUTPUT -i $EXTDEV -m mac --mac-source xx:xx:xx:xx:xx:xx -s a.b.c.d -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
               
       
#**FTP
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 21 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 21 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 20 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 20 -m state --state NEW -j ACCEPT
       
#**HTTP
$IPT -A OUTPUT -o $NET -p tcp -s $IPNET --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $LAN -p tcp -s $IPLAN --sport 1024: --dport 80 -m state --state NEW -j ACCEPT

#**HTTPS
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 443 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 443 -m state --state NEW -j ACCEPT
       
#**WHOIS
#$IPTABLES -A OUTPUT -o $EXTDEV -p tcp -s $EXTIP --sport 1024: --dport 43 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $INTDEV -p tcp -s $INTIP --sport 1024: --dport 43 -m state --state NEW -j ACCEPT
       
       
# pozwalamy na wychodzenie komunikatow ICMP
# FIXME -zrobic rozszczegulnienie jakie ICMP moga wyjsc a jakie nie
#$IPTABLES -A OUTPUT -o $INTDEV -p icmp -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -o $EXTDEV -p icmp -m state --state NEW -j ACCEPT

       
# -----=====[ LANCUCH FORWARD ]=====-----

# Ograniczenie iloci połaczeń do kazaa

##########################
#                  FORWARD DLA USERA                        #
##########################

#$IPT -t filter -A FORWARD -s 192.168.0.202/24 -d 0/0 -j ACCEPT
#$IPT -t filter -A FORWARD -s 0/0 -d 192.168.0.202/24 -j ACCEPT

#$IPT -t filter -A FORWARD -s 192.168.0.66/24 -d 0/0 -j ACCEPT
#$IPT -t filter -A FORWARD -s 0/0 -d 192.168.0.66/24 -j ACCEPT
#$IPT -t filter -A FORWARD -s 192.168.0.32/24 -d 0/0 -j ACCEPT
#$IPT -t filter -A FORWARD -s 0/0 -d 192.168.0.32/24 -j ACCEPT

#END FORWARD DLA USERA #

     
# Pozwalamy na nawiazywanie i utrzymanie polaczenia z sieci lokalnej
$IPT -A FORWARD -i $LAN -p tcp -s $IP_MASK -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $LAN -p udp -s $IP_MASK -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
       
# Przepuszczamy pakiety do sieci lokalnej
$IPT -A FORWARD -o $LAN -p tcp -d $IP_MASK -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -o $LAN -p udp -d $IP_MASK -m state --state ESTABLISHED,RELATED -j ACCEPT

# Przepuszczamy caly poprawny ruch ICMP
$IPT -A FORWARD -p icmp -m state --state ! INVALID -j ACCEPT

# -----=====[ TOS ]=====-----
# TOS(type of service) -pozwala nadac rozny piorytet pakietom.
#        niestety nie wszystkie routery obslugoja ta funkcje wiec
#        nie spodziewajcie sie cudow, ale nie zaszkodzi sprobowac.
#
#        Czy ktos przeprowadzil jekiekolwiek testy wydajnosci
#        sla roznych TOS?
#
#        Parametry zgodne z RFC 1060/1349
#       
#        typ                                dec        hex
#        Minimalize-delay                16        0x10
#        Maximalize-throughput                8        0x08
#        Maxymalize-Reliability                4        0x04
#        Minimalize-cost                        2        0x02
#        Normal-service                        0        0x00
       
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 20 -j TOS --set-tos 0x04 #ftp
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 21 -j TOS --set-tos 0x04 #ftp
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 22 -j TOS --set-tos 0x10 #ssh
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 23 -j TOS --set-tos 0x10 #telnet
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 25 -j TOS --set-tos 0x08 #smtp
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 53 -j TOS --set-tos 0x10 #dns
$IPT -t mangle -A POSTROUTING -p udp -o $NET --dport 53 -j TOS --set-tos 0x10 #dns
$IPT -t mangle -A POSTROUTING -p tcp -o $NET --dport 80 -j TOS --set-tos 0x08 #http

# -----=====[ Co robimy z reszta pakietow ]=====-----
# Reszte pakietow logujemy i usuwamy ( lancuch INPUT )
# $IPT -A INPUT -j LOG --log-prefix "IPT INPUT: "
$IPT -A INPUT -j DROP
       
# Logujemy i kasujemy reszte ( lancuch FORWARD )
# $IPT -A FORWARD -j LOG --log-prefix "IPT FORWARD: "
$IPT -A FORWARD -j DROP

# Reszte logujemy i wyrzucamy ( lancuch OUTPUT )
# $IPT -A OUTPUT -j LOG --log-prefix "IPT OUTPUT: "
$IPT -A OUTPUT -j DROP
##########################
##########################
##########################
$HTB_UP1 start
$HTB_UP2 start
$HTB_UP3 start
$VIRUS
$P2P start
$ZAPLATA
$CONNLIMIT
$STATY

echo ""
echo "  $ILE - Aktualnie komputerow czynnych"
$ECHO ""
$ECHO "Zrobione!"
$ECHO ""

##########################
;;
stop)
##########################

# -----=====[ Komunikat ekranowy ]=====-----
$ECHO "Firewall zatrzymany"

# -----=====[ Czycimy łańcuchy ]=====-----
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
$IPT -Z

# -----=====[ Polityki domylne ]=====-----
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# -----=====[ Wyłaczenie internetu w LAN ]=====-----
$ECHO "0" > /proc/sys/net/ipv4/ip_forward

# -----=====[ Usuwamy moduły z pamięci ]=====-----
$DELMODUL ip_nat_ftp
$DELMODUL ip_nat_irc
$DELMODUL ip_conntrack_irc
$DELMODUL ip_conntrack_ftp

# -----=====[ Komunikat ekranowy ]=====-----
$ECHO ""
$HTB stop
$HTB_UP1 stop
$HTB_UP2 stop
$HTB_UP3 stop
#$VIRUS
#$P2P stop
#$ZAPLATA
#$CONNLIMIT
#$STATY

##########################
;;
status0)
##########################

# -----=====[ Komunikat ekranowy ]=====-----
$CZYSC
$ECHO ""
$ECHO $"-------------------[ Table: filter ]-------------------"
$ECHO ""

# -----=====[ Status IPTABLES filter ]=====-----
$IPT -L -v

# -----=====[ Komunikat ekranowy ]=====-----
$ECHO ""
echo "  $ILE - Aktualnie komputerow czynnych"
$ECHO "Zrobione!"
$ECHO ""

##########################
;;
status1)
##########################

# -----=====[ Komunikat ekranowy ]=====-----
$CZYSC
$ECHO ""
$ECHO $"-------------------[ Table: nat ]-------------------"
$ECHO ""

# -----=====[ Status IPTABLES nat ]=====-----
$IPT -t nat -L -v

# -----=====[ Komunikat ekranowy ]=====-----
$ECHO ""
echo "  $ILE - Aktualnie komputerow czynnych"
$ECHO "Zrobione!"
$ECHO ""

##########################
;;
status2)
##########################

# -----=====[ Komunikat ekranowy ]=====-----
$CZYSC
$ECHO ""
$ECHO $"-------------------[ Table: mangle ]-------------------"
$ECHO ""

# -----=====[ Status IPTABLES mangle ]=====-----
$IPT -t mangle -L -v

# -----=====[ Komunikat ekranowy ]=====-----
$ECHO ""
echo "  $ILE - Aktualnie komputerow czynnych"
$ECHO "Zrobione!"
$ECHO ""

##########################
;;
restart)
$0 stop
$0 start
;;
*)
$ECHO ""
$ECHO "Użycie: Firewall [start|stop|restart|status0|status1|status2]"
$ECHO ""
exit 2
esac
exit 0
##########################



AdeBe - 25-05-2009 10:01
Matrim, używaj bloków code!

A odnośnie twego zaliczenia, to pewnie miałeś wiedzę podaną na wykładach. Poza tym jest jeszcze man iptables i wujek Google.



Matrim - 26-05-2009 07:46
WOW :shock: widzę że naprawdę pomagacie.....



xmaster - 26-05-2009 08:49

WOW :shock: widzę że naprawdę pomagacie..... Pomagamy, uwierz mi. Ale nie rozwiązujemy prac domowych.
Chcesz aby ktoś poświęcił swój czas - i wytłumaczył Ci to czego nie przyswoiłeś w szkole.
Chcesz abyśmy za Ciebie myśleli i szukali rozwiązań - nie tędy droga.
My dajemy wędkę - a Ty chcesz rybę i tu jest cała różnica.



lessmian2 - 26-05-2009 08:53
Bo to nie działa w tą stronę że Ty napiszesz "wytłumaczcie mi bo ja nie wiem a nie chce mi się szukać" a ktoś z forumowiczów od razu rzuci wszystko i zajmie się Twoim problemem. Spróbuj zrobić coś samodzielnie, a jak dojdziesz do momentu w którym na prawdę nie możesz sobie już sam poradzić, to wtedy zadaj pytanie na forum. Choć spróbuj sam coś zrobić, myślenie na prawdę nie boli. Jak będziesz miał problem z czymś konkretnym to znajdzie się na forum sporo osób chętnych do pomocy.

PS. Widzę że mnie już ktoś ubiegł ;-)



zulowski - 27-05-2009 11:01
przeczytaj to, dużo wyjaśni
http://rtfm.killfile.pl/

z uwzględnieniem tego
http://rtfm.killfile.pl/#praca_domowa



TooMeeK - 27-05-2009 14:30
Ja właśnie zapoznaję się z Firewall Builder - bo też jestem jeszcze "zielony"..
Polecam :)

link



grzesiek - 27-05-2009 18:30
Jak patrze na ten skrypt to nie ma tam rzeczy, której nie znalazłbyś w internecie, nawet na forum (przekierowanie portów itp.).
Więc, gdyby Ci to opisać to co to da? Do grona użytkowników Debiana dołączy na stałe kolejna osoba?
Wątpię!
Na forum nie zdobywa się wiedzy jako takiej, tu się wymienia doświadczeniami i inicjatywami.



zulowski - 31-05-2009 21:15
W sumie jak przeglądnąłem teraz na szybko ten plik konfiguracyjny, to się może przydać, można cos podpatrzeć ;)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis