From 1490f8f5202d6e4cfc59288bbd7ca2576028e97d Mon Sep 17 00:00:00 2001 From: baiobelfer Date: Thu, 17 Oct 2024 10:26:23 +0200 Subject: [PATCH] expose-netns --- Dockerfile | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ __ | 2 ++ expose-netns.sh | 24 ++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 Dockerfile create mode 100644 __ create mode 100755 expose-netns.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8ec2e71 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,50 @@ +# Użyj najnowszego obrazu bazowego Debian +FROM debian:latest + +# Ustaw zmienną środowiskową DEBIAN_FRONTEND na noninteractive, aby uniknąć interaktywnych promptów podczas instalacji pakietów +ENV DEBIAN_FRONTEND=noninteractive + +# Aktualizacja pakietów i instalacja wymaganych narzędzi wraz z python3 i python3-scapy +RUN apt-get update && apt-get install -y \ + iproute2 \ + curl \ + vim \ + tmux \ + git \ + htop \ + mc \ + sudo \ + wget \ + gnupg \ + tcpdump \ + termshark \ + python3 \ + python3-scapy \ + iputils-ping \ + traceroute \ + ipcalc + +# Ustawienie hasła dla użytkownika root +RUN echo "root:rootpass" | chpasswd + +# Tworzenie nowego użytkownika 'user' z hasłem 'pass' i dodanie do grupy sudo +RUN useradd -m -s /bin/bash user && \ + echo "user:pass" | chpasswd && \ + usermod -aG sudo user + +# Przekopiowanie folderu `app` do kontenera w ścieżce `/home/user/app` +COPY ./app /home/user/app + +# Zmiana właściciela folderu app na użytkownika `user` +RUN chown -R user:user /home/user/app + +# Ustawienie domyślnego użytkownika na 'user' +USER user + +# Ustawienie punktu wejścia, który uruchomi serwer HTTP w folderze `~/app` na porcie 8888 +WORKDIR /home/user/app +CMD ["python3", "-m", "http.server", "8888"] + +# Expose port 8888 to allow traffic through it +EXPOSE 8888 + diff --git a/__ b/__ new file mode 100644 index 0000000..f058b5d --- /dev/null +++ b/__ @@ -0,0 +1,2 @@ +f() { sudo docker run --rm -dit --privileged --network none --name "$1" deb su - user; }; f deb1 + diff --git a/expose-netns.sh b/expose-netns.sh new file mode 100755 index 0000000..011e381 --- /dev/null +++ b/expose-netns.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +echo "expose container $1 netns" +NETNS=`sudo docker inspect -f '{{.State.Pid}}' $1` + +if [ ! -d /var/run/netns ]; then + sudo mkdir /var/run/netns +fi +if [ -f /var/run/netns/$NETNS ]; then + sudo rm -rf /var/run/netns/$NETNS +fi + +sudo ln -s /proc/$NETNS/ns/net /var/run/netns/$NETNS +echo "done. netns: $NETNS" + +echo "=============================" +echo "current network namespaces: " +echo "=============================" +ip netns