Portál AbcLinuxu, 9. srpna 2025 08:58


Dotaz: Presmerovani na apache do vnitrni site ... o5

5.8.2004 21:34 Morphik
Presmerovani na apache do vnitrni site ... o5
Přečteno: 398×
Odpovědět | Admin
Při pokusu z internetu operation time out.

Forwarding je zapnutej dival jsem se do proc/..../sys/..., webserver opravdu fachci, system fedora core 2, loguju forward a v var/log/messages jsem nic nenasel ze by bylo zahozeny na portu 80, jen 135, 445 coz je dobre... Zkousel jsem napsat fw s policy accept a jen s presmerovanim, bohuzel stejnej vysledek a proto pro uplnost prikladam cely muj(petrickuv) fw a prosim o radu jak resit tenhle problem.

#!/bin/sh
# 
# Vase IP adresa a vnejsi rozhrani
INET_IP="XXX.XXX.XXX.XXX"
INET_IFACE="ppp0"

# IP a broadcast adresa a rozhrani vnitrni site
LAN1_IP="192.168.2.10/24"
LAN2_IP="10.0.0.10/8"
LAN1_BCAST="192.168.2.255/32"
LAN2_BCAST="10.0.0.255/32"
LAN1_IFACE="eth1"
LAN2_IFACE="eth0"

# Lokalni loopback rozhrani
LO_IFACE="lo"
LO_IP="127.0.0.1/8"

# Cesta k programu iptables
IPTABLES="/sbin/iptables"

# Inicializace databaze modulu
/sbin/depmod -a

# Zavedeme moduly pro nestandardni cile
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

# Modul pro FTP prenosy
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

# Zapneme routovani paketu
echo "1" > /proc/sys/net/ipv4/ip_forward

# rp_filter na zamezeni IP spoofovani
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
   echo "1" > ${interface}
   done
   
# 
   # Implicitni politikou je zahazovat nepovolene pakety
   $IPTABLES -P INPUT DROP
   $IPTABLES -P OUTPUT ACCEPT
   $IPTABLES -P FORWARD DROP
   
# RETEZEC PREROUTING >>>

$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -d $INET_IP -j DNAT --to 192.168.2.100:80

#<<<

# RETEZEC POSTROUTING >>>

   # IP maskarada - SNATujeme
   $IPTABLES -t nat -A POSTROUTING -s $LAN1_IP -o $INET_IFACE -j SNAT --to $INET_IP
#<<<
# 
# Zahazovat a logovat (max. 5 x 3 pakety za hod)
   $IPTABLES -N logdrop
   $IPTABLES -A logdrop -m limit --limit 5/h --limit-burst 3 

-j LOG --log-prefix "Rezervovana adresa: "
   $IPTABLES -A logdrop -j DROP

# V tomto retezci se kontroluje, zda prichozi pakety nemaji nesmyslnou IP adresu
# Ochrana proti ip spoofingem...

   $IPTABLES -N IN_FW
   $IPTABLES -A IN_FW -s 192.168.0.0/16 -j logdrop # rezervovano podle RFC1918
   $IPTABLES -A IN_FW -s 10.0.0.0/8 -j logdrop     #   ---- dtto ----
   $IPTABLES -A IN_FW -s 172.16.0.0/12 -j logdrop  #   ---- dtto ----  
   $IPTABLES -A IN_FW -s 96.0.0.0/4 -j logdrop     # rezervovano podle IANA
# ... dalsi rezervovane adresy mozno doplnit podle 
#       http://www.iana.com/assignments/ipv4-address-space

# Retezec pro stanoveni limitu prichozich SYN konexi (ochrana pred SYN floods)
# propusti pouze 4 SYN segmenty/sec
   $IPTABLES -N syn-flood
   $IPTABLES -A syn-flood -m limit --limit 1/s 
--limit-burst 4 -j RETURN
   $IPTABLES -A syn-flood -j DROP

# TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
# pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
   $IPTABLES -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A PREROUTING -p tcp --sport ftp-data -j TOS --set-tos 
Maximize-Throughput
# 
# RETEZEC FORWARD >>>

   # Navazovani spojeni ala Microsoft -
   # Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
   $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

   # Nechceme rezervovane adresy na internetovem rozhrani
   $IPTABLES -A FORWARD -i $INET_IFACE -j IN_FW

   # Umoznit presmerovani portu na stanici dovnitr site
   $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.2.100 --dport 80 -j ACCEPT

   # Povolime neomezene forwardovani z lokalni site, opacne jen existujici
   # spojeni
   $IPTABLES -A FORWARD -i $LAN2_IFACE -j ACCEPT
   $IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT
   $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state \
        --state ESTABLISHED,RELATED -j ACCEPT

# <<<

# RETEZEC INPUT >>>
   
# Navazovani spojeni ala Microsoft -
# Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Nejprve se zbavime nezadoucich adres
$IPTABLES -A INPUT -i $INET_IFACE -j IN_FW

# Odfiltrovat pokusy o syn-flooding
$IPTABLES -A INPUT -i $INET_IFACE -p tcp --syn -j syn-flood

# Odfiltrovat pokusy o zahlceni icmp
$IPTABLES -A INPUT -i $INET_IFACE -p icmp -j syn-flood

   # Vytvorime novy chain pro prehlednost tcp_segmenty ktere jsou pristupne z 
   # internetu
   $IPTABLES -N tcp_segmenty
   $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_segmenty
#   $IPTABLES -A tcp_segmenty -p TCP --dport 21 -j ACCEPT   #FTP server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 22 -j ACCEPT   #SSH server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 25 -j ACCEPT   #SMTP server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 53 -j ACCEPT   #DNS server
   $IPTABLES -A tcp_segmenty -p TCP --dport 80 -j ACCEPT   #WWW server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 110 -j ACCEPT  #POP3 server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 143 -j ACCEPT  #IMAP server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 443 -j ACCEPT  #HTTPS server
#   $IPTABLES -A tcp_segmenty -p TCP --dport 873 -j ACCEPT  #rsync server

   $IPTABLES -A tcp_segmenty -p TCP --dport 113 -j REJECT  # 

Sluzbu AUTH neni dobre zahazovat takze zdvorile odmitneme
  
 # Vytvorime novy chain pro prehlednost udp_pakety

   $IPTABLES -N udp_pakety
   $IPTABLES -A INPUT -p UDP -i $LAN1_IFACE -j udp_pakety
#   $IPTABLES -A udp_pakety -p UDP --dport 53 -j ACCEPT   #DNS server

   # Povolime jen uzitecne ICMP datagramy

   $IPTABLES -A INPUT -p ICMP -i $INET_IFACE --icmp-type 0 -j ACCEPT
   $IPTABLES -A INPUT -p ICMP -i $INET_IFACE --icmp-type 3 -j ACCEPT
   $IPTABLES -A INPUT -p ICMP -i $INET_IFACE --icmp-type 8 -j ACCEPT
#   $IPTANLES -A INPUT -p ICMP -i $INET_IFACE --icmp-type 11 -j ACCEPT

   # Ochrana proti DoS utokum tim ze dovolime pouze 5 za sekundu
   $IPTABLES -A INPUT -p icmp --icmp-type echo-request \
       -m limit --limit 1/s --limit-burst 5 -j ACCEPT   

   # Povolime pakety z lokalni LAN1,LAN2,Lo, opacne z internetu jen 
   # od jiz navazanych spojeni
   $IPTABLES -A INPUT -p ALL -i $LAN1_IFACE -j ACCEPT
   $IPTABLES -A INPUT -p ALL -i $LAN2_IFACE -j ACCEPT
   $IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
   $IPTABLES -A INPUT -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
   
   # MS klienti maji chybu v implementaci DHCP
   $IPTABLES -A INPUT -i $LAN1_IFACE -p udp --dport 67 -j ACCEPT

   # Vsechny ostatni prichozi datagramy logujeme
   $IPTABLES -A INPUT -j LOG
   $IPTABLES -A FORWARD -j LOG
   # ---------------------------------------------------------

# RETEZEC OUTPUT >>>

   # TOS flagy slouzi k optimalizaci datovych cest. Pro ssh, ftp a telnet
   # pozadujeme minimalni zpozdeni. Pro ftp-data zase maximalni propostnost
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ssh -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ssh -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport ftp -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --dport telnet -j TOS --set-tos 
Minimize-Delay
   $IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp --sport ftp-data -j TOS --set-tos 
Maximize-Throughput
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.8.2004 08:28 merlik | skóre: 13 | blog: merlik
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nečetl jsem ten firewall celý, takže berte můj příspěvek jen jako takovej "co kdyby".

Připojení k netu je přes ppp, což by mohlo být ADSL a u toho jsem slyšel (osobně jsem to nepotkal), že je možnost filtrace provozu u providera. Takže co kdyby nebyl problém na Vaší straně (v tomhle firewallu)?
I cesta může být cíl.
6.8.2004 09:11 Jack | skóre: 21 | blog: Od_vseho_trochu | Brno
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
Taky jsem o tom slysel, kamarad si stezoval, ze mu kvuli tomu nejde posilat soubory pres ICQ... Ale nejak me uniklo, co se ma do toho co s.... kdyz zabespeni vlastniho PC je veci uzivatele a ne aby ho provider omezoval a k tomu jeste ADSL:-)
6.8.2004 21:00 Morphik
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
No tak tim to urcite neni :), to o cem mluvite je zrejme filtrovani nerezervovanych portu ve smyslu odfiltrovani p2p spojeni.

Ja osobne to neuznavam a pokud bych mel takovaj orezanej inet tak bych se svym isp rozvazal smlouvu. Je to krok lidi, ktery bud nejsou schopni nebo maji strach z rizeni provozu.
7.8.2004 12:01 ZAH
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vidím že opisujeme ze stejných zdrojů, ale nějak nemohu najít sekci forward. Ja tam mám toto.
# Routing zevnitr site ven neomezujeme
$IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT

# Routing zvenku dovnitr pouze pro navazana spojeni (stavovy firewall)
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE \
  -m state --state ESTABLISHED,RELATED -j ACCEPT

# Ostatni pakety budou zahozeny, tak je budeme logovat (12 x 5 pkt/hod)
$IPTABLES -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "forward drop: "
a asi bych zevšeobecnil maškarádu.

# IP maskarada - SNAT
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP
7.8.2004 21:01 Morphik
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
Retezec FORWARD

# Navazovani spojeni ala Microsoft - # Paket navazuje spojeni, ale nema nastaveny priznak SYN, pryc s nim $IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

# Nechceme rezervovane adresy na internetovem rozhrani

$IPTABLES -A FORWARD -i $INET_IFACE -j IN_FW

# Umoznit presmerovani portu na stanici dovnitr site

$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.2.100 --dport 80 -j ACCEPT

# Povolime neomezene forwardovani z lokalni site, opacne jen existujici spojeni

$IPTABLES -A FORWARD -i $LAN2_IFACE -j ACCEPT $IPTABLES -A FORWARD -i $LAN1_IFACE -j ACCEPT

$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -m state \ --state ESTABLISHED,RELATED -j ACCEPT

Toto je to co hledate... $IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.2.100 --dport 80 -j ACCEPT

PREROUTING je nahore...

Maskaradu zjednodusit nemuzu, protoze nechci natovat LAN2_IFACE...
18.8.2004 21:59 Morphik
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
No tak se vsem omlouvam, protoze z internetu to lidem funguje ale z nasi zdrojovy ip to nefunguje. Proc zatim nevim
dmnc_net avatar 4.2.2010 11:13 dmnc_net | skóre: 12 | blog: dmnc
Rozbalit Rozbalit vše Re: Presmerovani na apache do vnitrni site ... o5
Odpovědět | | Sbalit | Link | Blokovat | Admin
kdo by referoval ke skriptu firewallu, tak POZOR, obrovsky pool 96.0.0.0/4 uz nejakou dobu neni rezervovany (http://www.iana.com/assignments/ipv4-address-space) a nektere rozsahy jsou dokonce pouzity na uzemi CR.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.