: 12 kwietnia 2009, 13:06
UDP jest potrzebne dla serwera, jeżeli jesteś tylko klientem wystarczy tylko TCP.
Polski portal użytkowników dystrybucji Debian GNU/Linux, dyskusje, artykuły, nowości, blog, porady, pomoc.
https://www.debian.pl/
Kod: Zaznacz cały
#!/bin/sh
#########################################
#sudo chmod 700 firewall.sh #
#sudo cp firewall.sh /etc/init.d/ #
#sudo update-rc.d firewall.sh defaults #
#########################################
#czyszczenie firewalla
iptables -F
echo "Konfiguracja firewalla rozpoczeta"
MOJEIP=`/sbin/ifconfig | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
echo "moje IP: $MOJEIP"
# blokujemy #
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# ustawienia wstepne #
#~~~~~~~~~~~~~
# ochrona przed atakiem typu Smurf
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# nie akceptujemy pakietow "source route" (zmieniaja tablice routingu)
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# nie przyjmujemy pakietow ICMP redirect, ktore moga zmienic nasza tablice routingu
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# wlaczamy ochrone przed blednymi pakietami ICMP error
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# ochrona przed spoofingiem -kazdy interfejs sieciowy bedzie przyjmowal
# tylko te pakiety ktore znajduja sie w tablicy routingu
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
#Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Dodanie do tablicy INPUT reguł wpuszczających pakiety należące do
#już nawiązanych (ESTABLISHED) połączeń.
iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state RELATED
# ssh
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p udp --dport 22 -j ACCEPT
echo "Konfiguracja firewalla zakonczona"
Kod: Zaznacz cały
###################################################
###################################################
###################################################
########### ###########
########### ###########
########### rc.firewall ###########
########### ###########
###################################################
###################################################
###################################################
###################################################
ip=123.123.123.123
################################################
##############################
iptables -F
#################################################
#### polityka DROP dla INPUT
iptables -P INPUT DROP
#################################################
#### polityka DROP dla OUTPUT
iptables -P OUTPUT DROP
###################################################
#### polityka ACCEPT dla FORWARD
iptables -P FORWARD ACCEPT
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
#####################################################################
####### WWW & DNS ##################################################
iptables -A OUTPUT -p tcp --syn -s $ip --dport 80 -j ACCEPT -m state --state NEW
iptables -A OUTPUT -p udp -s $ip --dport 53 -j ACCEPT -m state --state NEW
#####################################################################
####### kadu ########################################################
iptables -A OUTPUT -p tcp -s 0/0 --dport 8074 -j ACCEPT -m state --state NEW
####################################################################
###### ssh -1/min- #################################
iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit 1/min --hashlimit-mode srcip --hashlimit-name ssh -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT -m state --state NEW
####################################################################
##### auth #########################################################
iptables -A INPUT -p tcp --source-port 113 -j ACCEPT
#####################################################################
#### ftp ###########################################################
#iptables -A INPUT -p tcp ! --syn --sport 20:21 -d $ip --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p tcp -s $ip --sport 1024:65535 --dport 20:21 -j ACCEPT -m state --state NEW
######################################################################
#### Zabezpieczenie przed powodzia SYN (Syn-flood):###################
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
######################################################################
#### Ping of death: ##################################################
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#####################################################################
#### Wlaczenie przekazywania IP######################################
#echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/ip_forward
#####################################################################
#### Wlaczenie blokady komunikatow echo (ping) jesli : 0 --true , 1 --false
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#####################################################################
#### Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#####################################################################
# Weryfikacja adresu zrodlowego na poziomie kernela
# zeby zdalne hosty nie mogly sie podszyc pod moj komputer
#####################################################################
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
################################################
#PING
iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j DROP
####################################################################
#### połączenia https, skype ######################################
iptables -A OUTPUT -p tcp -s $ip --sport 1024:65535 --dport 443 -j ACCEPT -m state --state NEW
#############################################################################
iptables -A OUTPUT -p tcp -s $ip -d 0/0 --dport 1024:65535 -j ACCEPT -m state --state NEW
#############################################################################
#############################################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP