IPTables + squid

Post Reply
Message
Author
dhartmann
Posts: 25
Joined: 17. Sep 2004 10:18

IPTables + squid

#1 Post by dhartmann »

Hi Prolinux User,

baue grad ein gateway mit transparent squid und iptables auf. Funktioniert auch soweit.

Wenn ich einen Portscan mit nmap -v -sS -P0 $IP durchführe, ist von aussen noch der port 80 offen, muss der für squid offen sein?
Desweiteren habe ich gelesen das diverse tauschbörsen auch über p80 tunneln können, wie kann man das unterbinden? Und wie sicher ist die unten aufgelistete iptable configuration?

Bin noch nicht so fitt in iptables. benutze folgende iptables.

#!/bin/sh
# Einfache Paketfilter-Firewall für LANs
# optional: ssh-Fernwartungszugriff vom Internet aus
# optional: Support für transparenten Squid-HTTP-Proxy

# hier das externe Interface definieren
# Modem/DSL arbeitet mit ppp0, ppp1, ...
# EXTIF=ppp+
# ISDN arbeitet mit ippp0, ippp1, ...
# EXTIF=ippp+
EXTIF=eth1+

# meine eigene (interne) IP
# kann man mit ifconfig ermitteln, z.B. eth1 -> 10.10.10.1 oder eben 192.168.100.1
MYIP=xxx.xxx.xxx.xxx

# "gefälschte" IP-Adressen verhindern:
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

# setzen der Policy der Standard-Regelketten
# von aussen nach innen wird eine "deny all, allow some"-Strategie verwendet
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# löschen aller bereits definierten Regeln (flush)
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

# neue Regelkette "no-conns-from-extif" anlegen
iptables -N no-conns-from-extif
# falls es "no-conns-from-extif" schon gab: leeren per flush
iptables -F no-conns-from-extif


# icmp-Pakete (z.B. ping) generell zulassen (nur für nicht-DoS-gefährdete Anwendung)
iptables -A no-conns-from-extif -p icmp -j ACCEPT

# lo-Interface zulassen
iptables -A no-conns-from-extif -i lo -j ACCEPT


# Pakete, die zu bereits bestehenden Verbindungen gehören (oder damit zusammenhängen) erlauben
iptables -A no-conns-from-extif -m state --state ESTABLISHED,RELATED -j ACCEPT

# neue Verbindungen nur dann erlauben, wenn sie NICHT über das externe Interface reinkommen
iptables -A no-conns-from-extif -m state --state NEW -i ! $EXTIF -j ACCEPT



# unerwünschte Pakete in's Log schreiben (max. aber 1 Eintrag pro Sekunde, um DoS zu verhindern)
iptables -A no-conns-from-extif -i $EXTIF -m limit --limit 1/sec -j LOG --log-prefix "Bad packet from $EXTIF :"
iptables -A no-conns-from-extif -i ! $EXTIF -m limit --limit 1/sec -j LOG --log-prefix "Bad packet not from $EXTIF :"

# ... und verwerfen (würde auch ohne Regel durch Policy passieren).
iptables -A no-conns-from-extif -j DROP

# PaketFilter-Regelkette für hereinkommende und durchlaufende Pakete anspringen.
iptables -A INPUT -j no-conns-from-extif
iptables -A FORWARD -j no-conns-from-extif

# Modul für NAT laden
modprobe iptable_nat

# Masquerading (spezielle Form von SNAT) aktivieren
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

# IP-Forwarding einschalten
echo 1 > /proc/sys/net/ipv4/ip_forward

# optional:
# sende hereinkommende Port-80 Web-Zugriffe auf unseren (transparenten) Squid Proxy
iptables -t nat -A PREROUTING -p tcp -d ! $MYIP --dport 80 -j REDIRECT --to-port 3128
# bitte beachten: Squid muss entsprechend konfiguriert werden, damit er weiss,
# dass er ein transparenter Proxy ist!
# squid.conf (für Squid v2.3):
# http_port 3128
# httpd_accel_host virtual
# httpd_accel_port 80
# httpd_accel_with_proxy on
# httpd_accel_uses_host_header on
#
# Squid v2.4 benötigt zusätzlich diese Zeile:
# httpd_accel_single_host off

MFG

d.hartmann

edit:
ich habe mal deine echte ip rausgenommen, also
MYIP=xxx.xxx.xxx.xxx
statt dessen, ich denke das sollte dir recht sein 8)
chlor

chlor

#2 Post by chlor »

hi,

ich empfehle dir jetzt einfach mal dieses buch
http://www.squid-handbuch.de/hb/index.html
und dieses howto
http://www.netfilter.org/documentation/
vielleicht kommst du damit zu einer lösung.
> Und wie sicher ist die unten aufgelistete iptable configuration?
und dafür nmap http://www.insecure.org/nmap/
welcher in deiner distri hoffentlich dabei ist.

bis denn

dhartmann
Posts: 25
Joined: 17. Sep 2004 10:18

Squid iptables

#3 Post by dhartmann »

Danke erstmal für die links, das ist genau das was ich gesucht habe.

Ich nutze debian Sarge und nmap ist mir bekannt habe auch schon portscans durchgeführt. Was mich wundert ist das port 80 offen ist? Ich habe transparent proxy konfiguriert (prerouting) hängt das damit zusammen?

Post Reply