Dit script harkt informatie binnen, naar een .txt bestand, over beveiliging aspecten gericht op linux Mint en meer (zelf aan te passen naar wens). Het gehele installatie proces ga ik verder niet bespreken, en ik neem aan dat mensen die hier gebruik van willen maken, weten hoe alles moet om het script naar smaak aan te passen.
Nodig:
Pip3
Python 3.6 of hoger
python3-feedparser
feedparser requests
OpenSSL module Python
- Code: Selecteer alles
import feedparser
import requests
from datetime import datetime
# Configuratie
rss_feeds = [
"https://linuxmint.com/rss/security.xml", # Officiële Linux Mint beveiligingsupdates
"https://ubuntu.com/security/notices/rss.xml", # Ubuntu Security Notices (relevant voor Linux Mint)
"https://www.cert.europa.eu/rss/advisories.xml", # CERT advisories
"https://www.bleepingcomputer.com/feed/", # Algemene IT-beveiligingsnieuws
"https://www.securityweek.com/rss.xml", # Beveiligingsupdates en -nieuws
]
output_file = "/home/ertor/linux_mint_security_updates.txt" # Pas aan naar jouw locatie
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# Functie om RSS-feeds op te halen
def fetch_rss_feed(feed_url):
"""Haalt RSS-feed op en retourneert titels, links en datums."""
try:
feed = feedparser.parse(feed_url)
items = []
for entry in feed.entries[:10]: # Maximaal 10 berichten per feed
title = entry.title
link = entry.link
published = getattr(entry, "published", "Geen datum beschikbaar")
items.append(f"- {title}\n Datum: {published}\n Link: {link}")
return items
except Exception as e:
return [f"Fout bij ophalen van RSS-feed {feed_url}: {e}"]
# Functie om CVE-updates te verzamelen specifiek voor Linux Mint/Ubuntu
def fetch_linux_cve_updates():
"""Haalt de nieuwste Linux Mint/Ubuntu-gerelateerde CVE-updates op."""
api_url = "https://services.nvd.nist.gov/rest/json/cves/1.0"
query = "linux+mint+OR+ubuntu" # Zoekopdracht gericht op Linux Mint en Ubuntu
try:
response = requests.get(api_url, params={"keyword": query, "resultsPerPage": 5})
response.raise_for_status()
data = response.json()
cves = data.get("result", {}).get("CVE_Items", [])
updates = []
for cve in cves:
cve_id = cve.get("cve", {}).get("CVE_data_meta", {}).get("ID", "Onbekend")
description = cve.get("cve", {}).get("description", {}).get("description_data", [{}])[0].get("value", "")
published_date = cve.get("publishedDate", "Geen datum beschikbaar")
updates.append(f"{cve_id}: {description}\n Datum: {published_date}")
return updates
except Exception as e:
return [f"Fout bij ophalen van Linux CVE API: {e}"]
# Functie om alle updates naar bestand te schrijven
def write_to_file(content):
"""Schrijft content naar het outputbestand."""
with open(output_file, "a") as f:
f.write(content + "\n")
# Hoofdlogica
def main():
all_updates = [f"Linux Mint beveiligingsupdates verzameld op {current_time}\n{'='*40}\n"]
# RSS-feeds ophalen
for feed in rss_feeds:
updates = fetch_rss_feed(feed)
if updates:
all_updates.append(f"Bron: {feed}\n" + "\n".join(updates) + "\n")
# CVE-updates toevoegen
cve_updates = fetch_linux_cve_updates()
if cve_updates:
all_updates.append("Bron: CVE API (Linux Mint/Ubuntu)\n" + "\n".join(cve_updates) + "\n")
# Schrijf alle updates naar bestand
write_to_file("\n".join(all_updates))
print(f"Updates opgeslagen in {output_file}")
if __name__ == "__main__":
main()
Output voorbeeld:

Wellicht dat iemand er iets mee kan, bij mij werkt het nu prima en heb er nog wat extra aanpassingen op naar eigen smaak; tevens ga ik er verder aan sleutelen voor eigen doeleinden die ik verder niet zal bespreken.
Greetzzz
Basic