Raspberry Pi Firewall en Intrusion Detection System (11 / 14 stap)

Stap 11: Firewall-instellingen


Hieronder, vindt u een zeer beperkende firewall script. U wellicht aanpassen aan uw behoeften, omdat het zal blokkeren websites niet op normen poorten (80/443) en software niet met behulp van HTTP/HTTPS/FTP-poorten (P2P, Skype, Google Talk, etc...).

Als u niet dat niveau van veiligheid wenst, is er ook een meer eenvoudige firewall script dat is eigenlijk "instellen en vergeten".

U kunt kiezen tussen firewall.advanced of firewall.simple, en vervolgens aanpassen. Credits gaan naar Guillaume Kaddouch

A - geavanceerde regelset
Dit script doet in feite het volgende:
-Blokken inkomende/uitgaande ongeldige TCP vlaggen (zelfs vanaf gevestigde stromen)
-Optimaliseert DNS-query's (IP TOS-veld)
-Identificeert verkeer door stroom type, en komt overeen met het op tegen een regelset
-Adds willekeur aan de NAT-proces
-Alleen toestaan paar uitgaande standaardpoorten (http, https, ftp)
-Registreert nauwkeurig wat is gedaald en log overstromingen voorkomen
-Drops binnenkomende pakketten met lage TTL (zou kunnen betekenen een ttl verstrijken aanval of een traceroute)
-Detect & malware uitgaande verbindingen worden geblokkeerd.

$ sudo touch /etc/firewall.advanced
$ sudo touch /etc/firewall.flows
$ sudo chmod u + x /etc/firewall.*

De stromen-identificatie is een lijst van regels leiden van het verkeer op de overeenkomende aangepaste keten (bijvoorbeeld FORWARD_OUT, FORWARD_IN, LAN_IN, enz...). Deze lijst van regels, eenmaal opgespoord en gevalideerd, mogen achteraf niet worden gewijzigd. Ook, als ze wat ruimte in het script gebruiken en zou saai om te lezen, maakt de filterregels moeilijker te lezen als ze op hetzelfde script zijn. Dat is waarom ik ze in een apart bestand, dat roep ik enkel van het hoofdscript verplaatsen:
$ sudo vi /etc/firewall.flows
#! / bin/bash

# "Datum augustus 2012
# "Auteur: Guillaume Kaddouch
# "Versie: 1.0 stroomt

#######################
# STROOM IDENTIFICATIE #
##############################################################################################
# NAT_OUT
iptables -t nat - A POSTROUTING -o $LAN -p tcp - ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j NAT_OUT

iptables -t nat - A POSTROUTING -o $LAN -p udp--ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j NAT_OUT

iptables -t nat - A POSTROUTING -o $LAN -p icmp--ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j NAT_OUT

# FORWARD_OUT
iptables - A FORWARD -i $LAN -p tcp - ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j FORWARD_OUT

iptables - A FORWARD -i $LAN -p udp--ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j FORWARD_OUT

iptables - A FORWARD -i $LAN -p icmp--ipv4 -m iprange \
--src-range $DHCP_RANGE! --dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j FORWARD_OUT

# FORWARD_IN
iptables - A FORWARD -i $LAN -p tcp - ipv4 -m iprange \
! --src-range $DHCP_RANGE--dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j FORWARD_IN

iptables - A FORWARD -i $LAN -p udp--ipv4 -m iprange \
! --src-range $DHCP_RANGE--dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j FORWARD_IN

iptables - A FORWARD -i $LAN -p icmp--ipv4 -m iprange \
! --src-range $DHCP_RANGE--dst-range $DHCP_RANGE -m pkttype--pkt-type unicast -m addrtype! --src-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j FORWARD_IN

# LAN_IN
iptables - A INPUT -i $LAN -p tcp - ipv4 -m iprange \
--src-range $DHCP_RANGE -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j LAN_IN

iptables - A INPUT -i $LAN -p udp--ipv4 -m iprange \
--src-range $DHCP_RANGE -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j LAN_IN

iptables - A INPUT -i $LAN -p icmp--ipv4 -m iprange \
--src-range $DHCP_RANGE -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state--staat nieuwe, gevestigd zijn, RELATED -j LAN_IN

# LAN_BROADCAST
iptables - A INPUT -i $LAN -p tcp - ipv4 \
! -d $RSS -m pkttype--pkt-Cell broadcast -m addrtype--dst-type BROADCAST\

-m staat! --state ongeldig -j LAN_BROADCAST

iptables - A INPUT -i $LAN -p udp--ipv4 \
! -d $RSS -m pkttype--pkt-Cell broadcast -m addrtype--dst-type BROADCAST\
-m staat! --state ongeldig -j LAN_BROADCAST

iptables - A INPUT -i $LAN -p icmp--ipv4 \
! -d $RSS -m pkttype--pkt-Cell broadcast -m addrtype--dst-type BROADCAST\
-m staat! --state ongeldig -j LAN_BROADCAST

# INTERNET_GATEWAY
iptables - A INPUT -i $LAN -p tcp - ipv4 \
! -s $LAN_SUBNET -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j INTERNET_GATEWAY

iptables - A INPUT -i $LAN -p udp--ipv4! \
-s $LAN_SUBNET -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j INTERNET_GATEWAY

iptables - A INPUT -i $LAN -p icmp--ipv4 \
! -s $LAN_SUBNET -d $RSS -m pkttype--pkt-type unicast -m addrtype--dst-type LOCAL\
-m state - staat en zijn gevestigd, verbonden -j INTERNET_GATEWAY

# GATEWAY_LAN
iptables - een OUTPUT -o $LAN -p tcp - ipv4 \
-s $RSS -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_LAN

iptables - een OUTPUT -o $LAN -p udp--ipv4 \
-s $RSS -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_LAN

iptables - een OUTPUT -o $LAN -p icmp--ipv4 \
-s $RSS -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_LAN

# GATEWAY_BROADCAST
iptables - een OUTPUT -o $LAN -p tcp - ipv4 \
-s $RSS -m pkttype--pkt-type uitzending -m addrtype--dst-type BROADCAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_BROADCAST

iptables - een OUTPUT -o $LAN -p udp--ipv4 \
-s $RSS -m pkttype--pkt-type uitzending -m addrtype--dst-type BROADCAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_BROADCAST

iptables - een OUTPUT -o $LAN -p icmp--ipv4 \
-s $RSS -m pkttype--pkt-type uitzending -m addrtype--dst-type BROADCAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_BROADCAST

# GATEWAY_INTERNET
iptables - een OUTPUT -o $LAN -p tcp - ipv4 \
-s $RSS! -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_INTERNET

iptables - een OUTPUT -o $LAN -p udp--ipv4 \
-s $RSS! -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_INTERNET

iptables - een OUTPUT -o $LAN -p icmp--ipv4 \
-s $RSS! -d $LAN_SUBNET -m pkttype--pkt-type unicast -m addrtype--dst-type UNICAST\
-m state--staat nieuwe, gevestigd zijn, RELATED -j GATEWAY_INTERNET

##############################################################################################

Nu maken we de filter regels script eerder sprak:
$ sudo vi /etc/firewall.advanced
#! / bin/bash

# "Datum augustus 2012
# "Auteur: Guillaume Kaddouch
# "URL: http://networkfilter.blogspot.com
# "Versie: geavanceerde 1.0

echo "Instellen van variabelen"
# VARIABELEN AAN TE PASSEN AAN UW NETWERK
LAN = "eth0"
LAN_SUBNET="192.168.1.0/24"
DHCP_RANGE = "192.168.1.10-192.168.1.20"
DNS_SERVER1 = "8.8.8.8"
DNS_SERVER2 = "208.67.222.222"
RSS = "192.168.1.3"
MODEM_ROUTER = "192.168.1.1"
UNPRIV_PORTS = "1024:65535"
SSH = "15507"
NTP_SERVER = "65.55.21.22"

echo "Flushing bestaande ketens en regels..."
# FLUSHING kettingen & regels
iptables -t filteren -F
iptables -t filteren -X
iptables -t nat -F
iptables -t nat -X
iptables -t Mangel -F
iptables -t Mangel -X

echo "Instellen standaardbeleid"
# STANDAARD BELEID
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P vooruit DROP

# LOOPBACK
iptables - A INPUT -i lo -j ACCEPT
iptables - A uitgang -o lo -j ACCEPT

echo "Maken ketens"
# KETTINGEN
iptables -N FORWARD_OUT
iptables -N FORWARD_IN
iptables -N LAN_IN
iptables -N LAN_BROADCAST
iptables -N GATEWAY_LAN
iptables -N GATEWAY_BROADCAST
iptables -N GATEWAY_INTERNET
iptables -N INTERNET_GATEWAY
iptables -t nat -N NAT_OUT

# KETEN TE CONTROLEREN, MELDT U ZICH, EN OPTIMALISEREN
iptables -N CHECK_TCP_FLAGS
iptables -N LOGDROP_TCP_FLAGS
iptables -N LOGDROP_MALWARE
iptables -N LOGDROP_BADPORT
iptables -t Mangel -N FAST_DNS

echo "Laden regels"

#################################
# PROTOCOL CHECK & optimalisatie #
##############################################################################################
iptables - A FORWARD -i $LAN -p tcp - ipv4 -j CHECK_TCP_FLAGS
iptables - A INPUT -i $LAN -p tcp - ipv4 -j CHECK_TCP_FLAGS

iptables -t Mangel - een OUTPUT -o $LAN -p tcp - ipv4 -s $RSS -m pkttype--pkt-type unicast-dport domein -m \
State--staat nieuwe, gevestigd zijn, RELATED -j FAST_DNS

iptables -t Mangel - een OUTPUT -o $LAN -p udp--ipv4 -s $RSS -m pkttype--pkt-type unicast-dport domein -m \
State--staat nieuwe, gevestigd zijn, RELATED -j FAST_DNS
##############################################################################################

###################
# CHECK_TCP_FLAGS #
##############################################################################################
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen ACK, FIN FIN -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen ACK, PSH PSH -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp ACK--tcp-vlaggen, URG URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen FIN, RST FIN, RST -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen SYN, FIN SYN, FIN -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen SYN, RST SYN, RST -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle alle -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle NONE -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen al FIN, PSH, URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle SYN, FIN, PSH, URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle SYN, RST, ACK, FIN, URG -j LOGDROP_TCP_FLAGS

iptables - A LOGDROP_TCP_FLAGS -m limit--limiet 1/s - j LOG--log-tcp-opties--log-prefix \
"[IPTABLES: SLECHTE TCP VLAGGEN]"

iptables - A LOGDROP_TCP_FLAGS -j DROP
##############################################################################################

############
# FAST_DNS #
##############################################################################################
iptables -t Mangel - een FAST_DNS -p udp -d $DNS_SERVER1 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p udp -d $DNS_SERVER2 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p tcp -d $DNS_SERVER1 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p tcp -d $DNS_SERVER2 -j TOS--set-tos minimaliseren-vertraging
##############################################################################################

# STROOM IDENTIFICATIE #
Bron "/ etc/firewall.flows"

############
# NAT_OUT #
##############################################################################################
iptables -t nat - A NAT_OUT -j MASQUERADE--willekeurige
##############################################################################################

###############
# TOEKOMEN UIT #
##############################################################################################
# Potentiële Malware verkeer
# Als niet liet hier, ze zou hebben geblokkeerd door het standaardbeleid
# Echter we de gelegenheid om hen te redden in een "bad_traffic"-tabel
# Deze tabel stelt ons in staat naar blok LAN's hosts wilt te veel malware poorten openen
# Aldus potentieel besmet (en vereisen een antivirus analyse)
#
# Zodra een LAN host heeft getroffen 5 keer regels hieronder binnen 2mn, DROP alle forward uit van die host
iptables - A FORWARD_OUT -p tcp -m recente--bad_traffic--rcheck--rttl--hitcount 5--seconden 120 -j naam \
LOGDROP_MALWARE

iptables - A FORWARD_OUT -p tcp-dport 139 - m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A FORWARD_OUT -p tcp-dport 445 - m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A FORWARD_OUT -p tcp-dport 135 - m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A FORWARD_OUT -p tcp-dport 6667 - m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A FORWARD_OUT -p tcp-dport 1433:1434 -m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A FORWARD_OUT -p udp-dport 1433:1434 -m recente--bad_traffic--naam instellen -j LOGDROP_BADPORT
iptables - A LOGDROP_BADPORT -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: slechte poort]"
iptables - A LOGDROP_BADPORT -j DROP
iptables - A LOGDROP_MALWARE -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: besmette gastheer]"
iptables - A LOGDROP_MALWARE -j DROP

# Toegestane poorten
iptables - A FORWARD_OUT -p tcp - sport $UNPRIV_PORTS -m multipoort--dports ftp, http, https, 8080 -j ACCEPT

# Verbindingen via gevestigd en met betrekking tot andere havens, bijvoorbeeld voor FTP nodig
iptables - A FORWARD_OUT -p tcp - sport $UNPRIV_PORTS dport $UNPRIV_PORTS -m state - state \
GEVESTIGD, RELATED -j ACCEPT

# NTP aanvragen (het wijzigen van de variabele aan het begin)
iptables - A FORWARD_OUT -p udp -d $NTP_SERVER--sport ntp dport ntp -j ACCEPT

# Echo request
iptables - A FORWARD_OUT -p icmp -m icmp--icmp-type echo-request - j ACCEPT

# Reject verkeer die wij het niet willen, vele opties hieronder (de bijbehorende variabelen maken)
# iptables - A FORWARD_OUT -p tcp-dport $port_of_a_host_to_block -j verwerpen--afwijzen-met \
# icmp-host-verboden
# iptables - A FORWARD_OUT -d $subnet_to_block -j verwerpen--afwijzen-met icmp-net-verboden

# Blokkeren & Meld u alles
iptables - A FORWARD_OUT -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: FORWARD_OUT]"
iptables - A FORWARD_OUT -j DROP
##############################################################################################

##############
# FORWARD_IN #
##############################################################################################
# Laat doorsturen van binnenkomende gevestigd of verwante stromen, met een TTL met > 10
iptables - A FORWARD_IN -m ttl--ttl-gt 10 -j ACCEPT

# Blokkeren & Meld u alles
iptables - A FORWARD_IN -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: FORWARD_IN]"
iptables - A FORWARD_IN -j DROP
##############################################################################################

##########
# LAN_IN #
##############################################################################################
# DHCP-uitzendingen van binnenuit toestaan
iptables - A LAN_IN -i $LAN -p udp--sport 67:68 dport 67:68 -j ACCEPT

# DNS-query's via een LAN toestaan aan de Raspberry veiligheid Syste,
iptables - A LAN_IN -i $LAN -p udp--sport $UNPRIV_PORTS dport 53 -j ACCEPT
iptables - A LAN_IN -i $LAN -p tcp - sport $UNPRIV_PORTS dport 53 -j ACCEPT

# SSH verbindingen
# (u kunt een selectievakje toevoegen voor de externe OS)
iptables - A LAN_IN -i $LAN -p tcp - sport $UNPRIV_PORTS dport $SSH -j ACCEPT

# ICMP LAN (Type 3 = onbereikbaar [destination|port|protocol])
iptables - A LAN_IN -p icmp -m icmp--icmp-type echo-request - j ACCEPT
iptables - A LAN_IN -p icmp -m icmp--icmp-type 3 -j ACCEPT

# Blokkeren & Meld u alles
iptables - A LAN_IN -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: LAN_IN]"
iptables - A LAN_IN -j DROP
##############################################################################################

##################
# LAN_BROADCAST #
##############################################################################################
# DHCP-uitzendingen van binnenuit toestaan
iptables - A LAN_BROADCAST -i $LAN -p udp--sport 67:68 dport 67:68 -j ACCEPT
# Blokkeren alles (niet de moeite om te melden van broadcast-verkeer)
iptables - A LAN_BROADCAST -j DROP
##############################################################################################

###########################
# INTERNET_GATEWAY #
##############################################################################################
# Reeds opgerichte verbindingen van RSS toestaan met Internet om terug te komen op RSS
iptables - A INTERNET_GATEWAY -p all -j ACCEPT
##############################################################################################

########################
# CHAINE GATEWAY_LAN #
##############################################################################################
# Blok potentiële ICMP redirect verzonden vanuit ons (kan worden veroorzaakt door een onjuist geconfigureerde sysctl)
iptables - A GATEWAY_LAN -p icmp -m icmp--icmp-type redirect -m limiet--limiet 1/s - j LOG--log-prefix \
"[IPTABLES: ICMP REDIRECT]"

iptables - A GATEWAY_LAN -p icmp -m icmp---icmp-type omleiden -j DROP

# Gevestigd LAN verbindingen met framboos terug te komen naar het LAN toestaan
iptables - A GATEWAY_LAN -p tcp -m state - staat en zijn gevestigd, RELATED -j ACCEPT
iptables - A GATEWAY_LAN -p udp -m state - staat en zijn gevestigd, RELATED -j ACCEPT
iptables - A GATEWAY_LAN -p icmp -m state - staat en zijn gevestigd, RELATED -j ACCEPT

# Toestaan DHCP gerelateerde verkeer
iptables - A GATEWAY_LAN -p udp--sport 67:68 dport 67:68 -j ACCEPT

# Raspi ping de LAN toestaan
iptables - een GATEWAY_LAN -p icmp -m icmp---icmp-type echo-request - m state - state NEW -j ACCEPT

# Blokkeren & Meld u alles
iptables - A GATEWAY_LAN -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: GATEWAY_LAN]"
iptables - A GATEWAY_LAN -j DROP
##############################################################################################

#####################
# GATEWAY_BROADCAST #
##############################################################################################
# Toestaan van de uitgezonden DHCP-antwoorden van RSS
iptables - A GATEWAY_BROADCAST -p udp--sport 67:68 dport 67:68 -j ACCEPT

# Blokkeren & Meld u alles
iptables - A GATEWAY_BROADCAST -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: GATEWAY_BROADCAST]"
iptables - A GATEWAY_BROADCAST -j DROP
##############################################################################################

####################
# GATEWAY_INTERNET #
##############################################################################################
# Nieuwe verbindingen toestaan van framboos (nodig voor updates, installeren van pakketten, etc...)
# Ik voer geen updates de nacht, dus er is geen noodzaak voor de regel als actieve 24/24
iptables - A GATEWAY_INTERNET -p tcp -m multipoort--dports ftp, http, https -m 09:00--timestop--Tijdstart tijd \
23:00 -j ACCEPT

# Résolutions DNS
iptables - A GATEWAY_INTERNET -p udp--sport $UNPRIV_PORTS -d $DNS_SERVER1 dport domein -j ACCEPT
iptables - A GATEWAY_INTERNET -p udp--sport $UNPRIV_PORTS -d $DNS_SERVER2 dport domein -j ACCEPT
iptables - A GATEWAY_INTERNET -p tcp - sport $UNPRIV_PORTS -d $DNS_SERVER1 dport domein -j ACCEPT
iptables - A GATEWAY_INTERNET -p tcp - sport $UNPRIV_PORTS -d $DNS_SERVER2 dport domein -j ACCEPT

# Gebeurt wanneer het herladen van firewall-regels
iptables - A GATEWAY_INTERNET -p icmp -m icmp--icmp-type poort-onbereikbaar - d $DNS_SERVER1 -j DROP
iptables - A GATEWAY_INTERNET -p icmp -m icmp--icmp-type poort-onbereikbaar - d $DNS_SERVER2 -j DROP

# NTP toestaan
iptables - A GATEWAY_INTERNET -p udp-dport ntp -j ACCEPT

# Blokkeren & Meld u alles
iptables - A GATEWAY_INTERNET -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: GATEWAY_INTERNET]"
iptables - A GATEWAY_INTERNET -j DROP
##############################################################################################

## REGELS EINDE ##
rules_number ='egrep '\-j' /etc/firewall.advanced | WC -l '
flows_number ='egrep '\-j' /etc/firewall.flows | WC -l '
total_rules = $((rules_number + flows_number))
echo ""
echo "$total_rules regels geladen."
echo ""

B - basic regelset
Dit script doet in feite het volgende:
-Blokken inkomende/uitgaande ongeldige TCP vlaggen (zelfs vanaf gevestigde stromen)
-Optimaliseert DNS-query's (IP TOS-veld)
-Adds willekeur aan de NAT-proces
-Drops binnenkomende pakketten met lage TTL (zou kunnen betekenen een ttl verstrijken aanval of een traceroute)

Deze regelset kunt alles van uw LAN worden doorgestuurd op Internet, dus theoretisch niet vereist achteraf worden aangepast. Als u toevoegen van een extra laag van veiligheid van het netwerk voor je grootmoeder of ouders bijvoorbeeld, wilt maar dat u niet verwachten ze dat te wijzigen van iptables rules(!), denk ik dat deze regelset geschikter is.

$ sudo vi /etc/firewall.simple
#! / bin/bash

# Datum augustus 2012
# Auteur: Guillaume Kaddouch
# URL: http://networkfilter.blogspot.com
# Version: Standaard 1.0

echo "Instellen van variabelen"
# VARIABELEN AAN TE PASSEN AAN UW NETWERK
LAN = "eth0"
LAN_SUBNET="192.168.1.0/24"
DHCP_RANGE = "192.168.1.10-192.168.1.20"
DNS_SERVER1 = "8.8.8.8"
DNS_SERVER2 = "208.67.222.222"
RSS = "192.168.1.3"
MODEM_ROUTER = "192.168.1.1"
UNPRIV_PORTS = "1024:65535"
SSH = "15507"
NTP_SERVER = "65.55.21.22"

echo "Flushing bestaande ketens en regels..."
# FLUSHING kettingen & regels
iptables -t filteren -F
iptables -t filteren -X
iptables -t nat -F
iptables -t nat -X
iptables -t Mangel -F
iptables -t Mangel -X

echo "Instellen standaardbeleid"
# STANDAARD BELEID
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P vooruit DROP

# LOOPBACK
iptables - A INPUT -i lo -j ACCEPT
iptables - A uitgang -o lo -j ACCEPT

echo "Maken ketens"

# KETEN TE CONTROLEREN, MELDT U ZICH, EN OPTIMALISEREN
iptables -N CHECK_TCP_FLAGS
iptables -N LOGDROP_TCP_FLAGS
iptables -t Mangel -N FAST_DNS

echo "Laden regels"
#################################
# PROTOCOL CHECK & optimalisatie #
##############################################################################################
iptables - A FORWARD -i $LAN -p tcp - ipv4 -j CHECK_TCP_FLAGS
iptables - A INPUT -i $LAN -p tcp - ipv4 -j CHECK_TCP_FLAGS

iptables -t Mangel - een OUTPUT -o $LAN -p tcp - ipv4 -s $RSS -m pkttype--pkt-type unicast-dport domein \
-m state--staat nieuwe, gevestigd zijn, RELATED -j FAST_DNS

iptables -t Mangel - een OUTPUT -o $LAN -p udp--ipv4 -s $RSS -m pkttype--pkt-type unicast-dport domein \
-m state--staat nieuwe, gevestigd zijn, RELATED -j FAST_DNS
##############################################################################################

###################
# CHECK_TCP_FLAGS #
##############################################################################################
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen ACK, FIN FIN -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen ACK, PSH PSH -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp ACK--tcp-vlaggen, URG URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen FIN, RST FIN, RST -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen SYN, FIN SYN, FIN -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp--tcp-vlaggen SYN, RST SYN, RST -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle alle -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle NONE -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen al FIN, PSH, URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle SYN, FIN, PSH, URG -j LOGDROP_TCP_FLAGS
iptables - A CHECK_TCP_FLAGS -p tcp---tcp-vlaggen alle SYN, RST, ACK, FIN, URG -j LOGDROP_TCP_FLAGS

iptables - A LOGDROP_TCP_FLAGS -m limit--limiet 1/s - j LOG--log-tcp-opties--log-prefix \
"[IPTABLES: SLECHTE TCP VLAGGEN]"

iptables - A LOGDROP_TCP_FLAGS -j DROP
##############################################################################################

############
# FAST_DNS #
##############################################################################################
iptables -t Mangel - een FAST_DNS -p udp -d $DNS_SERVER1 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p udp -d $DNS_SERVER2 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p tcp -d $DNS_SERVER1 -j TOS--set-tos minimaliseren-vertraging
iptables -t Mangel - een FAST_DNS -p tcp -d $DNS_SERVER2 -j TOS--set-tos minimaliseren-vertraging
##############################################################################################

#######
# NAT #
##############################################################################################
iptables -t nat - A POSTROUTING -o $LAN! -d $LAN_SUBNET -m state - state NEW, gevestigde, RELATED -j MASQUERADE\
--willekeurige
##############################################################################################

###########
# VOORWAARTSE #
##############################################################################################
# Toestaan uitgaande vooruit van een verbinding
iptables - A FORWARD -p tcp -i $LAN -s $LAN_SUBNET! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

iptables - A FORWARD -p udp -i $LAN -s $LAN_SUBNET! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

iptables - A FORWARD -p icmp -i $LAN -s $LAN_SUBNET! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

# Toestaan binnenkomende vooruit van gevestigde of verwante verbindingen met TTL groter is dan 10
iptables - A FORWARD -p tcp -i $LAN! -s $LAN_SUBNET -d $LAN_SUBNET -m state - staat en zijn gevestigd, verbonden -m \
TTL--ttl-gt 10 -j ACCEPT

iptables - A FORWARD -p udp -i $LAN! -s $LAN_SUBNET -d $LAN_SUBNET -m state - staat en zijn gevestigd, verbonden -m \
TTL--ttl-gt 10 -j ACCEPT

iptables - A FORWARD -p icmp -i $LAN! -s $LAN_SUBNET -d $LAN_SUBNET -m state - staat en zijn gevestigd, verbonden -m \
TTL--ttl-gt 10 -j ACCEPT
##############################################################################################

#########
# INPUT #
##############################################################################################
# DHCP-uitzendingen van binnenuit toestaan
iptables - A INPUT -i $LAN -p udp -s $LAN_SUBNET--sport 67:68 dport 67:68 -j ACCEPT

# DNS-query's van het LAN toestaan om de framboos
iptables - A INPUT -i $LAN -p udp -s $LAN_SUBNET--sport $UNPRIV_PORTS -d $RSS dport 53 -j ACCEPT
iptables - A INPUT -i $LAN -p tcp -s $LAN_SUBNET--sport $UNPRIV_PORTS -d $RSS dport 53 -j ACCEPT

# SSH verbindingen
iptables - A INPUT -i $LAN -p tcp -s $LAN_SUBNET--sport $UNPRIV_PORTS -d $RSS dport $SSH -j ACCEPT

# ICMP LAN (Type 3 = onbereikbaar [destination|port|protocol])
iptables - A INPUT -p icmp -m icmp--icmp-type echo-request - s $LAN_SUBNET -d $RSS -j ACCEPT
iptables - A INPUT -p icmp -m icmp--icmp-type 3 -s $LAN_SUBNET -d $RSS -j ACCEPT

# Reeds opgerichte verbindingen van framboos toestaan met Internet terugkomen naar itl
iptables - A INPUT -i $LAN! -s $LAN_SUBNET -d $RSS -p tcp -m state - staat en zijn gevestigd, RELATED -j ACCEPT
iptables - A INPUT -i $LAN! -s $LAN_SUBNET -d $RSS -p udp -m state - staat en zijn gevestigd, RELATED -j ACCEPT
iptables - A INPUT -i $LAN! -s $LAN_SUBNET -d $RSS -p icmp -m state - staat en zijn gevestigd, RELATED -j ACCEPT
##############################################################################################

###########
# OUTPUT #
##############################################################################################
# Blok potentiële ICMP redirect verzonden vanuit ons (kan worden veroorzaakt door een onjuist geconfigureerde sysctl)
iptables - een OUTPUT -o $LAN -p icmp -m icmp--icmp-type redirect -m limiet--limiet 1/s - j LOG--log-prefix \
"[IPTABLES: ICMP REDIRECT]"

iptables - A uitgang -o $LAN -p icmp -m icmp--icmp-type redirect -j DROP

# Verbindingen via LAN gevestigd aan de Raspi terugkomen naar het LAN
iptables - A OUTPUT -o $LAN -p tcp -s $RSS -d $LAN_SUBNET -m state - staat die gevestigd zijn, RELATED -j ACCEPT
iptables - A OUTPUT -o $LAN -p udp -s $RSS -d $LAN_SUBNET -m state - staat die gevestigd zijn, RELATED -j ACCEPT
iptables - A OUTPUT -o $LAN -p icmp -s $RSS -d $LAN_SUBNET -m state - staat die gevestigd zijn, RELATED -j ACCEPT

# Toestaan DHCP gerelateerde verkeer
iptables - een OUTPUT -o $LAN -p udp -s $RSS -d $LAN_SUBNET--sport 67:68 dport 67:68 -j ACCEPT

# Framboos ping de LAN toestaan
iptables - A OUTPUT -o $LAN -p icmp -m icmp--icmp-type echo-request - s $RSS -d $LAN_SUBNET -m state \
--staat NEW -j ACCEPT

# Nieuwe verbindingen toestaan van framboos (nodig voor updates, installeren van pakketten, etc...)
iptables - A uitgang -o $LAN -p tcp -s $RSS! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

iptables - A uitgang -o $LAN -p udp -s $RSS! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

iptables - A uitgang -o $LAN -p icmp -s $RSS! -d $LAN_SUBNET -m state - state NEW, gevestigd zijn, RELATED \
-j ACCEPT

# DNS-aanvragen
iptables - een OUTPUT -o $LAN -p udp -s $RSS--sport $UNPRIV_PORTS -d $DNS_SERVER1 dport domein -j ACCEPT
iptables - een OUTPUT -o $LAN -p udp -s $RSS--sport $UNPRIV_PORTS -d $DNS_SERVER2 dport domein -j ACCEPT
iptables - een OUTPUT -o $LAN -p tcp -s $RSS--sport $UNPRIV_PORTS -d $DNS_SERVER1 dport domein -j ACCEPT
iptables - een OUTPUT -o $LAN -p tcp -s $RSS--sport $UNPRIV_PORTS -d $DNS_SERVER2 dport domein -j ACCEPT
# NTP toestaan
iptables - A uitgang -o $LAN -p udp-dport ntp -s $RSS -j ACCEPT
##############################################################################################

iptables - A INPUT -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: INPUT DROP]"
iptables - A INPUT -j DROP
iptables - een OUTPUT -m limit--limiet 1/s - j LOG--log-prefix "[IPTABLES: daling van de uitvoer]"
iptables - een OUTPUT -j DROP
iptables - A FORWARD -m limiet--limiet 1/s - j LOG--log-prefix "[IPTABLES: voorwaartse DROP]"
iptables - A FORWARD -j DROP

## REGELS EINDE ##
rules_number ='egrep '\-j' /etc/firewall.simple | WC -l '
echo ""
echo "$rules_number regels geladen."
echo ""

Deze twee regelsets zijn slechts voorbeelden, hebt u één klaar gebruiken van uw eigen.

Om te laden iptables regels bij het opstarten, is een manier om te doen als volgt:
$ sudo vi /etc/rc.local
echo "Laden iptables regels"
/ etc/firewall. VERSIE >> / dev/nul

VERSIE vervangen door "advanced" of "eenvoudige", zonder aanhalingstekens, afhankelijk van het script dat u gebruikt.

Als u weergeven van de waarschuwingen in realtime wilt, typt u het volgende:
$ sudo tail -f /var/log/iptables.log

Gerelateerde Artikelen

Home Network Intrusion Detection System

Home Network Intrusion Detection System

Dit is mijn eerste instuctable. Ik was op zoek naar mijn thuisnetwerk inbraakdetectiesysteem op een VM maken en kon vinden geen instructies over hoe dit te doen. Dus ik mijn eigen gemaakt en hoop dat het helpt dat sommigen van u uit. Mijn excuses voo
Automatisering van Locking systemen en Intrusion Detection In huizen

Automatisering van Locking systemen en Intrusion Detection In huizen

Internetis de technologie van de toekomst die langzaam is coming up en wint dynamiek in de telecom industrie van dingen. Hier, hebben we geprobeerd te maken van een veiligheidssysteem dat wordt beheerd door het Internet. Het doel van het project was
Raspberry Pi en ROS (Robotic Operating System)

Raspberry Pi en ROS (Robotic Operating System)

In deze Tutorial gaan we om te gaan over het opzetten van een Raspberry Pi met Linux en ROS. Naast de steeds vertrouwd zijn met enkele van de basisprincipes door enkele eenvoudige tutorial programma's uitvoeren vanaf de "ROS WIKI" . Als u onbeke
Open vliegen Detection System

Open vliegen Detection System

Dit instructable was een samenwerking met OHoilett. Check hem uit, hij is geweldig!We hebben allemaal er geweest. U gebruikt het toilet uur geleden, kijk naar beneden en...Uw rits heeft deze hele tijd open geweest?! Hoe? Vraag je je af als iedereen o
Arduino Home basketbal hoepel Score Detection System alias teamscorer

Arduino Home basketbal hoepel Score Detection System alias teamscorer

Mijn zusje en ik vond deze indoor basketbal hoepel (hierboven afgebeeld) op een dumpster een paar weken geleden. We kwamen thuis van kerk net zoals twee mensen waren het lossen van hun vrachtwagen. We besloten om te grijpen, samen met de air hockey t
Bodemvocht/Detection System

Bodemvocht/Detection System

Dat begon als een eenvoudige twee nagel, 5V, vocht detectiesysteem het uitgegroeid tot een iets meer verfijnde tuig met LED's en minder bijwerken als gevolg van mijn vorige toezicht: elektrolyse.Daarvoor moet u:Arduino1 x rode LED1 x gele LED1 x de g
FerretPi: Met behulp van Raspberry Pi als een beveiligde FTP-Server

FerretPi: Met behulp van Raspberry Pi als een beveiligde FTP-Server

ik weet wat je denkt: "hoe cool zou het zijn als ik had mijn eigen Google Drive/SkyDrive/Dropbox die ik gebruiken kan wanneer ik wil?" Of misschien bent u gewoon het krijgen in de beweging van de Maker en je denkt dat het is het grootste ding si
Bouwen van uw eigen gateway firewall

Bouwen van uw eigen gateway firewall

leren hoe te bouwen uw eigen gateway firewall met behulp van FreeBSD® en oude PC onderdelen. De firewall zal bestaan uit de PF firewall, Snort IDS, verschillende IPS toepassingen, Squid proxy en een intuïtieve webinterfaces voor controle. De kosten v
De 802.11 Ninja - draagbare 802.11 hacken apparaat

De 802.11 Ninja - draagbare 802.11 hacken apparaat

IntroductieVoordat wij beginnen met deze tutorial, moet ik vermelden dat ik zelfs nog niet geborsteld het oppervlak van de mogelijkheden die dit geweldige stukje hardware biedt! Niet elke uitvoering van de 802.11 Ninja hoeft niet elke één functie, du
Visuele netwerk bedreiging niveau Indicator v2

Visuele netwerk bedreiging niveau Indicator v2

op veler verzoek is dit een nieuwe draadloze versie van de visuele netwerk bedreiging niveau-Indicator. Deze maakt gebruik van een Roving netwerken WiFly RN-XV Module te doen 802.11 WiFi samen met een Arduino voor weergave van het dreigingsniveau op
Visuele netwerk bedreiging niveau Indicator

Visuele netwerk bedreiging niveau Indicator

Netwerkmonitoring is erg belangrijk in de huidige wereld. Het internet is een enge plaats. Mensen hebben stappen ondernomen om hun bewustmaking door Intrusion Detection Systems(IDS) zoals SNORT installeren.Het probleem met de meeste van deze systemen
DIY Infrarood Sensor bewegingssysteem voor Raspberry Pi

DIY Infrarood Sensor bewegingssysteem voor Raspberry Pi

Tijdens de maand juli 2015, ik legde een stage van de middelbare school bij Colorado State University, en één van de projecten die ik heb gewerkt was dat van een infrarode nabijheidssensor voor Raspberry Pi.Deze korte reeks infrarode sensor kan worde
Procedure: Setup een IPCop Virtuele Machine Firewall ter bescherming van uw Windows-Host (gratis!)

Procedure: Setup een IPCop Virtuele Machine Firewall ter bescherming van uw Windows-Host (gratis!)

Summary:Het doel van dit project is met IpCop (gratis Linux-distributie) in een virtuele Machine te beschermen een Windows host-systeem op een netwerk. IpCop is een zeer krachtige Linux gebaseerde Firewall met geavanceerde functies zoals: VPN, NAT, I
Meerdere netwerkkaarten.

Meerdere netwerkkaarten.

We zullen kijken hoe u meerdere netwerkkaarten op linux.Multihomed netwerk (geen routing).Multihomed-netwerk met routering.Toestaan meer band breedte usubg meerdere netwerkkaarten.Één nic meerdere IP-adressen.Dubbel zo ingewikkeld.Gewone router.U kun