<?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>server - NET73</title>
	<atom:link href="https://net73.de/tag/server/feed/" rel="self" type="application/rss+xml" />
	<link>https://net73.de</link>
	<description>Techblog, Freizeitblog &#38; Webhosting</description>
	<lastBuildDate>Sat, 08 Nov 2025 09:18:20 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://net73.de/wp-content/uploads/2025/11/favicon512-150x150.png</url>
	<title>server - NET73</title>
	<link>https://net73.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>IP-Blocklisten mit ipset</title>
		<link>https://net73.de/ip-blocklisten-mit-ipset/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ip-blocklisten-mit-ipset</link>
					<comments>https://net73.de/ip-blocklisten-mit-ipset/#respond</comments>
		
		<dc:creator><![CDATA[Marc Eggert]]></dc:creator>
		<pubDate>Mon, 05 Oct 2020 18:41:13 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ipset]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[it-security]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<guid isPermaLink="false">https://net73.de/?p=2457</guid>

					<description><![CDATA[<p>Das einzelne Blockieren von IP-Adressen erzeugt natürlich einen entsprechenden Aufwand für iptables - zumindest dann, wenn ganze IP-Adressensammlungen im fünf- oder sechsstelligen Bereich blockiert werden sollen. Und hier kommt ipset ins Spiel - eine Netfilter-Erweiterung.</p>
<p>The post <a href="https://net73.de/ip-blocklisten-mit-ipset/">IP-Blocklisten mit ipset</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/">Im letzten Beitrag</a> hatte ich beschrieben, wie Du via Fail2Ban automatisiert beispielsweise auf fehlerhafte Login-Versuche reagieren kannst. Fail2Ban legt hierzu automatisch eine entsprechende iptables-Regel an, so dass die entsprechende IP-Adresse blockiert wird. Sehr oft handelt es sich bei diesen IP-Adressen um allgemein bekannte Angreifer-IP-Adressen. Das sind beispielsweise bereits kompromittierte Server, VPN-Adressen oder anderweitig genutzte Angreifer-Maschinen. Für genau solche IP-Adressen existieren umfangreiche IP-Listen.</p>



<span id="more-2457"></span>



<h3 class="wp-block-heading">Welche Listen gibt es?</h3>



<p>Reine Text-Listen solcher IP-Adressen (um diese elektronisch weiterzuverarbeiten) findest du auf den Seiten https://www.projecthoneypot.org, https://www.maxmind.com, https://danger.rulez.sk, https://www.spamhaus.org, https://lists.blocklist.de, etc.</p>



<p>Via http://ipverse.net/ipblocks/data/countries/XX.zone kannst du sogar länderbasiert IP-Adressen blockieren. XX steht hierbei für den 2-digit-Countrycode.</p>



<p>Beim Nutzen solcher Listen gilt im Übrigen dasselbe wie beim generellen Anlegen automatisierter Firewall-Blockierungen: Achte immer darauf, dass du nicht dein eigenes Interface und auch nicht deine eigene IP-Adresse blockierst. Diese solltest Du whitelisten!</p>



<h3 class="wp-block-heading">Wie funktioniert ipset?</h3>



<p>Das einzelne Blockieren von IP-Adressen erzeugt natürlich einen entsprechenden Aufwand für iptables &#8211; zumindest dann, wenn ganze IP-Adressensammlungen im fünf- oder sechsstelligen Bereich blockiert werden sollen. Und hier kommt ipset ins Spiel &#8211; eine Netfilter-Erweiterung. Mit ipset kannst du diese ganzen Listen in ein Set laden und diese mit nur einer einzigen iptables-Regel blockieren. ipset installierst Du mit dem Paketmanager deines Linux-Systems (apt-get, pacman, etc.).</p>



<h3 class="wp-block-heading">Trick77/ipset-blacklist</h3>



<p>Du kannst solche Listen sehr angenehm über ein bereits fertiges Script auf deinem Server organisieren: <a href="https://github.com/trick77/ipset-blacklist">https://github.com/trick77/ipset-blacklist</a></p>



<p>In der Readme.md-Datei ist die schnelle Installation in fünf Schritten und Ausführung des Scripts beschrieben. Wichtig ist dabei auch, dass Du den beschriebenen Cronjob einrichtest und diesen einmal täglich ausführst. Auf diese Weise werden die IP-Listen aktualisiert. Denn täglich kommen natürlich neue IP-Adressen hinzu, bzw. werden auch IP-Adressen wieder freigegeben. Nach dem Anpassen der Datei /etc/ipset-blacklist/ipset-blacklist.conf an die eigenen Bedürfnisse, werden die IP-Adresslisten wie von dir ausgewählt automatisiert hinzugefügt.</p>



<h3 class="wp-block-heading">Manuelles hinufügen von IP-Adressen</h3>



<p>Du kannst desweiteren manuell IP-Adressen kurzfristig via ipset (ipset add [BLACKLISTNAME] [IP-ADRESSE])  zu deiner blacklist hinzufügen, oder langfristig die Datei /etc/ipset-blacklist/ip-blacklist-custom.list pflegen (nachdem diese in der Konfigurationsdatei aktiviert wurde).</p>



<h3 class="wp-block-heading">Aussicht: Automatisiertes Melden von IP-Adressen via Fail2ban</h3>



<p>Projekte wie beispielsweise https://www.badips.com leben davon, dass Angriffsversuche gemeldet werden. Erreicht eine IP-Adresse eine bestimmte Menge an Meldungen über Angriffsversuche, landet diese auf der Liste, die selbst wieder zum Blockieren genutzt werden kann. Wie Du dies ebenfalls automatisiert und beispielsweise via Fail2Ban erledigen kannst, schreibe ich in einem der kommenden Beiträge.</p><p>The post <a href="https://net73.de/ip-blocklisten-mit-ipset/">IP-Blocklisten mit ipset</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://net73.de/ip-blocklisten-mit-ipset/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ansible: Server-Updater</title>
		<link>https://net73.de/ansible-server-updater/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ansible-server-updater</link>
					<comments>https://net73.de/ansible-server-updater/#respond</comments>
		
		<dc:creator><![CDATA[Marc Eggert]]></dc:creator>
		<pubDate>Wed, 21 Nov 2018 14:26:59 +0000</pubDate>
				<category><![CDATA[Organisation]]></category>
		<category><![CDATA[ansible]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">https://pixel64.de/?p=1825</guid>

					<description><![CDATA[<p>Wer Ansible noch nicht kennt: Man kann sich Ansible als eine Art mächtiges SSH-Werkzeug vorstellen, welches diverse Operationen auf definierten Ziel-Maschinen ausführt (hauptsächlich für Linux-Server genutzt, Windows-Kisten lassen sich damit allerdings ebenfalls ansprechen). Der Vorteil von Ansible? Man benötigt keine Client-Agents oder ähnliche Software &#8211; eine funktionierende SSH-Verbindung zum Zielrechner ist ausreichend. Ansible ist hierbei [&#8230;]</p>
<p>The post <a href="https://net73.de/ansible-server-updater/">Ansible: Server-Updater</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Wer Ansible noch nicht kennt: Man kann sich Ansible als eine Art mächtiges SSH-Werkzeug vorstellen, welches diverse Operationen auf definierten Ziel-Maschinen ausführt (hauptsächlich für Linux-Server genutzt, Windows-Kisten lassen sich damit allerdings ebenfalls ansprechen).</p>



<p>Der Vorteil von Ansible? Man benötigt keine Client-Agents oder ähnliche Software &#8211; eine funktionierende SSH-Verbindung zum Zielrechner ist ausreichend. Ansible ist hierbei auch der Zustand des Zielrechners egal. Wenn z.B. das Paket &#8222;apache2&#8220; via APT auf dem debian-basierten Zielrechner installiert werden soll, wird geprüft, ob auf dem Zielrechner bereits apache2 installiert ist. Ist dies der Fall, wird von Ansible nichts weiter unternommen. Ist dies nicht der Fall, installiert Ansible das Paket.<br>Was ebenfalls ziemlich schick ist: Es wird auch keine Server-Node benötigt. Ansible kann von jedem SSH-fähigen Client oder Server ausgeführt werden. I.d.R. geht man dabei so vor, dass die eigenen Configs, bzw. Aufgaben (bei Ansible &#8222;Playbooks&#8220; genannt) versioniert werden (Github, Gitlab, o.ä.) und bei Bedarf versioniert erweitert und angepasst werden können. 12 Server und auf allen soll &#8222;htop&#8220; nachinstalliert werden? Eine Zeile in Ansible und die Sache ist geritzt.&nbsp;</p>



<span id="more-1825"></span>



<p>Ein kleines Beispiel einer möglichen Ansible-Anwendung ist das Aktualisieren sämtlicher Server-/Rechner-Nodes, auf welche man generell Zugriff via SSH hat. Im Folgenden als kurze Orientierung das Playbook (&#8222;in etwa&#8220; YAML-Format):</p>



<h2 class="wp-block-heading">dist-upgrade.yml</h2>



<p>Die Datei &#8222;dist-upgrade.yml&#8220; ist das sog. Playbook des Ansible-Auftrags. In dieser Datei wird beschrieben, was auf welchen Hosts ausgeführt werden soll. Grundsätzlich orientiert sich ein Ansible-Playbook an der YAML-Syntax. Tatsächlich findet man allerdings verschiedene Formate und Markups in einer solchen Datei. Neben reinem YAML kommen zusätzlich eigene sog. &#8222;Custom Keys&#8220;, Python-Code und stellenweise Jinja2-Syntax vor.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">
---
- hosts:
    all 
  become: true
  gather_facts: no
  vars:
    verbose: true 
    log_dir: "log/dist-upgrade/{{ inventory_hostname }}"
  pre_tasks:
    - block:
        - setup:
      rescue:
        - name: "Install required python-minimal package"
          raw: "apt-get update &amp;&amp; apt-get install -y --force-yes python-apt python-minimal"
        - setup:
  tasks:
    - name: Update packages
      apt:
        update_cache: yes
        upgrade: dist
        autoremove: yes
      register: output

    - name: Check changes
      set_fact:
        updated: true
      when: not output.stdout is search("0 upgraded, 0 newly installed")

    - name: Display changes
      debug:
        msg: "{{ output.stdout_lines }}"
      when: verbose or updated is defined

    - block:
      - name: "Create log directory"
        become: no
        file:
          path: "{{ log_dir }}"
          state: directory
        changed_when: false

      - name: "Write changes to logfile"
        become: no
        copy:
          content: "{{ output.stdout }}"
          dest: "{{ log_dir }}/dist-upgrade_{{ ansible_date_time.iso8601 }}.log"
        changed_when: false

      when: updated is defined
      connection: local
</code></pre>



<h2 class="wp-block-heading">ansible.cfg</h2>



<p>In der ansible.cfg-Datei werden Einstellungen für Ansible gespeichert. Wichtig: Ansible nutzt eine solche Datei, wenn der Befehl im selben Verzeichnis ausgeführt werden soll. Befindet sich keine ansible.cfg-Datei im aktuellen Verzeichnis, greift Ansible auf die globale Einstellungsdatei unter [cci lang=&#8220;bash&#8220;]/etc/ansible/ansible.cfg[/cci] zurück. Dies ist der Speicherort unter Arch Linux bei Installation via Pacman.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">[defaults]
inventory = ./hosts</code></pre>



<p>Aufgerufen wird das Playbook &#8211; also die YAML-Datei über den Befehl [cci]ansible-playbook dist-upgrade.yml [/cci]. Im Anschluss wird jeder Server aus der hosts-Datei abgearbeitet und entsprechende Rückmeldungen &#8211; falls es welche gibt &#8211; in einer Log-Datei pro Server und Durchlauf festgehalten.</p><p>The post <a href="https://net73.de/ansible-server-updater/">Ansible: Server-Updater</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://net73.de/ansible-server-updater/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
