운영 체제 수준에서 네트워크 인터페이스나 리소스를 사용하지 못하도록 시스템 프로세스를 격리하는 방법은 무엇입니까?
개요
간단히 말해서 Linux 게이트웨이를 설정하고 싶습니다. 간단한 NAT, 홈 기반 LAN 게이트웨이로 전달... 웹 기반 인터페이스가 필요 systemd
하거나 액세스할 필요가 없습니다.systemd-networkd
근본적인
systemd
이 미니멀리스트 모드에서는 네트워크 인터페이스에 액세스하기 위해 systemd-network 또는 NetworkManager(심지어 )를 사용할 필요가 없습니다 .
당신은 무엇을 했나요?
나는 모든 네트워킹 요구 사항 /etc/resolv.conf
에 대해 Bind9, ISC DHCP, 로컬을 사용합니다 . nftables
부팅 순서에는 systemd만 사용하십시오(원래 설계된 대로).
systemd 패키지 자체를 제외하고 systemd에 대해 다음 네트워크 관련 항목을 모두 비활성화했습니다.인의 블로그.
systemctl disable systemd-resolved.service
systemctl stop systemd-resolved
systemctl stop systemd-networkd.socket
systemctl stop systemd-networkd
systemctl stop networkd-dispatcher
systemctl stop systemd-networkd-wait-online
systemctl disable systemd-networkd.socket
systemctl disable systemd-networkd
systemctl disable networkd-dispatcher
systemctl disable systemd-networkd-wait-online
apt-get remove systemd-resolvconfd
apt-get remove systemd-networkd
apt-get remove openresolv
apt-get purge netplan.io
rm /etc/dhcp/dhclient-enter-hooks.d/resolved #ISC now updates resolv.conf
그리고 설치됨
apt-get install ifupdown
질문
내 문제는 nftables
방화벽이 실제로 프로세스 당 트래픽을 차단하지 않는다는 것입니다.
systemd
OS 수준에서 네트워크 인터페이스를 사용하여 모든 프로세스를 격리하는 방법은 무엇입니까 ? 일종의 그룹 리소스 제한 장치일까요?
노트
제발 시스템화 된 화염 전쟁은 필요하지 않습니다. 이는 가장 빠른 시작이라는 systemd의 원래 디자인을 보존하기 위한 것입니다.
답변1
반대표를 받을 위험이 있으므로 네트워크 인터페이스에 액세스하고 싶지 않다면 systemd
사용하지 마세요 systemd
.
수년에 걸쳐 우리는 systemd-suite가 점점 더 많은 기능을 흡수하는 것을 보아 왔으며 그 중 일부에는 네트워크 액세스가 필요합니다. 당신이 말했듯이 그것은 문어입니다. systemd 제품군의 다양한 프로세스의 상호 의존성은 종종 놀랍습니다(적어도 나에게는). 이는 systemd 제품군의 프로세스를 따르지 않으면 몇 번의 업그레이드 후에 모든 것을 다시 테스트하고 재구성해야 함을 의미합니다.
진정한 최소한의 게이트웨이 기능을 위해서는 비지박스 기반 시스템을 고려해 보겠습니다.
답변2
제거할 수 있습니다 systemd
. 그러나 이에 의존하는 프로그램이 꽤 많이 있습니다.
따라서 또 다른 방법은 비활성화하고 중지하는 것입니다 systemctl
.