| verzia 2.56, 2008/01/27 13:36:02 |
verzia 2.57, 2008/02/02 22:57:54 |
|
|
| # Licensed under terms of GNU General Public License. |
# Licensed under terms of GNU General Public License. |
| # All rights reserved. |
# All rights reserved. |
| # |
# |
| # $Platon: scripts/shell/firewall/fw-universal.sh,v 2.55 2008-01-17 22:12:34 rajo Exp $ |
# $Platon: scripts/shell/firewall/fw-universal.sh,v 2.56 2008-01-27 13:36:02 rajo Exp $ |
| # |
# |
| # Changelog: |
# Changelog: |
| # 2003-10-24 - created |
# 2003-10-24 - created |
| Riadok 78 LO_IFACE="${LO_IFACE:=lo}" |
|
| Riadok 78 LO_IFACE="${LO_IFACE:=lo}" |
|
| # Hide NAT clients behind firewall |
# Hide NAT clients behind firewall |
| NAT_SET_TTL="${NAT_SET_TTL:=no}" |
NAT_SET_TTL="${NAT_SET_TTL:=no}" |
| |
|
| |
# reject config |
| |
ALL_REJECT_INPUT_TCP="${ALL_REJECT_INPUT_TCP:=113}" # by default reject connections to AUTH server |
| |
REJECT_WITH="${REJECT_WITH:=tcp-reset}" |
| |
|
| # |
# |
| # CONSTANTS - Do not edit |
# CONSTANTS - Do not edit |
| # |
# |
| Riadok 625 reject_input() |
|
| Riadok 629 reject_input() |
|
| for port in $ALL_REJECT_INPUT_TCP; do |
for port in $ALL_REJECT_INPUT_TCP; do |
| for iface in $INTERFACES; do |
for iface in $INTERFACES; do |
| print_info -en " $port($iface)" |
print_info -en " $port($iface)" |
| $IPTABLES -A INPUT -i $iface -p TCP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -p TCP --dport $port -j REJECT --reject-with $REJECT_WITH |
| done |
done |
| done |
done |
| print_info " done." |
print_info " done." |
| Riadok 635 reject_input() |
|
| Riadok 639 reject_input() |
|
| for port in $ALL_REJECT_INPUT_UDP; do |
for port in $ALL_REJECT_INPUT_UDP; do |
| for iface in $INTERFACES; do |
for iface in $INTERFACES; do |
| print_info -en " $port($iface)" |
print_info -en " $port($iface)" |
| $IPTABLES -A INPUT -i $iface -p UDP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -p UDP --dport $port -j REJECT --reject-with $REJECT_WITH |
| done |
done |
| done |
done |
| print_info " done." |
print_info " done." |
|
|
| print_info -en " $port"`[ ! -z $src_ip ] && echo "[$src_ip]"` |
print_info -en " $port"`[ ! -z $src_ip ] && echo "[$src_ip]"` |
| for ip in ${!IPS}; do |
for ip in ${!IPS}; do |
| if [ -z $src_ip ]; then |
if [ -z $src_ip ]; then |
| $IPTABLES -A INPUT -i $iface -d $ip -p TCP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -d $ip -p TCP --dport $port -j REJECT --reject-with $REJECT_WITH |
| else |
else |
| $IPTABLES -A INPUT -i $iface -s $src_ip -d $ip -p TCP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -s $src_ip -d $ip -p TCP --dport $port -j REJECT --reject-with $REJECT_WITH |
| fi |
fi |
| done |
done |
| done |
done |
|
|
| print_info -en " $port"`[ ! -z $src_ip ] && echo "[$src_ip]"` |
print_info -en " $port"`[ ! -z $src_ip ] && echo "[$src_ip]"` |
| for ip in ${!IPS}; do |
for ip in ${!IPS}; do |
| if [ -z $src_ip ]; then |
if [ -z $src_ip ]; then |
| $IPTABLES -A INPUT -i $iface -d $ip -p UDP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -d $ip -p UDP --dport $port -j REJECT --reject-with $REJECT_WITH |
| else |
else |
| $IPTABLES -A INPUT -i $iface -s $src_ip -d $ip -p UDP --dport $port -j REJECT --reject-with icmp-port-unreachable |
$IPTABLES -A INPUT -i $iface -s $src_ip -d $ip -p UDP --dport $port -j REJECT --reject-with $REJECT_WITH |
| fi |
fi |
| done |
done |
| done |
done |
|
|
| { # {{{ |
{ # {{{ |
| |
|
| print_info -en "Accepting ICMP packets:" |
print_info -en "Accepting ICMP packets:" |
| # Službu AUTH není dobré filtrovat pomocí DROP, protože to může |
|
| # vést k prodlevám při navazování některých spojení. Proto jej |
|
| # sice zamítneme, ale vygenerujeme korektní ICMP chybovou zprávu |
|
| $IPTABLES -A INPUT -p TCP --dport 113 -j REJECT --reject-with tcp-reset #AUTH server |
|
| |
|
| # accept only allowed ICMP packets |
# accept only allowed ICMP packets |
| for type in $ACCEPT_ICMP_PACKETS; do |
for type in $ACCEPT_ICMP_PACKETS; do |