Portál AbcLinuxu, 10. května 2025 04:51

Dotaz: pristup na neverejnu IP cez dialup

12.9.2004 16:33 edo
pristup na neverejnu IP cez dialup
Přečteno: 169×
Odpovědět | Admin
Dobry den. Mam takuto konfiguraciu:

PC1: IP - 192.168.0.1 , v internete cez dialup napr. 194.154.232.196, PC1 funguje ako gateway

PC2: IP - 192.168.0.5, pripaja sa na internet cez PC1

Chcel by som sa dostat z internetu na PC2, napr. na port 80. Je to mozne? Ak ano ako mam nastavit iptables, alebo rc.firewall, pouzivam slackware 10.0. Uz som hladal v man strankach aj som skusal rozne konfiguracie, zial bez uspechu. Dakujem
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.9.2004 17:42 ZAH
Rozbalit Rozbalit vše Re: pristup na neverejnu IP cez dialup
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to podle článku na root modifikováno na dynamické získání adresy myslím, že není problém si to upravit.
#!/bin/sh
# 
# IP adresa vnejsiho rozhrani
INET_IP=`ifconfig ppp0 | grep inet | cut -d: -f2 | cut -d' ' -f1`
INET_IFACE="ppp0"
# IP a broadcast adresa a rozhrani vnitrni site
LAN1_IP="192.168.154.1/32"
LAN1_BCAST="192.168.154.127/32"
LAN1_IFACE="eth0"
# Lokalni loopback rozhrani
LO_IFACE="lo"
LO_IP="127.0.0.1/32"
# 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
# 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 DROP
$IPTABLES -P FORWARD DROP
# Retezec PREROUTING v NAT tabulce
# Odchozi HTTP pozadavky budou presmerovany na lokalniho squida
# ve funkci transparentni proxy cache
#$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -i ! $INET_IFACE \
#  -d ! $INET_IP -j REDIRECT --to-port 3128 
# Presmerujeme port 2222 na port 22 (ssh) stanice uvnitr site 
# SSH vnitrniho servru 
$IPTABLES -t nat -A PREROUTING -p tcp --dport 2222 -d $INET_IP \
  -j DNAT --to 192.168.154.40:22
# FTP obhospodaruje vnitrni server
#IPTABLES -t nat -A PREROUTING -p tcp --dport 21 -d $INET_IP \
# -j DNAT --to 192.168.254.1:21
# POP3 obhospodaruje vnitrni server
#IPTABLES -t nat -A PREROUTING -p tcp --dport 110 -d $INET_IP \
# -j DNAT --to 192.168.254.1:110
# IMAP obhospodaruje vnitrni server
#IPTABLES -t nat -A PREROUTING -p tcp --dport 143 -d $INET_IP \
# -j DNAT --to 192.168.254.1:143
# SMTP obhospodaruje vnitrni server 
#IPTABLES -t nat -A PREROUTING -p tcp --dport 25 -d $INET_IP \
# -j DNAT --to 192.168.154.1:25
# Retezec POSTROUTING v NAT tabulce
# IP maskarada - SNAT
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP
# Pridavne retezce pro snazsi kontrolu na rezervovane adresy
# Zahazovat a logovat (max. 5 x 3 pakety za hod)
$IPTABLES -N spoofing
$IPTABLES -A spoofing -m limit --limit 5/h --limit-burst 3 \
  -j LOG --log-prefix "Rezervovana adresa: "
$IPTABLES -A spoofing -j DROP
# V tomto retezci se kontroluje, zda prichozi pakety nemaji nesmyslnou IP adresu
$IPTABLES -N IN_FW
$IPTABLES -A IN_FW -s 192.168.0.0/16 -j spoofing # rezervovano podle RFC1918
$IPTABLES -A IN_FW -s 10.0.0.0/8 -j spoofing     #   ---- dtto ----
$IPTABLES -A IN_FW -s 172.16.0.0/12 -j spoofing  #   ---- dtto ----  
$IPTABLES -A IN_FW -s 96.0.0.0/4 -j spoofing     # 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
# Paket je oznacen jako NEW, 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.254.1 --#dport ftp\
#               -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.254.1 --dport ssh \
               -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.254.1 --#dport pop3 \
#               -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#IPTABLES -A FORWARD -i $INET_IFACE -o $LAN1_IFACE -p tcp -d 192.168.254.1 --#dport imap \
#               -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# 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: "
# Retezec INPUT
# Paket je oznaceny jako NEW, ale nema nastaveny SYN flag - pryc s nim
$IPTABLES -A INPUT -i $INET_IFACE -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
# Pravidla pro povolene sluzby 
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 21 -j ACCEPT  #FTP server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 22 -j ACCEPT  #SSH server
#$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 25 -j ACCEPT  #SMTP server
$IPTABLES -A INPUT -i $INET_IFACE -p UDP --dport 53 -j ACCEPT  #DNS server UDP
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 53 -j ACCEPT  #DNS server TCP
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 80 -j ACCEPT  #WWW server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 110 -j ACCEPT #POP3 server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 143 -j ACCEPT #IMAP server
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 443 -j ACCEPT #HTTPS server
#$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 873 -j ACCEPT #rsync server
$IPTABLES -A INPUT -i $INET_IFACE -p UDP --dport 123 -j ACCEPT #NTP protokol
# Sluzbu AUTH neni dobre filtrovat pomoci DROP, protoze to muze
# vest k prodlevam pri navazovani nekterych spojeni. Proto jej
# sice zamitneme, ale vygenerujeme korektni ICMP chybovou zpravu
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 113 -m limit --limit 12/h -j LOG
$IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server
# Propoustime pouze ICMP ping
$IPTABLES -A INPUT -i $INET_IFACE -p ICMP --icmp-type echo-request -j ACCEPT
# Loopback neni radno omezovat
$IPTABLES -A INPUT -i $LO_IFACE -j ACCEPT
# Stejne jako pakety z lokalni site, jsou-li urceny pro nas
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_IP -j ACCEPT
$IPTABLES -A INPUT -i $LAN1_IFACE -d $INET_IP -j ACCEPT
# Broadcasty na lokalnim rozhrani jsou take nase
$IPTABLES -A INPUT -i $LAN1_IFACE -d $LAN1_BCAST -j ACCEPT
# MS klienti maji chybu v implementaci DHCP
$IPTABLES -A INPUT -i $LAN1_IFACE -p udp --dport 67 -j ACCEPT
# Pakety od navazanych spojeni jsou v poradku
$IPTABLES -A INPUT -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
# Vsechno ostatni je zakazano - tedy logujeme, maxim. 12x5 pkt/hod 
$IPTABLES -A INPUT -m limit --limit 12/h -j LOG --log-prefix "INPUT drop: "
# 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
# Povolime odchozi pakety, ktere maji nase IP adresy
$IPTABLES -A OUTPUT -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $LAN1_IP -j ACCEPT
$IPTABLES -A OUTPUT -s $INET_IP -j ACCEPT
# Povolime DHCP broadcasty na LAN rozhrani
$IPTABLES -A OUTPUT -o $LAN1_IFACE -p UDP --dport 68 --sport 67 -j ACCEPT
# Ostatni pakety logujeme (nemely by byt zadne takove)
$IPTABLES -A OUTPUT -j LOG --log-prefix "OUTPUT drop: "
dmnc_net avatar 4.2.2010 11:12 dmnc_net | skóre: 12 | blog: dmnc
Rozbalit Rozbalit vše Re: pristup na neverejnu IP cez dialup
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.