Ok met een hoop lezen/klooien en de voorbeelden op deze LinuxGuruz en Hakkefest heb ik een aardig iptables script gemaakt. 
Deze firewall met transparant proxy server is voor een bedrijf maar voorlopig test ik hem nog even thuis met een adsl modem.
Opzich werkt het goed maar toch vraag ik mij af of ik het wel goed doe. staat er met het volgende script niet teveel open ?
De bedoeling is: een redelijke security maar het belangrijkste is de toegang vanaf de pc's in het netwerk beperken tot tot www, email e.d. Maar de pc's mogen wel van alle services op de linux server gebruik maken.
In de meeste scripts wordt iptables -input LAN drop gebruikt en men zet daarna de juiste portjes open, dit heb ik dus niet gedaan ipv hiervan heb ik met iptables -A forward opgegeven wat vanaf het lan naar internet mag.
Mijn vraag aan de experts
, is de aanpak in dit script goed of zit ik het toch totaal verkeerd te doen ??
Mijn met hoop zweet en tranen
gemaakte script:
echo OK run flush script en set firewall/NAT op default rules.
/etc/ah/fire/flush
echo OK load variable settings
TCP_SERVICES="80" # Porten die vanaf internet toegankelijk zijn.
ipt=iptables
echo OK Load modules
modprobe ip_nat_ftp #nodig om te kunnen ftp'n
modprobe ip_conntrack_ftp #nodig weet niet waarvoor
echo OK enable nat
#PREROUTING behandel inkomende packets
#POSTROUTING behandel uitgaande packets
ipt -t nat -F PREROUTING
ipt -t nat -F POSTROUTING
echo OK Kernel guard against SYN flooding
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo OK firewall INPUT rules. Regels voor inkomende packets
ipt -P INPUT DROP # standaard policy DROP all packets
ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ipt -A INPUT -i ppp0 -m state --state NEW -p tcp -m multiport \
-dport $TCP_SERVICES -j ACCEPT
#geen beperking op de loopback en intern netwerk.
ipt -A INPUT -i eth0 -m state --state NEW -j ACCEPT
ipt -A INPUT -i lo -m state --state NEW -j ACCEPT
echo OK log dropped packets
ipt -A INPUT -j LOG --log-prefix "FW_INPUT"
echo OK firewall FORWARD rules Wat mag vanaf het LAN naar internet.
ipt -P FORWARD DROP #Standaard policy is altijd drop all packets
echo OK allow traffic van eth0 naar ppp0
ipt -A FORWARD -i eth0 -o ppp0 -j ACCEPT
echo OK forward www op 443 secure www
#port 80 gaat naar een transparante proxy
ipt -A FORWARD -i ppp0 -p tcp --sport 443 -m state --state \ ESTABLISHED,RELATED -j ACCEPT
echo OK allow ftp
ipt -A FORWARD -i ppp0 -p tcp --sport 20 -m state --state
ESTABLISHED,RELATED -j ACCEPT
ipt -A FORWARD -i ppp0 -p tcp --sport 21 -m state --state
ESTABLISHED,RELATED -j ACCEPT
echo OK allow telnet
ipt -A FORWARD -i ppp0 -p tcp --sport 23 -m state --state
ESTABLISHED,RELATED -j ACCEPT
echo OK allow smtp
iptables -A FORWARD -i ppp0 -p tcp --sport 25 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo OK allow icmp pingen
iptables -A FORWARD -i ppp0 -p icmp -m state --state
ESTABLISHED,RELATED -j ACCEPT
#log dropped packets
ipt -A FORWARD -j LOG --log-prefix "FW_FORWARD"
###############################################
echo OK firewall OUTPUT rules #uitgaande packets
ipt -P OUTPUT ACCEPT #deze mag wel standaard op ACCEPT staan
###################################################
echo OK NAT rules
#interface masquerade en speciale behandeling voor bepaalde packets.
ipt -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo OK Enable transparant proxy
#stuur al het www verkeer naar onze proxy
ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
#websites die niet op portje 80 zitten ook in
#de proxy proppen vraag me af of dit wel nut heeft.
ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j
REDIRECT --to-port 3128
###################################################
#diverse zaken..
echo OK Start forwarding #voor het geval deze nog uit stond.
echo 1 > /proc/sys/net/ipv4/ip_forward
exit 0
Deze firewall met transparant proxy server is voor een bedrijf maar voorlopig test ik hem nog even thuis met een adsl modem.
Opzich werkt het goed maar toch vraag ik mij af of ik het wel goed doe. staat er met het volgende script niet teveel open ?
De bedoeling is: een redelijke security maar het belangrijkste is de toegang vanaf de pc's in het netwerk beperken tot tot www, email e.d. Maar de pc's mogen wel van alle services op de linux server gebruik maken.
In de meeste scripts wordt iptables -input LAN drop gebruikt en men zet daarna de juiste portjes open, dit heb ik dus niet gedaan ipv hiervan heb ik met iptables -A forward opgegeven wat vanaf het lan naar internet mag.
Mijn vraag aan de experts
Mijn met hoop zweet en tranen
echo OK run flush script en set firewall/NAT op default rules.
/etc/ah/fire/flush
echo OK load variable settings
TCP_SERVICES="80" # Porten die vanaf internet toegankelijk zijn.
ipt=iptables
echo OK Load modules
modprobe ip_nat_ftp #nodig om te kunnen ftp'n
modprobe ip_conntrack_ftp #nodig weet niet waarvoor
echo OK enable nat
#PREROUTING behandel inkomende packets
#POSTROUTING behandel uitgaande packets
ipt -t nat -F PREROUTING
ipt -t nat -F POSTROUTING
echo OK Kernel guard against SYN flooding
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo OK firewall INPUT rules. Regels voor inkomende packets
ipt -P INPUT DROP # standaard policy DROP all packets
ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ipt -A INPUT -i ppp0 -m state --state NEW -p tcp -m multiport \
-dport $TCP_SERVICES -j ACCEPT
#geen beperking op de loopback en intern netwerk.
ipt -A INPUT -i eth0 -m state --state NEW -j ACCEPT
ipt -A INPUT -i lo -m state --state NEW -j ACCEPT
echo OK log dropped packets
ipt -A INPUT -j LOG --log-prefix "FW_INPUT"
echo OK firewall FORWARD rules Wat mag vanaf het LAN naar internet.
ipt -P FORWARD DROP #Standaard policy is altijd drop all packets
echo OK allow traffic van eth0 naar ppp0
ipt -A FORWARD -i eth0 -o ppp0 -j ACCEPT
echo OK forward www op 443 secure www
#port 80 gaat naar een transparante proxy
ipt -A FORWARD -i ppp0 -p tcp --sport 443 -m state --state \ ESTABLISHED,RELATED -j ACCEPT
echo OK allow ftp
ipt -A FORWARD -i ppp0 -p tcp --sport 20 -m state --state
ESTABLISHED,RELATED -j ACCEPT
ipt -A FORWARD -i ppp0 -p tcp --sport 21 -m state --state
ESTABLISHED,RELATED -j ACCEPT
echo OK allow telnet
ipt -A FORWARD -i ppp0 -p tcp --sport 23 -m state --state
ESTABLISHED,RELATED -j ACCEPT
echo OK allow smtp
iptables -A FORWARD -i ppp0 -p tcp --sport 25 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo OK allow icmp pingen
iptables -A FORWARD -i ppp0 -p icmp -m state --state
ESTABLISHED,RELATED -j ACCEPT
#log dropped packets
ipt -A FORWARD -j LOG --log-prefix "FW_FORWARD"
###############################################
echo OK firewall OUTPUT rules #uitgaande packets
ipt -P OUTPUT ACCEPT #deze mag wel standaard op ACCEPT staan
###################################################
echo OK NAT rules
#interface masquerade en speciale behandeling voor bepaalde packets.
ipt -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo OK Enable transparant proxy
#stuur al het www verkeer naar onze proxy
ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT
--to-port 3128
#websites die niet op portje 80 zitten ook in
#de proxy proppen vraag me af of dit wel nut heeft.
ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j
REDIRECT --to-port 3128
###################################################
#diverse zaken..
echo OK Start forwarding #voor het geval deze nog uit stond.
echo 1 > /proc/sys/net/ipv4/ip_forward
exit 0