ik weet niet waar jij gelezen hebt dat de MASQ in de prerouting van de tabel NAT moet (makes sense, doesn't it).
Ik neem aan dat je
code:
1
| deb http://people.debian.org/~bunk/debian potato main |
in /etc/apt/sources.list hebt staan en je dus de laatste iptables hebt.
Ik zelf gebruik de volgende regels en die bevallen mij prima. Er zitten een paar regels in die elkaar overrulen, maar dat moet ik nog een keer uitzoeken...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| # Generated by iptables-save v1.2.2 on Fri Jul 13 22:16:33 2001
*nat
:PREROUTING ACCEPT [12090:1127643]
:POSTROUTING ACCEPT [2038:235871]
:OUTPUT ACCEPT [8516:645826]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri Jul 13 22:16:33 2001
# Generated by iptables-save v1.2.2 on Fri Jul 13 22:16:33 2001
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4483401:3941044010]
:block - [0:0]
-A INPUT -s 10.0.0.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -j block
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A FORWARD -j block
-A block -m state --state RELATED,ESTABLISHED -j ACCEPT
-A block -i ! ppp0 -m state --state NEW -j ACCEPT
-A block -p tcp -m tcp --dport 2064 -j ACCEPT
-A block -p tcp -m tcp --dport 22 -j ACCEPT
-A block -i ppp0 -m limit --limit 3/hour -j LOG --log-prefix "Bad packet from ppp0:"
-A block -i ! ppp0 -m limit --limit 3/hour -j LOG --log-prefix "Bad packet not from ppp0:"
-A block -i ppp0 -m state --state INVALID,NEW -j DROP
-A block -j DROP
COMMIT
# Completed on Fri Jul 13 22:16:33 2001 |
Je kunt deze toepassen door dit stukkie via stdin aan iptables-restore te voeren.
ohja, wat ie doet is het volgende:
- Al het verkeer dat naar buiten gaat over ppp0 wordt gemasqeerd (dit gebeurt bij jou in FORWARD, bij mij in PREROUTING)
- Al het verkeer dat via eth0 en ip range 10.0.0.0/24 binnen komt, wordt geaccepteerd (er vanuit gaande dat dat verkeer 'veilig' is)
- Vannuit INPUT en FORWARD wordt uiteindelijk de table 'block' doorgenomen en hier wordt al het verkeer van buitenaf (via ppp0 dus) geblocked. Dit alles wordt tevens gelogd via sylog. Er zit een limiter op zodat een portscan of ping of death niet je logfiles vol spamt. De enige 2 uitzonderingen hierop zijn poort 22 (ssh) en 2064 (distrib-net).
Succes ermee! ( en ik ga nu op muggen jacht

stom dat ik mn firewall voor mn raam niet dicht had gezet...

)
---
oh wacht, om ff je vraag te beantwoorden:
maak gewoon een cronsrippie voor root (crontab -e):
code:
1
2
3
| 0 2 * * * iptables -I INPUT -i eth0 -s 192.168.0.2 -j DROP
0 7 * * * itpables -D INPUT -i eth0 -s 192.168.0.2 -j DROP |
btw, vergeet geen enter achter de laaste regel in je cronscript

suc6