Du vill alltså att bara en ipadress ska få surfa? eller vad menar du? :-)
Ska bara en i taget kunna surfa ut, eller är det en specifik dator som ska komma åt internet?
Hej på er!
Håller på å plockar lite med iptables. Nedan är min konfig.
Det jag gör är att jag routar ut trafiken från den innre nätet så att de kan surfa. Men tanken är att bara tillåtna ip-adressen ska få surfa, resten ska skickas till den lokala webservern oberoende av vilken webadress man skriver i, då måste DNS tillåtas ut på nätet.
#!/bin/sh
# Raderar och återställer brandväggen
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -F
iptables -t nat -F
iptables -X
# Aktiverar routing
echo "1" > /proc/sys/net/ipv4/ip_forward
# Tillåt kommunikation med de egna interfacen
iptables -A INPUT --in-interface lo --source 127.0.0.0/8 -j ACCEPT
iptables -A INPUT --in-interface lo -p tcp --source 192.168.120.1/32 --destination 192.168.120.1/32 -j ACCEPT
# Tillåt interna nätet att surfa in
iptables -A INPUT --source 192.168.120.0/24 -m state --state NEW -p tcp --syn --destination-port 80 -j ACCEPT
iptables -A INPUT --source 192.168.120.0/24 -m state --state ESTABLISHED,RELATED -p tcp --destination-port 80 -j ACCEPT
# SSH
iptables -A INPUT --source 0/0 -m state --state NEW -p tcp --syn --destination-port 22 -j ACCEPT
iptables -A INPUT --source 0/0 -m state --state ESTABLISHED,RELATED -p tcp --destination-port 22 -j ACCEPT
# DHCP och DNS
iptables -A INPUT --in-interface eth1 -p udp -d 0/0 --sport 67:68 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT --in-interface eth2 -p udp -d 0/0 --sport 67:68 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 --sport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ICMP trafik t.ex. PING
iptables -A INPUT --source 192.168.120.0/24 -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT --source 192.168.120.0/24 -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT --source 192.168.120.0/24 -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT --source 192.168.120.0/24 -p icmp --icmp-type 11 -j ACCEPT
# Forwarding-regler
iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.14 --source 192.168.140.0/24
iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.14
# Omdirigera alla icke icke tillåtna till den interna webservern
iptables -t nat -A PREROUTING --in-interface eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.120.1
# Spärra allt
iptables -A FORWARD -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -j DROP
Tänkte mig att jag sätter en PREROUTING för all utgeånde trafik. Sedan så ger jag den de ip-adresser som den inte ska skicka vidare och de kommer då ut på nätet. Problemet blir när det blir fler än en, för då spelar det ingen roll om regeln gäller för det ip-nummret eller inte.
iptables -t nat -A PREROUTING --in-interface eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.120.1 ! --source 192.168.120.253
Kan tänka mig att det är lite som med rättigheter i NTFS, har man väl satt DENY så spelar det ingen roll om man är medlem i en grupp som har rättigheter.
Någon som har nån idé om hur jag kan göra istället eller hur man kan gå runt detta.
Mycket tacksam om jag kan få lite idéer :)