Patrick's Blog - IT, Stuff & Zeuch

Tools, Tipps, News & Snippets rund ums Thema Programmieren, Sicherheit, Exploits, Server, Netzwerk und Harden.

PHP-FPM + Nginx: Socket vs. TCP/IP und sysctl tweaking

Oft wird behauptet, dass TCP/IP besser skaliert als Unix-Sockets. Das mag vl. zutreffen, wenn das Socket-Limit, des Systems, nicht angepasst wird. Bei Ubuntu liegt das Unix-Socket Connection-Limit z.B. bei 128. Somit können nur 128 PHP Requests gleichzeitig abgearbeitet werden. Doch was ist eigentlich der Vorteil von Unix-Sockets? Bei den Unix-Sockets wird der TCP/IP Overhead (TCP Header usw.) eingespart. Somit werden hier Ressourcen gespart und die Requests schneller abgearbeitet, auch wenn es nur ein minimaler Unterschied ist.

SSL HTTP/2 und Nginx

Da nun Nginx mit Version 1.9.5 auch ein HTTP/2 Modul besitzt, ist es an der Zeit das zu nutzen und entsprechend zu kompilieren. Den Sourcecode kann man von http://nginx.org/en/download.html herunterladen. Wichtig ist, dass man beim kompilieren den Parameter –with-http_v2_module mitgibt. Beispiel: --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --without-http_browser_module --without-http_geo_module --without-http_limit_req_module --without-http_limit_conn_module --without-http_memcached_module --without-http_referer_module --without-http_scgi_module --without-http_split_clients_module --without-http_ssi_module --without-http_userid_module --without-http_uwsgi_module --with-http_v2_module Anschließend wird kompiliert und entsprechend installiert.

OpenWRT – Chaos Calmer 15.05

OpenWRT 15.05 wurde mit dem Releasenamen „Chaos Calmer“ veröffentlicht. OpenWRT ist ein freies Linux OS das hauptsächlich in Netzwerkumgebungen eingesetzte Embedded Systeme zu finden ist. Die Übersicht aller unterstützter Geräte findet man unter http://wiki.openwrt.org/toh/start. Die Freifunk Gemeinschaft setzt zum Beispiel auf OpenWRT. Changelog: * Linux kernel updated to version 3.18 * Improved Security Features – Rewritten package signing architecture based on ed25519 – Added support for jails – Added support for hardened builds * Improved Networking Support – Added or improved support for lots of 3G/4G modems (MBIM, QMI, NCM, …) – Added support for 464XLAT (CLAT) [RFC 6877 + RFC 7050] – Netfilter performance enhancements (conntrack route cache) – Improved support for self-managing networks [draft-ietf-homenet-hncp] – Better multi-core support for the network stack – Improved support for MAP-E, MAP-T and LW4over6 IPv4 transitioning technologies [draft-ietf-softwire-map, -map-t, -map-dhcp, -lw4over6] – Improved network auto-setup capable of detecting and bootstrapping IPv4-only, 6rd, Dual-Stack, IPv6-only, DS-Lite, LW4over6, MAP-E, MAP-T, 464XLAT and combinations without explicit configuration [based on RFC 7084] – Added support for Smart Queue Management (SQM) QoS, AQM and Traffic Shaping – Improved support for DNSSEC * Platform and Driver Support – Added support for feeds of externally maintained targets – New mt7621 subtarget for Mediatek 11ac SoC – New mt76 mac80211 based wifi driver for MTK 11ac cores.

PHP Curl SSL Zertifikat Problem

Viele PHP Entwickler kennen die SSL Problematik mit CURL: certificate verify failed. Als Lösung sehen viele den dirty Fix: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); Das löst das Problem zwar, verursacht aber eine Sicherheitslücke die Man-In-The-Middle (MitM) Attacken ermöglicht. Die saubere Lösung hierfür ist: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Überprüft ob der "Common name" existiert und mit dem Hostnamen des Servers übereinstimmt. curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/CA.crt"); // Hier entsprechend das CA Cert.

RaspBSD: Das FreeBSD für den RaspberryPi

Manch FreeBSD User hat das OS für den RaspberryPi vermisst. Nun gibt es ein FreeBSD Image für den Pi. RaspBSD wird im Moment von FreeBSD Committer Brad Davis gepflegt. Demnächst soll auch eine Headless / Serial Console Version bereitstehen. Im Moment werden „nur“ Graphical Images bereitgestellt, die Standardmäßig keine GUI aktiviert haben. Alle Images wurden mit crochet erstellt.