Portál AbcLinuxu, 26. dubna 2024 02:16
IPTABLES=/usr/sbin/iptables $IPTABLES -X $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -F POSTROUTING -t nat $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP ETH_NET=eth0 # sitovka do netu ETH_LAN=eth1 # sitovka do vnitrni site IP_NET=1.2.3.4 # moje verejna IP $IPTABLES -t nat -A PREROUTING -i $ETH_NET -s 192.168.0.0/16 -j DROP $IPTABLES -t nat -A PREROUTING -i $ETH_NET -s 172.16.0.0/12 -j DROP $IPTABLES -t nat -A PREROUTING -i $ETH_NET -s 10.0.0.0/8 -j DROP $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A INPUT -i $ETH_NET -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p tcp --dport 110 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p tcp --dport 110 -j ACCEPT $IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p udp --dport 110 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p udp --dport 110 -j ACCEPT $IPTABLES -A INPUT -i $ETH_LAN -p tcp --dport 3128 -j ACCEPT $IPTABLES -A INPUT -i $ETH_LAN -p udp --dport 3128 -j ACCEPT $IPTABLES -A POSTROUTING -t nat -s 192.168.1.0/255.255.255.0 -o $ETH_NET -j MASQUERADENevím kde mám chybu - z vnitřní síťe je povolený squid proxy (kurzíva) a to funguje v pořádku. Taky mám možná trochu zmatek v udp paketech, nevím kde je mám povolit a kdy nemusím Děkuji za rady
$IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p udp --dport 110 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPTPřidal jsem tam to NEW a stále to bohužel nefunguje. Jestli je to podstatné tak ve vnitřní síťi je Win XP a na poštu Thunderbird. Díky za odpověd
# Inicializace databaze modulu /sbin/depmod -a # Zavedeme moduly pro nestandardni cile /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADEpovolit routování
# Zapneme routovani paketu echo "1" > /proc/sys/net/ipv4/ip_forwardPro první pokusy povolit vše Potom nasadit omezení a prohlížet log.
# Implicitni politikou je zahazovat nepovolene pakety $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWRD ACCEPTPovolit maškarádu
# IP maskarada - SNAT $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IPVyzkoušet a ozvat se. Jinak squid je proxy server a ten potřebuje pouze přístup k netu nikoliv routování.
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $ETH_LAN -o $ETH_NET -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 113 -j REJECT
IPTABLES=/usr/sbin/iptables /sbin/depmod -a /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_MASQUERADE ETH_NET=eth0 # sitovka do netu ETH_LAN=eth1 # sitovka do vnitrni site IP_NET=1.2.3.4 # moje verejna IP $IPTABLES -X $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -F POSTROUTING -t nat $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $ETH_LAN -o $ETH_NET -p tcp --dport 110 -j ACCEPT $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A INPUT -i $ETH_LAN -j ACCEPT $IPTABLES -A INPUT -i $ETH_NET -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -i $ETH_NET -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT $IPTABLES -A INPUT -i $ETH_NET -p udp -d $IP_NET --dport 9176 -j ACCEPT $IPTABLES -A INPUT -i $ETH_NET -p tcp -d $IP_NET --dport 9176 -j ACCEPTA přijímání pošty stále nefunguje, když změním policy u FORWARD na accept, tak funguje. Díky
cat /proc/sys/net/ipv4/ip_forward 1
$IPTABLES -A FORWARD -i $ETH_LAN -p tcp --dport 110 -j ACCEPTAle stále to nefunguje... Dík
tcpdump
na vnitřním a vnějším rozhraní, případně zapnout logování všech zahozených paketů, abyste zjistil, kde to mizí. Nebude to nějaký trapný problém typu nefunkčních DNS dotazů?
$IPTABLES -t nat -A POSTROUTING -o $ETH_NET -j SNAT --to $IP_NETDíky moc všem za pomoc! Kdybyste někdo věděli o nějaké hezké knížce o iptables (nejradši česky, pak anglicky) rád bych si ji koupil. Mějte se
Pokud to máte opravdu takto, squid vám na vnitřním rozhraní nemá šanci fungovat, protože propustíte pouze SYN paket (ESTABLISHED pouštíte jen zvenku). O dalších chybách (v tučné části vždy druhé pravidlo zahrnuje všechno co první, takže první je zbytečné) už se tu mluvilo.
A jedna metodická poznámka: názvy tabulek naznačují, k čemu slouží. Tedy filter
k filtraci paketů, nat
k překladu adres a mangle
k dalším manipulacím s pakety (které nespadají pod NAT). Filtrovat v tabulce nat
můžete sice v zásadě také, ale není to příliš šťastné.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.