부팅하는 동안과 네트워크 인터페이스가 온라인 상태가 되기 전에 최대한 빨리 iptables 또는 nftables 규칙을 로드하세요.

부팅하는 동안과 네트워크 인터페이스가 온라인 상태가 되기 전에 최대한 빨리 iptables 또는 nftables 규칙을 로드하세요.

Debian 설치가 시작될 때 iptables 규칙을 로드하기 위해 특정 서비스에 의존합니다.

iptables-restore my_rules.v4

ip6tables-restore my_rules.v6

그리고 다른 스크립트를 실행해 보세요

그러나 인터페이스를 활성화하고 기본 규칙이 적용되는 펌웨어 규칙을 적용하는 데 약간의 시간이 걸리며 이로 인해 시스템이 일부 위험에 노출될 수 있다는 것을 알고 있습니다.

iptables-perpersist 서비스를 활성화했지만 네트워크 부분이 시작되기 전에 로드되는지 확실하지 않습니다.

네트워크가 온라인 상태가 되어 사용 가능해지기 전에 스크립트를 로드하는 가장 좋은 방법은 무엇입니까?

인터페이스에 프리업이 있다는 얘기는 들어봤는데 인터페이스가 너무 많아서 어떤 것을 먼저 넣어야 할지 모르겠고, 모든 인터페이스에 프리업을 사용하면 스크립트가 한 번이 아닌 너무 많이 실행되는 현상이 발생합니다. .

답변1

Debian 12에서 기본값은 iptables새 하위 시스템 nftables의 래퍼 입니다. 이 iptables-persistent패키지는 alias 및 이라는 서비스를 생성하는 package 에 의존합니다 netfilter-persistent.netfilter-persistent.serviceiptables.serviceip6tables.service

다음과 같이 정의됩니다 netfilter-persistent.service:

systemctl cat netfilter-persistent.service

# /lib/systemd/system/netfilter-persistent.service
[Unit]
Description=netfilter persistent configuration
DefaultDependencies=no
Wants=network-pre.target systemd-modules-load.service local-fs.target
Before=network-pre.target shutdown.target
After=systemd-modules-load.service local-fs.target
Conflicts=shutdown.target
Documentation=man:netfilter-persistent(8)

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/netfilter-persistent start
ExecStop=/usr/sbin/netfilter-persistent stop

[Install]
WantedBy=multi-user.target

# /usr/lib/systemd/system/netfilter-persistent.service.d/iptables.conf
[Install]
Alias=iptables.service ip6tables.service

DefaultDependencies=no, 및 .Wants=network-pre.targetBefore=network-pre.target예상되는 방법 중 하나를 사용하여 네트워크 인터페이스를 구성한다고 가정하면 네트워크 인터페이스를 구성하기 전에 iptables/nftables 규칙이 복원됩니다.

그래서 대답은,예, iptables-persistent네트워크 인터페이스를 시작하기 전에 로드됩니다.

iptables/nftables 규칙에 대한 사용자 정의 서비스를 생성하려면 동일한 방식으로 해당 서비스에 대한 종속성을 설정해야 합니다 netfilter-persistent.service.

network-pre.target문서를 참고하세요systemd.special(7)매뉴얼 페이지(강조):

network-pre.target

이 수동 대상 장치는 네트워크가 설정되기 전에 실행하려는 서비스에 의해 당겨질 수 있습니다.예를 들어 방화벽을 설정하려면. 모든 네트워크 관리 소프트웨어는 이 대상을 따라 자동으로 정렬되지만 끌어오지는 않습니다. 또한보십시오네트워크 연결 후 서비스 실행더 많은 정보를 알고 싶습니다.

답변2

배포판에 따라 예를 들어 Fedora Linux가 이 작업을 수행합니다. 이상한 점은 배포판에 없다는 것입니다.보안 취약점확실히 보고하고 수정할 가치가 있습니다. Systemd는 로딩 장치에 종속되어 있으므로 네트워킹을 방화벽 장치에 종속되게 만들어야 합니다. 다른 초기화 시스템을 사용하는 경우에는 문의하시기 바랍니다.

관련 정보