Portál AbcLinuxu, 30. prosince 2025 14:35
#!/bin/sh tc qdisc del dev ppp0 root tc qdisc add dev ppp0 root handle 1:0 htb default 14 tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 600kbit tc class add dev ppp0 parent 1:0 classid 1:11 htb rate 128kbit ceil 500kbit tc class add dev ppp0 parent 1:0 classid 1:12 htb rate 128kbit ceil 256kbit tc class add dev ppp0 parent 1:0 classid 1:13 htb rate 128kbit ceil 256kbit tc class add dev ppp0 parent 1:0 classid 1:14 htb rate 128kbit ceil 256kbit tc qdisc add dev ppp0 parent 1:11 handle 11:0 sfq perturb 10 tc qdisc add dev ppp0 parent 1:11 handle 12:0 sfq perturb 10 tc qdisc add dev ppp0 parent 1:11 handle 13:0 sfq perturb 10 tc qdisc add dev ppp0 parent 1:11 handle 14:0 sfq perturb 10 iptables -t mangle -A POSTROUTING -j MARK --set-mark 4 iptables -t mangle -A POSTROUTING -d 192.168.0.36 -j MARK --set-mark 1 iptables -t mangle -A POSTROUTING -d 192.168.0.18 -j MARK --set-mark 2 tc filter ad dev ppp0 parent 1:0 protocol ip handle 1 fw flowid 1:11 tc filter ad dev ppp0 parent 1:0 protocol ip handle 2 fw flowid 1:12Muj firewall:
#!/bin/sh
if ping -w 3 10.0.0.138 ; then
pptp 10.0.0.138
fi
route del default gw `route -n|awk '$1=="0.0.0.0" {print $2}'|head -1`
route add default gw `ifconfig ppp0|grep "P-t-P"|awk '{print $3}'|cut -d ':' -f2`
IPTABLES=iptables
PATH="/sbin"
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
iptables -X
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -X
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t mangle -X
iptables -t mangle -F OUTPUT
iptables -t mangle -F PREROUTING
#Zapneme routovani packetu
echo "1" > /proc/sys/net/ipv4/ip_forward
# IMPLICITNI POLITIKA> ZAHAZUJEME VSECHNY PACKETY
#Zamezeni spoofingu
#for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo "1" > ${interface}
#done
#MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to 200.200.200.200
#Tos flagy slouzi k optimalizaci datovych cest. Pro ssh,ftp a telnet
iptables -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
iptables -t mangle -A PREROUTING -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
iptables -N logdrop
iptables -F logdrop
iptables -A logdrop -m limit --limit 5/h --limit-burst 3 -j LOG --log-prefix "Log droop :" --log-level 6
iptables -A logdrop -j DROP
#kontrola nesmyslne IP
iptables -N IN_FW
iptables -F IN_FW
iptables -A IN_FW -s 172.16.0.0/12 -j logdrop
#ochrana pred synfloodingem
##iptables -N syn-flood
##iptables -F syn-flood
##iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
##iptables -A syn-flood -j DROP
#Paket je sice oznacen jako new, ale nema nastavenz priznak SYN pryc s nim
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#Routing zevnitr ven neomezujem
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -j ACCEPT
# routing zvenku dovnitr pouze pro navazana spojeni
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Sluzba AUTH se nefiltruje DROP,ale genuruje se ICMP chybova zprava
iptables -A INPUT -i ppp0 -p tcp --dport 113 -j REJECT --reject-with tcp-reset
#ostatni packety zahozeny
iptables -A FORWARD -m limit --limit 12/h -j LOG --log-prefix "FORWARD drop: " --log-level 6
#Retezce INPUT
iptables -A INPUT -i ppp0 -p tcp ! --syn -m state --state NEW -j DROP
#LOOPBACK
iptables -A INPUT -p icmp -i lo -j ACCEPT
#Loopback neni radno omezovat
iptables -A INPUT -i lo -j ACCEPT
#Zbavime se nezadoucich adres
iptables -A INPUT -j IN_FW
#Odfiltrovat zahlceni ICPM pakety
##iptables -A INPUT -p icmp -j syn-flood
##iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
#Pakety od navazanych spojenijsou OK
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#taktez packety v siti
iptables -A INPUT -i eth1 -d 192.168.1.2 -j ACCEPT
iptables -A INPUT -i eth1 -d 192.168.0.50 -j ACCEPT
#iptables -A INPUT -i eth1 -d 213.210.175.67 -j ACCEPT
iptables -A INPUT -i eth0 -d 10.0.0.5 -j ACCEPT
#INPUT POTRTY
#ptables -A INPUT -i ppp0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -s 193.85.241.156 -j ACCEPT #prozatim vsechny
iptables -A INPUT -i ppp0 -p tcp -s 83.208.155.1 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 110 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 67 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 67 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 68 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 68 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 137 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 139 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 138 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 139 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
#Propoustime pouze vybrane ICMP zpravy
iptables -A INPUT -i ppp0 -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i ppp0 -p ICMP --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i ppp0 -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A INPUT -i ppp0 -p ICMP --icmp-type time-exceeded -j ACCEPT
#output
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --sport ssh -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --sport 3389 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 3389 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --sport ftp -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport ftp -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport telnet -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp0 -p tcp --sport ftp-data -j TOS --set-tos Maximize-Throughput
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -s 192.168.0.50 -j ACCEPT
iptables -A OUTPUT -s 192.18.0.200 -j ACCEPT
iptables -A OUTPUT -s 192.168.1.2 -j ACCEPT
iptables -A OUTPUT -s 213.210.175.67 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 10.0.0.5 -j ACCEPT
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.