<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iptables &#8211; SystemTechnics</title>
	<atom:link href="https://www.systemtechnics.de/tag/iptables/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.systemtechnics.de</link>
	<description>IT Consulting</description>
	<lastBuildDate>Sat, 22 Jan 2022 14:05:21 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.systemtechnics.de/wp-content/uploads/cropped-2003-logo-st-transparanet-x200-32x32.png</url>
	<title>iptables &#8211; SystemTechnics</title>
	<link>https://www.systemtechnics.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Merker: Fail2Ban Status ausgeben</title>
		<link>https://www.systemtechnics.de/merker-fail2ban-status-ausgeben/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sat, 22 Jan 2022 14:05:20 +0000</pubDate>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[iredmail]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3162</guid>

					<description><![CDATA[Um schnell den Status aller Fail2Ban &#8222;Blocklisten&#8220; auszugeben kann folgender Einzeiler verwendet werden:]]></description>
										<content:encoded><![CDATA[
<p>Um schnell den Status aller Fail2Ban &#8222;Blocklisten&#8220; auszugeben kann folgender Einzeiler verwendet werden:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status</pre>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="700" src="https://www.systemtechnics.de/wp-content/uploads/fail2ban-status-1024x700.png" alt="" class="wp-image-3163" srcset="https://www.systemtechnics.de/wp-content/uploads/fail2ban-status-1024x700.png 1024w, https://www.systemtechnics.de/wp-content/uploads/fail2ban-status-300x205.png 300w, https://www.systemtechnics.de/wp-content/uploads/fail2ban-status-768x525.png 768w, https://www.systemtechnics.de/wp-content/uploads/fail2ban-status-1536x1049.png 1536w, https://www.systemtechnics.de/wp-content/uploads/fail2ban-status.png 1742w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MERKER: Fail2Ban Items in Zabbix erfassen</title>
		<link>https://www.systemtechnics.de/merker-fail2ban-items-in-zabbix-erfassen/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Tue, 11 Jul 2017 12:25:05 +0000</pubDate>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=2294</guid>

					<description><![CDATA[Um Sperrungen von Fail2Ban mit iptables in Zabbix sichtbar zu machen kann wie folgt vorgegangen werden: In dieser Anleitung gehe [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Um Sperrungen von Fail2Ban mit iptables in Zabbix sichtbar zu machen kann wie folgt vorgegangen werden:</p>
<p><span id="more-2294"></span></p>
<p>In dieser Anleitung gehe ich mal davon aus, dass fail2ban auf dem Server installiert und SASL, Courierauth und SSH &#8222;scharf geschaltet&#8220; ist. Zusätzlich muss <em>sudo</em> installiert und konfiguriert werden.</p>
<pre><code>aptitude install sudo</code></pre>
<p>Anschließend in die Datei <em>/etc/sudoers</em> folgendes eintragen:</p>
<pre><code>zabbix ALL=NOPASSWD: /sbin/iptables</code></pre>
<p>Abspeichern und den Dienst neu starten.</p>
<pre><ode>/etc/init.d/sudo restart</ode></pre>
<p>Zuerst ein paar zusätzliche Parameter in die zabbix_agentd.conf einfügen:</p>
<pre><code>echo "UserParameter=iptables.fail2ban-sasl[*],sudo iptables -L fail2ban-sasl |grep DROP |wc -l" >> /etc/zabbix/zabbix_agentd.conf
echo "UserParameter=iptables.fail2ban-courierauth[*],sudo iptables -L fail2ban-courierauth |grep DROP |wc -l" >> /etc/zabbix/zabbix_agentd.conf
echo "UserParameter=iptables.fail2ban-ssh[*],sudo iptables -L fail2ban-ssh |grep DROP |wc -l" >> /etc/zabbix/zabbix_agentd.conf
</code></pre>
<p>Nun sollte der Agent neu gestartet werden.</p>
<pre><code>/etc/init.d/zabbix-agent restart</code></pre>
<p>In Zabbix selbst kann nun ein entsprechendes Template erstellt werden. Ich habe dies Template mal als Datei <a href="https://www.systemtechnics.de/wp-content/uploads/zbx_export_templates.xml_.zip">zbx_export_templates.xml hier abgelegt</a>.</p>
<p>Das Template kann anschliessend den einzelnen Hosts (mit Mailer Postfix/Courier) zugewiesen werden und die Daten werden ab dem Zeitpunkt erfasst. Wer mag kann nun noch entsprechende Trigger konfigurieren.</p>
<p><img decoding="async" src="/wp-content/uploads/zabbix.iptables.png" alt="" width="2152" height="1242" class="aligncenter" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Traffic mittels iptables auf neuen Server umleiten</title>
		<link>https://www.systemtechnics.de/webseiten-mittels-iptables-auf-neuen-server-umleiten/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sat, 03 Jun 2017 12:48:12 +0000</pubDate>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[routen]]></category>
		<category><![CDATA[routing]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=2258</guid>

					<description><![CDATA[Wenn ein Webserver &#8222;in Rente&#8220; geht, man die Inhalten schon auf dem neuen Server hat und nur auf das DNS [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Wenn ein Webserver &#8222;in Rente&#8220; geht, man die Inhalten schon auf dem neuen Server hat und nur auf das DNS Update wartet, dann kann man auch via iptables den ankommenden Traffic auf dem neuen Server umleiten.</p>
<p><span id="more-2258"></span></p>
<p>Mittels iptabels geht es wie folgt:<br />
(für die Dienste http(s), pop3(s), imap(s), ftp und smtp(s))</p>
<pre><code>sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination new-host-ip:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination new-host-ip:443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination new-host-ip:587
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination new-host-ip:110
iptables -t nat -A PREROUTING -p tcp --dport 143 -j DNAT --to-destination new-host-ip:143
iptables -t nat -A PREROUTING -p tcp --dport 465 -j DNAT --to-destination new-host-ip:465
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to-destination new-host-ip:995
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to-destination new-host-ip:993
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination new-host-ip:25
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination new-host-ip:21
iptables -t nat -A POSTROUTING -j MASQUERADE</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Traccar &#8211; iptables Zugriff steuern</title>
		<link>https://www.systemtechnics.de/traccar-iptables-zugriff-steuern/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sun, 01 May 2016 18:29:47 +0000</pubDate>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[netfilter]]></category>
		<category><![CDATA[traccar]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=1624</guid>

					<description><![CDATA[Wenn man Traccar hinter einem Reverse-Proxy (Apache bzw. nginx) via https betreibt, der möchte natürlich nicht das man auf den [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Wenn man Traccar hinter einem Reverse-Proxy (Apache bzw. nginx) via https betreibt, der möchte natürlich nicht das man auf den umverschlüsselten Port weiter zugreifen kann.</p>
<p><span id="more-1624"></span></p>
<p>Mit diesem Zweizeiler kann man dies am einfachsten unterbinden:</p>
<pre><ode>iptables -A INPUT -p tcp --dport 8082 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8082 -j DROP</ode></pre>
<p>Nach einem kurzen Test sollten die Regeln natürlich Bootfest gemacht werden. Unter Debian gelingt das am einfachsten mit dem Paket <em>netfilter-persistent</em> .</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ownCloud Traffic &#8211; check_mk Plugin</title>
		<link>https://www.systemtechnics.de/owncloud-traffic-check_mk-plugin/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sat, 26 Dec 2015 05:53:40 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[check_mk]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[omd]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[wato]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=1132</guid>

					<description><![CDATA[Im Beitrag &#8222;ownCloud Traffic messen mittels iptables&#8220; habe ich schon ein kleines Bash-Script vorgestellt mit dem man den http(s) Traffic [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Im Beitrag <a href="http://www.systemtechnics.de/owncloud-httphttps-traffic-messen-mittels-iptables/">&#8222;ownCloud Traffic messen mittels iptables&#8220;</a> habe ich schon ein kleines Bash-Script vorgestellt mit dem man den http(s) Traffic von ownCloud über iptables messen kann. <br /><span id="more-1132"></span></p>
<p>Anstatt die Werte in eine CSV-Datei zu schreiben kann man auch ein kleines Plugin für check_mk schreiben. (Das Script aus obigen Link wird im Pfad /root/bin erwartet!)</p>
<pre><code>pico /usr/lib/check_mk_agent/local/oc-traffic</code></pre>
<pre><code>#/bin/bash

TRAFFIC=$(/root/bin/owncloud-traffic --zero-chain)

OUT=$(echo $TRAFFIC |awk -F"," '{print $1}')
IN=$( echo $TRAFFIC |awk -F"," '{print $2}')

echo "0 OC_HTTPS_Traffic OUT=$OUT|IN=$IN; IN/OUT: - $IN/$OUT Bytes"</code></pre>
<pre><code>chmod +x /usr/lib/check_mk_agent/local/oc-traffic</code></pre>
<p>Ich verzichte hier auf die Ausgabe von Datum und Uhrzeit und lasse check_mk nach jeder Wertermittlung die &#8222;Kette&#8220; nullen (<em>Parameter &#8211;zero-chain</em> ). Ist das Script nun im Plugin-Pfad von check_mk gespeichert kann man den Host in WATO anpassen und die Services neu einlesen.<br />
Nach ein paar Minuten sollten auch schon ansehnliche Grafiken erstellt werden.</p>
<p><img decoding="async" src="/wp-content/uploads/oc-traffic-check_mk.png" alt="" /></p>
<p>Man sieht hier schön, dass der abgehende Traffic wesentlich mehr ist. Ein Upload (im Beispiel hier eines Bildes) wird auf mehrere Clients herunter geladen.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ownCloud http/https Traffic messen mittels iptables</title>
		<link>https://www.systemtechnics.de/owncloud-httphttps-traffic-messen-mittels-iptables/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Fri, 25 Dec 2015 17:34:13 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[traffic]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=1045</guid>

					<description><![CDATA[Ich hatte mich heute morgen gefragt wie ich am einfachsten den Traffic, der meine ownCloud Server (im einzelnen) erzeugen, messen [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Ich hatte mich heute morgen gefragt wie ich am einfachsten den Traffic, der meine ownCloud Server (im einzelnen) erzeugen, messen kann. Herausgekommen ist folgendes kleine Script welches mittels iptabels den Traffic misst.</p>
<p><span id="more-1045"></span></p>
<p>Als Beispiel möchte ich hier das Script so verwenden, dass es alle 5 Minuten den gemessenen Wert ausließt und die entsprechende &#8222;Kette&#8220; bei iptables wieder leert. Der Wert wird dann inkl. Datum/Uhrzeit in ein Logfile (CSV-Format) geschrieben welches man nach belieben weiter verarbeiten kann.<br />
Die entsprechenden &#8222;Ketten&#8220; in iptables werden geprüft und bei Bedarf angelegt.</p>
<p>Mit dem Parameter <strong>&#8211;help</strong> wird eine kleine Hilfe ausgegeben</p>
<pre><code>#/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin

# Autor: Knut Herter
# Web  : www.systemtechnics.de
# Date : 12/2015
# 
# This Script count the http(s) Traffic to the Owncloud Server and
# print output as CSV line.
#
# CSV-Header: Date, Time, Traffic-INPUT, Traffic-OUTPUT
#
# Example for usage with cron ( crontab -e ):
#
# */5 * * * * /root/bin/owncloud-traffic --date --time --zero-chain >> /var/log/owncloud-traffic.log
#
# Hint: set correct vars at crontab eg
#
# SHELL=/bin/bash
# PATH=/bin:/sbin:/usr/bin:/usr/sbin
#

#### do not change lines below ####

# Check ist iptables available
#
if [ ! `which iptables` ]; 
	then echo "IPTABLES not Found, Stop Script";
	exit 1
fi

IPT=`which iptables`
CHAIN_IN="TRAFFIC_IN"
CHAIN_OUT="TRAFFIC_OUT"
DATE=""
TIME=""
COUNT_OUT=""
COUNT_IN=""
LABEL_IN=""
LABEL_OUT=""

# Check if iptables chain exist
# $1 = chain to check
# return 0 if OK, 1 if not
#
function check_chain() {
	if ! iptables -nL $1 > /dev/null 2>&1  ; then
        	return 1
	fi
	return 0
}

# Print help for this script
#
function printhelp() {
	printf "\n\n"
	printf "$0 [parameters]\n"
	printf " --help\t\t this help\n"
	printf " --zero-chain\t set Traffic Chain to Zero\n" 
	printf " --date\t\t print date\n"
	printf " --time\t\t print timestamp\n"
	printf " --label-out\t print label for OUT-Bytes\n"
	printf " --label-in\t print label for IN-Bytes\n"
	printf "\n\n"
	exit 0
}

# check parameters
#
while [ $# -ne 0 ]
do
    arg="$1"
    case "$arg" in
        --zero-chain)
            ZERO=true
            ;;
        --help)
            printhelp
            ;;
        --date)
            DATE=$(date +"%F")","
            ;;
	--time)
	    TIME=$(date +"%H:%M")","
	    ;;
	--label-out)
	    LABEL_OUT="OUT="
	    ;;
	--label-in)
	    LABEL_IN="IN="
	    ;;
        *)
            nothing="true"
            ;;
    esac
    shift
done


# check if chain OUTPUT exist
#
if  ! check_chain $CHAIN_OUT ; then
	echo "Chain $CHAIN_OUT not found"
	echo "Configure iptables Chain OUTPUT"
	$IPT -N $CHAIN_OUT
	$IPT -I OUTPUT -j $CHAIN_OUT
	$IPT -A $CHAIN_OUT -p tcp -m multiport --sports 80,443
	$IPT -A $CHAIN_OUT -j RETURN
fi

# check if chain INPUT exist
#
if  ! check_chain $CHAIN_IN ; then
        echo "Chain $CHAIN_IN not found"
        echo "Configure iptables Chain INPUT"
        $IPT -N $CHAIN_IN
        $IPT -I INPUT -j $CHAIN_IN
        $IPT -A $CHAIN_IN -p tcp -m multiport --dports 80,443
	$IPT -A $CHAIN_IN -j RETURN
fi


COUNT_OUT=$(iptables -L $CHAIN_OUT -n -v -x | grep -v -i "return" | awk '$1 ~ /^[0-9]+$/ { printf "%d\n",$2 }')
COUNT_IN=$( iptables -L $CHAIN_IN  -n -v -x | grep -v -i "return" | awk '$1 ~ /^[0-9]+$/ { printf "%d\n",$2 }')



# if parameter --zero-chain .. 
if [ $ZERO ]; then
        $IPT -Z $CHAIN_OUT
        $IPT -Z $CHAIN_IN
fi


printf "$DATE$TIME"
printf "$LABEL_IN$COUNT_IN,"
printf "$LABEL_OUT$COUNT_OUT"
printf "\n"

</code></pre>
<p>Wenn man nun in die Crontab folgende Zeile hinzufügt, dann wird unter <em>/var/log/</em> z.B. eine CSV-Datei erzeugt mit der man die Daten weiter verarbeiten kann</p>
<pre><code>*/5 * * * * /root/bin/owncloud-traffic --date --time --zero-chain >> /var/log/owncloud-traffic.log</code></pre>
<p><img decoding="async" src="/wp-content/uploads/owncloud-traffic-ausgabe.png" alt="" /></p>
<p>Es bietet sich auch an, das Logfile in logrotate zu konfigurieren damit es nicht zu groß wird und evtl. Werte älter als 2 Jahre nicht aufgehoben werden.<br />
Am einfachsten folgendes in /etc/logrotate.d/owncloud-traffic speichern:</p>
<pre><code>/var/log/owncloud-traffic.log {

    monthly
    rotate 24
    compress

    delaycompress
    missingok
    create 666 www-data www-data
}</code></pre>
<p><img decoding="async" src="/wp-content/uploads/owncloud-traffic.png" alt="" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>fail2ban &#8211; Sperrung aufheben</title>
		<link>https://www.systemtechnics.de/fail2ban-sperrung-aufheben/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Fri, 11 Dec 2015 03:45:49 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux/OSX]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[owncloud]]></category>
		<guid isPermaLink="false">http://www.systemtechnics.de/?p=990</guid>

					<description><![CDATA[Sollte man sich (oder einen Kunden) fälschlicher Weise mit eine fail2ban Regel gesperrt haben, so kann man den entsprechenden &#8222;iptables&#8220;-Eintrag [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Sollte man sich (oder einen Kunden) fälschlicher Weise mit eine fail2ban Regel gesperrt haben, so kann man den entsprechenden &#8222;iptables&#8220;-Eintrag wie folgt via Bash entfernen.<br />Im Folgenden Beispiel gibt es eine Sperrung von https in der Kette &#8222;fail2ban-owncloud&#8220;</p>
<p><span id="more-990"></span></p>
<p>Hiermit sehen wir die entsprechenden Iptables-&#8222;Ketten&#8220; und dessen Einträge</p>
<pre><code>iptables -L --line-numbers</code></pre>
<p>Es wird aus der &#8222;Kette&#8220; fail2ban-owncloud der Eintrag 1 gelöscht und somit ist ein Zugriff via HTTPS für den Kunden wieder möglich</p>
<pre><code>iptables -D fail2ban-owncloud 1</code></pre>
<p><img decoding="async" src="/wp-content/uploads/fail2ban-iptables-remove.png" alt="" /></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
