Устанавливаем прокси-сервер Dante в контейнере Podman на Oracle Linux 9, подключаем к нужному VLAN и настраиваем systemd и iptables
Подготавливаем систему
dnf makecache
dnf update
dnf install iproute
Устанавливаем Podman
dnf install podman
systemctl enable --now podman
Устанавливаем Podman Compose
dnf install epel-release
dnf install podman-compose
Создаем файл /var/lib/podman/dante/Containerfile
FROM almalinux:10
RUN \
dnf -y install epel-release && \
/usr/bin/crb enable && \
dnf -y install dante-server && \
systemctl enable sockd && \
dnf install -y iptables-services && \
systemctl enable iptables && \
systemctl enable ip6tables && \
dnf install -y iproute && \
cp /etc/sockd.conf /etc/sockd.conf.backup
COPY <<EOF /etc/sockd.conf
internal.protocol: ipv4
internal: eth0 port=12345
external.protocol: ipv4
external: eth0
clientmethod: none
socksmethod: none
client pass { from: 192.168.0.0/16 port 1-65535 to: eth0 }
socks block { from: 0/0 to: lo }
socks pass { from: 0/0 to: 0/0 }
EOF
COPY <<EOF /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12345 -j ACCEPT
COMMIT
EOF
COPY <<EOF /etc/sysconfig/ip6tables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT
EOF
CMD [ "/sbin/init" ]
Создаем файл /var/lib/podman/dante/container-compose.yml
networks:
vlan100:
external:
name: vlan100
services:
dante:
build:
context: .
container_name: dante
cap_add:
- NET_ADMIN
networks:
vlan100:
ipv4_address: 192.168.100.254
restart: always
Создаем сеть Podman
podman network create -d ipvlan -o parent=vlan100 --subnet=192.168.100.0/24 --gateway=192.168.100.1 vlan100
Замечание: соответствующий VLAN-интерфейс (vlan100) уже должен быть создан на хосте Podman
Запускаем контейнер
podman compose -f /var/lib/podman/dante/container-compose.yml up -d