Mam postawiony firewal na serwerku chroniący moją sieć wewnętrzna
a oto on
Kod: Zaznacz cały
#!/bin/bash
# zmie? t? nazw? na interfejs, jaki ??czy Ciebie z Internetem "uplink"
UPLINK="eth0"
# Jeli ta maszyna jest ruterem ( i powinna przesy?a? pakiety pomi?dzy interfejsami ) powiniene powiedzie? ROUTER="yes" w innym wypadku "no"
ROUTER="yes"
# zmie? t? linie na statyczny adres IP z twojego interfejsu; dla statycznego SNAT
# "dynamic" jeli masz dynamiczny IP. Albo jeli nie potrzebujesz NAT zmie? na "" ?eby wy??czy? NAT'a
NAT="static"
UPIP="XXX"
# Zmie? nast?pn? lini? tak, ?eby uj?? wszystkie interfejsy sieciowe w??czaj?c lo
INTERFACES="lo eth0 eth1"
# zmie? poni?sza lini? tak, ?eby by?y wymienione wszystkie numery albo symbole ( z /etc/services) wszystkich serwisów, które chcesz udost?pni?
# dla internautów. Jeli nie chcesz ?adnych serwisów wy??cz je przez ""
SERVICESHOME="aaa bbb ccc"
SERVICESALL="aaa bbb http https smtp pop3s"
if [ "$1" = "start" ]; then
echo "Startowanie Firewall..."
iptables -N cerber
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#dopuszcza nas do wybranych serwisoów
iptables -A INPUT -p udp -s 192.168.1.0/24 -i eth1 --dport domain -j ACCEPT
iptables -A INPUT -p udp -i tun0 --dport domain -j ACCEPT
for x in ${SERVICESHOME}
do
iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --dport ${x} -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -i tun0 --dport ${x} -m state --state NEW -j ACCEPT
done
#dopuszcza internautów do wybranych serwisow
for x in ${SERVICESALL}
do
iptables -A INPUT -p tcp --dport ${x} -m state --state NEW -j ACCEPT
done
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -j cerber
iptables -A INPUT -p tcp -i ${UPLINK} -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -i ${UPLINK} -j REJECT --reject-with icmp-port-unreachable
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024: -s 192.168.1.0/24 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --sport 1024: -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -p icmp -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i tun0 -p tcp -m state --state NEW -j ACCEPT
iptables -A FORWARD -i tun0 -p udp -j ACCEPT
iptables -A FORWARD -i tun0 -p icmp -j ACCEPT
iptables -A FORWARD -j cerber
# wylaczamy odpowiedzi na pingi
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# ochrona przed atakiem typu Smurf
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Nie aktceptujemy pakietow "source route"
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic nasza tablice rutingu
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
# Wlaczamy ochrone przed blednymi komunikatami ICMP error
/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# wszystkie karty nie beda przyjmowaly pakietow z sieci innych niz te z tablicy rutingu
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter;
# Wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
#wy??czenie ECN
echo 0 > /proc/sys/net/ipv4/tcp_ecn
if [ "$ROUTER" = "yes" ]; then
#jeli jestemy ruterem, w??cz IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ "$NAT" = "dynamic" ]; then
#Dynamiczny IP, u?ycie maskarady
echo "W??czenie maskarady (dynamiczny ip)..."
iptables -t nat -A POSTROUTING -o ${UPLINK} -j MASQUERADE
elif [ "$NAT" != "" ]; then
#statyczny IP u?ywa SNAT
echo "W??czenie SNAT (statyczny IP)..."
iptables -t nat -A POSTROUTING -o ${UPLINK} -j SNAT --to ${UPIP}
fi
fi
# Wlaczenie przekierowanie Oracle (192.168.1.1:8080 -> 127.0.0.1:8080)
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 8080 -j DNAT --to 127.0.0.1
# Wlaczenie liczenia ruchu IN/OUT
iptables -t mangle -N ruchin
iptables -t mangle -F ruchin
iptables -t mangle -I PREROUTING -j ruchin
iptables -t mangle -A ruchin -p tcp --dport http -i eth0 -j RETURN
iptables -t mangle -A ruchin -i eth0 -j RETURN
iptables -t mangle -N ruchout
iptables -t mangle -F ruchout
iptables -t mangle -I POSTROUTING -j ruchout
iptables -t mangle -A ruchout -p tcp --sport http -o eth0 -j RETURN
iptables -t mangle -A ruchout -o eth0 -j RETURN
# Przydzial pasma
iptables -t mangle -N przydzialpasmaout
iptables -t mangle -F przydzialpasmaout
iptables -t mangle -A POSTROUTING -j przydzialpasmaout
iptables -t mangle -A przydzialpasmaout -o eth0 -s 192.168.1.32 -j MARK --set-mark 0x1
iptables -t mangle -A przydzialpasmaout -o eth0 -s 192.168.1.33 -j MARK --set-mark 0x2
iptables -t mangle -A przydzialpasmaout -p tcp -o eth0 --sport http -j MARK --set-mark 0x05
iptables -t mangle -N przydzialpasmain
iptables -t mangle -F przydzialpasmain
iptables -t mangle -A POSTROUTING -j przydzialpasmain
iptables -t mangle -A przydzialpasmain -o eth1 -d 192.168.1.32 -j MARK --set-mark 0x3
iptables -t mangle -A przydzialpasmain -o eth1 -d 192.168.1.33 -j MARK --set-mark 0x4
elif [ "$1" = "stop" ]; then
echo "Zatrzymanie Firewalla..."
iptables -F INPUT
iptables -P INPUT ACCEPT
iptables -F FORWARD
iptables -P FORWARD ACCEPT
iptables -F cerber
iptables -X cerber
iptables -t nat -D PREROUTING 1
iptables -t mangle -D PREROUTING 1
iptables -t mangle -F ruchin
iptables -t mangle -X ruchin
iptables -t mangle -D POSTROUTING 1
iptables -t mangle -F ruchout
iptables -t mangle -X ruchout
iptables -t mangle -D POSTROUTING 1
iptables -t mangle -F przydzialpasmaout
iptables -t mangle -X przydzialpasmaout
iptables -t mangle -D POSTROUTING 1
iptables -t mangle -F przydzialpasmain
iptables -t mangle -X przydzialpasmain
#wy??czenie NAT/maskarady jeli jest
iptables -t nat -F POSTROUTING
fi
Próbowałem wstawić różne kody takie jak np:
Kod: Zaznacz cały
# przekierowanie portow
iptables -t nat -A PREROUTING -p tcp -d XXX --dport ccc -j DNAT --to 192.168.1.40:ddd
iptables -A FORWARD -m state NEW -p tcp -d 192.168.1.2 --dport ccc -j ACCEPT
Może w niewłasciwym miejscu wstawiam komendy?
Z góry dzięki za pomoc bo walczę z tym trochę czasu i .... nic.
Dzięki