{"id":125,"date":"2006-07-26T10:56:52","date_gmt":"2006-07-26T08:56:52","guid":{"rendered":"http:\/\/my.stargazer.at\/?p=125"},"modified":"2007-06-19T15:38:37","modified_gmt":"2007-06-19T13:38:37","slug":"mit-shorewall-zur-kleinen-personal-firewall","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2006\/07\/26\/mit-shorewall-zur-kleinen-personal-firewall\/","title":{"rendered":"Mit Shorewall zur kleinen Personal Firewall"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" height=\"203\" alt=\"329545 firewall\" src=\"http:\/\/my.stargazer.at\/wp-content\/uploads\/2006\/07\/329545_firewall.jpg\" width=\"158\" align=\"left\" \/>Eine der Hauptgr\u00fcnde wieso Linux zum Einsatz kommt ist das Argument, dass Linux sicherer sei, als Windows basierte Systeme. Auf die Gefahr hin dass ihr mich nun als Verr\u00e4ter bezeichnet behaupte ich aber, dass jedes System so sicher ist, wie man es macht.<\/p>\n<p>Firewalls sind eine nette M\u00f6glichkeit um den Zugriff auf diverse Ports zu begrenzen oder gar zu unterbinden. Iptables, als Frontend f\u00fcr Netfilter mag vielen Administratoren und solchen die es noch werden wollen einen Schauer \u00fcber den R\u00fccken jagen, da es doch unter Umst\u00e4nden sehr aufw\u00e4ndig sein kann, diverse Regeln zu erstellen. Hier kommt Shorewall ins Spiel.<\/p>\n<p><!--more--><\/p>\n<p>Sehen wir uns einmal an was der Entwickler Tom Eastep zu sagen hat:<\/p>\n<p><em>The Shoreline Firewall, more commonly known as \u201cShorewall\u201d, is high-level tool for configuring Netfilter. You describe your firewall\/gateway requirements using entries in a set of configuration files. Shorewall reads those configuration files and with the help of the iptables utility, Shorewall configures Netfilter to match your requirements.<\/em><\/p>\n<p>Mit anderen Worten ist Shorewall das, was uns das simple konfigurieren einer Firewall erm\u00f6glicht. Wichtig dabei ist, dass im Kernel s\u00e4mtliche IPTables-Module zu bauen damit sie uns sp\u00e4ter zur Verf\u00fcgung stehen. Weitere Pakete die wir brauchen sind iptables, iproute2 und nat\u00fcrlich Shorewall selbst.<\/p>\n<p>Shorewall beheimatet die Konfigurationsdateien in \/etc\/shorewall, welche wir nun St\u00fcck f\u00fcr St\u00fcck anpassen. Ich beginne mit der Annahme, dass unser System nur eine Netzwerkkarte besitzt und einen mehr oder weniger klassischen Desktop darstellt.<\/p>\n<p>Shorewall ben\u00f6tigt Informationen \u00fcber unsere Netzwerk-Interfaces. Eth0 ist in meinem Beispiel die einzige Netzwerkkarte. Sie bezieht ihre Adresse via DHCP und soll keine Broadcasts verst\u00e4rken. Um dies zu erreichen passen wir die Datei \/etc\/shorewall\/interfaces an:<\/p>\n<p><strong>\/etc\/shorewall\/interfaces<\/strong>:<\/p>\n<blockquote>\n<p>##############################################################################<br \/>\n#ZONE    INTERFACE      BROADCAST       OPTIONS<br \/>\n#<br \/>\nnet      eth0           detect          dhcp,nosmurfs<br \/>\n#LAST LINE &#8212; ADD YOUR ENTRIES BEFORE THIS ONE &#8212; DO NOT REMOVE<\/p>\n<\/blockquote>\n<p>Nun gilt es Shorewall beizubringen, was generell mit unserem Netzwerk-Traffic passieren soll. Es soll alles verboten werden, was wir nicht explizit erlauben. Dies geschieht in den Policies.<\/p>\n<p><strong>\/etc\/shorewall\/policy<\/strong>:<\/p>\n<blockquote>\n<p>###############################################################################<br \/>\n#SOURCE         DEST            POLICY          LOG             LIMIT:BURST<br \/>\n#                                               LEVEL<br \/>\nnet             all             DROP            info<br \/>\n#<br \/>\n# THE FOLLOWING POLICY MUST BE LAST<br \/>\n#      <br \/>\nall             all             REJECT          info<br \/>\n#LAST LINE &#8212; DO NOT REMOVE<\/p>\n<\/blockquote>\n<p>Es mag zwar jetzt alles dicht sein, jedoch ist es nicht unbedingt sinnvoll alle Ports dicht zu machen, da wir so auch uns aus dem Netz ausgegrenzt haben. Also beginnen wir ein paar L\u00f6cher aufzumachen durch die wir ganz gezielt Traffic erlauben.<\/p>\n<p><strong>\/etc\/shorewall\/rules<\/strong>:<\/p>\n<blockquote>\n<p>####################################################################################################<br \/>\n#ACTION  SOURCE         DEST            PROTO   DEST    SOURCE     ORIGINAL     RATE            USER\/<br \/>\n#                                               PORT    PORT(S)    DEST         LIMIT           GROUP<br \/>\nACCEPT   fw             net             tcp     80 #http<br \/>\nACCEPT   fw             net             udp     80 #http<br \/>\nACCEPT   fw             net             tcp     443 #https<br \/>\nACCEPT   fw             net             udp     443 #https<br \/>\nACCEPT   fw             net             tcp     21 #ftp<br \/>\nACCEPT   fw             net             tcp     53 #DNS<br \/>\nACCEPT   fw             net             udp     53 #DNS<br \/>\nACCEPT   fw             net             tcp     110 #unsecure Pop3<br \/>\nACCEPT   fw             net             tcp     995 #Secure Pop3<br \/>\nACCEPT   fw             net             tcp     873 #rsync<br \/>\nACCEPT   fw             net             tcp     25 #unsecure SMTP<br \/>\nACCEPT   fw             net             tcp     465 #SMTP over SSL<br \/>\nACCEPT   fw             net             tcp     5190 #AIM\/ICQ<br \/>\nDROP     net            fw              tcp     23 #TELNET &#8211; wir erlauben es einfach nicht<br \/>\n#LAST LINE &#8212; ADD YOUR ENTRIES BEFORE THIS ONE &#8212; DO NOT REMOVE<\/p>\n<\/blockquote>\n<p>Wer jetzt die Shorewall Scripts startet (shorewall start) wird nach Kurzem in seinem Syslog ein paar Meldungen finden, was am Netzwerk passiert ist. Um ehrlich zu sein &#8211; es ist eine Menge an Daten die da in unseren Logs landen. Mit Syslog-NG lassen sich diese jedoch sch\u00f6n in ein eigenes File bannen:<\/p>\n<blockquote>\n<p>destination d_shorewall{ file (&#8222;\/var\/log\/shorewall\/shorewall.log&#8220;); };<br \/>\nfilter f_shorewall { match (&#8222;Shorewall&#8220;); };<\/p>\n<p>## \/var\/log\/messages sauber halten<\/p>\n<p>filter f_not_shorewall { not match (&#8222;Shorewall&#8220;); };<\/p>\n<p>## Logs entsprechend zusammenf\u00fchren<\/p>\n<p>log { source(src); filter (f_shorewall); destination (d_shorewall); };<\/p>\n<p>## \/var\/log\/messages sauber halten und die Shorewall-Messages<br \/>\n## ausfiltern<\/p>\n<p>log { source(src); filter (f_not_shorewall);destination(messages); };<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Eine der Hauptgr\u00fcnde wieso Linux zum Einsatz kommt ist das Argument, dass Linux sicherer sei, als Windows basierte Systeme. Auf die Gefahr hin dass ihr mich nun als Verr\u00e4ter bezeichnet behaupte ich aber, dass jedes System so sicher ist, wie man es macht. Firewalls sind eine nette M\u00f6glichkeit um den Zugriff auf diverse Ports zu begrenzen oder gar [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[264,34],"class_list":["post-125","post","type-post","status-publish","format-standard","hentry","category-it-related-stuff","tag-shorewall","tag-firewall"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}