Ik ben een iptables prutser, maar ben momenteel even aan het rommelen met een setupje.
Uiteraard heb ik de manual gelezen en gegoogled maar meestal gaat het om inkomende verbindingen.
De setup:
KVM Host op een 192.168.1.0/24 netwerk, en een los virtueel netwerk in KVM (192.168.122) , dat geNAT wordt door de host naar het 192.168.1.0 net.
Nu ben ik bezig met malware analyse op dat 122 netwerkje, waarbij ik nogal vervelende meuk draai in windows VMetjes. Ik wil per se voorkomen dat deze gaan lopen rotzooien op mijn netwerk/het internet, en daarom wil ik alleen verkeer op poorten 80 en 443 naar buiten toestaan (SMB/irc/smtp echt dicht dus
) vanaf dat netwerk.
Met wat tweaken kom ik bij deze config uit vanuit iptables-save:
Alleen wil ik dus nu alleen die twee poorten naar buiten toe allowen.... dat is niet zo lastig in iptables zelf dacht ik:
maar... dit past niet in mijn iptables-save (ja ik kan op zich die rules toepassen en dan weer de config dumpen) en het werkt niet:
Ik kan nog steeds naar buiten connecten op poort 80 (woei, dat is 1) maar ik kan ook telnetten naar een router op poort 23, wat uiteraard niet de bedoeling is.
Kan iemand me vertellen wat hier mis gaat?
Uiteraard heb ik de manual gelezen en gegoogled maar meestal gaat het om inkomende verbindingen.
De setup:
KVM Host op een 192.168.1.0/24 netwerk, en een los virtueel netwerk in KVM (192.168.122) , dat geNAT wordt door de host naar het 192.168.1.0 net.
Nu ben ik bezig met malware analyse op dat 122 netwerkje, waarbij ik nogal vervelende meuk draai in windows VMetjes. Ik wil per se voorkomen dat deze gaan lopen rotzooien op mijn netwerk/het internet, en daarom wil ik alleen verkeer op poorten 80 en 443 naar buiten toestaan (SMB/irc/smtp echt dicht dus
Met wat tweaken kom ik bij deze config uit vanuit iptables-save:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| root@leiden:/var/lib/libvirt/images# cat /etc/iptables # Generated by iptables-save v1.4.12 on Mon Dec 17 22:21:14 2012 *nat :PREROUTING ACCEPT [612:100300] :INPUT ACCEPT [37:10988] :OUTPUT ACCEPT [156:20544] :POSTROUTING ACCEPT [461:45335] -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -j MASQUERADE -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE COMMIT # Completed on Mon Dec 17 22:21:14 2012 # Generated by iptables-save v1.4.12 on Mon Dec 17 22:21:14 2012 *mangle :PREROUTING ACCEPT [4307843:4590223211] :INPUT ACCEPT [85302:129886404] :FORWARD ACCEPT [4222935:4460372846] :OUTPUT ACCEPT [67197:236431336] :POSTROUTING ACCEPT [4290160:4696810832] -A POSTROUTING -o virbr1 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT # Completed on Mon Dec 17 22:21:14 2012 # Generated by iptables-save v1.4.12 on Mon Dec 17 22:21:14 2012 *filter :INPUT ACCEPT [85292:129883054] :FORWARD ACCEPT [4222943:4460381950] :OUTPUT ACCEPT [67197:236431336] -A INPUT -i virbr1 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr1 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr1 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr1 -p tcp -m tcp --dport 67 -j ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT -A FORWARD -d 192.168.100.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.100.0/24 -i virbr1 -j ACCEPT -A FORWARD -i virbr1 -o virbr1 -j ACCEPT -A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable COMMIT # Completed on Mon Dec 17 22:21:14 2012 |
Alleen wil ik dus nu alleen die twee poorten naar buiten toe allowen.... dat is niet zo lastig in iptables zelf dacht ik:
iptables -A FORWARD -s 192.168.122.0/24 -i virbr0 -j REJECT iptables -A FORWARD -s 192.168.122.0/24 -d 80 -i virbr0 -j ACCEPT iptables -A FORWARD -s 192.168.122.0/24 -d 443 -i virbr0 -j ACCEPT
maar... dit past niet in mijn iptables-save (ja ik kan op zich die rules toepassen en dan weer de config dumpen) en het werkt niet:
Ik kan nog steeds naar buiten connecten op poort 80 (woei, dat is 1) maar ik kan ook telnetten naar een router op poort 23, wat uiteraard niet de bedoeling is.
Kan iemand me vertellen wat hier mis gaat?