2023-09-27T10:52:26.802Z In(05) host-3241276 Using kernel build system.
2023-09-27T10:52:26.802Z In(05) host-3241276 /tmp/modconfig-MRgyG5/vmnet-only/bridge.c: In function ‘VNetBridgeSendLargePacket’:
2023-09-27T10:52:26.802Z In(05) host-3241276 /tmp/modconfig-MRgyG5/vmnet-only/bridge.c:1413:11: error: implicit declaration of function ‘skb_gso_segment’; did you mean ‘tcp_gso_segment’? [-Werror=implicit-function-declaration]
2023-09-27T10:52:26.802Z In(05) host-3241276 1413 | segs = skb_gso_segment(skb, 0);
2023-09-27T10:52:26.802Z In(05) host-3241276 | ^~~~~~~~~~~~~~~
2023-09-27T10:52:26.802Z In(05) host-3241276 | tcp_gso_segment
2023-09-27T10:52:26.802Z In(05) host-3241276 /tmp/modconfig-MRgyG5/vmnet-only/bridge.c:1413:9: warning: assignment to ‘struct sk_buff *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
2023-09-27T10:52:26.802Z In(05) host-3241276 1413 | segs = skb_gso_segment(skb, 0);
Network namespaces are an important component of containerization in Linux. A network namespace (netns) allows a running process to see different network interfaces, routes, and firewall rules from the rest of the system. There are a number of use cases for network namespaces, such as running multiple servers, testing/staging environments and providing isolation of services.
We begin by creating a generic systemd service for creating a named network namespace. I add the following to /usr/lib/systemd/system/netns@.service
. In systemd, the @
mean the service takes a parameter which is passed to the unit via %i
. E.g, we can run sudo systemctl start netns@webserver.service
.
# d899b42486eb805b8e432c5758568db487c6bcfc067d6ca7e1292a5a66d66de6 unbound.conf | |
server: | |
# Listen on tcp 443,853 | |
interface: 0.0.0.0@853 | |
interface: 0.0.0.0@443 | |
# Allow from anywhere | |
access-control: 0.0.0.0/0 allow | |
access-control: ::0/0 allow |
import requests | |
import os | |
import uuid | |
import hashlib | |
def download_file_hash(url, extension='txt'): | |
response = requests.get(url) | |
if response.status_code == 200: | |
sha256hash = hashlib.sha256(response.content).hexdigest() | |
filename = f'{sha256hash}.{extension}' | |
with open(filename, 'wb') as file: |
- Create the file
C:\Windows\System32\GroupPolicy\User\Scripts\Logon\disableteams.cmd
with the following contents
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -File %WINDIR%\System32\GroupPolicy\User\Scripts\Logon\disableteams.ps1
- Create the file
C:\Windows\System32\GroupPolicy\User\Scripts\Logon\disableteams.ps1
with the following contents
$entry = $null -eq (Get-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Run)."com.squirrel.Teams.Teams"
if ( !$entry ) {
vmware: | |
- | |
name: 'VMware NSX for vSphere' | |
serial: null | |
url: | |
- 'http://software.onthehub.com/shared/publisher/VMware/VMware-NSX-Manager-6.2.0-2986609.ova' | |
- | |
name: 'VMware vRealize Suite 7 Enterprise' | |
serial: null | |
url: |
#!/bin/bash | |
# Variables | |
LINK='enp0s20f0u4u3' | |
ADDR='192.168.8.100/24' | |
NETNS='testns' | |
BROWSER='chromium-browser' | |
# Create the network namespace | |
echo "Creating ${NETNS}" 1>&2 |
export DOCKERVERSION=20.10.5 | |
curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz \ | |
&& tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 \ | |
-C /usr/local/bin docker/docker \ | |
&& rm docker-${DOCKERVERSION}.tgz |
-
Download from https://www.vmware.com/go/getworkstation-linux
-
Elevate to root
-
Create a wrapper script
#!/usr/bin/bash