영구 iptables

영구 iptables

난 방금 읽었어iptables-지속성디자인에 완전히 빠졌네요. 그래요유일한 사람은 아니다, 그것이 어떻게 작동하는지 이해하지 못했지만 실제로는 내 상상을 훨씬 넘어서는 것 같았습니다.

나는 다음과 같은 것을 상상했다.크론탭 -e: 규칙 세트를 편집하면 편집기를 닫을 때 해당 규칙이 유지되고 적용됩니다. 그들은 저장되어 있다어딘가에그리고 나는 사용자로서 어디에 있는지 모릅니다. 말하지 마세요. 그러면 완벽할 것 같아요.

그런 도구가 있나요? 왜 iptables-persistent이렇게 따라하기 어려운 방식으로 작업하는 걸까요?

답변1

일반적으로 텍스트 편집기를 사용하여 iptables-save파일에 규칙을 쓰는 명령을 사용하여 IPv4에 대한 활성 iptables 규칙을 편집할 수 있으며, iptables-restore작업이 끝나면 명령을 사용하여 새 규칙을 다시 로드할 수 있습니다. 예:

user@host:~$ iptables-save > rules.v4
user@host:~$ vim rules.v4
user@host:~$ iptables-restore rules.v4

ip6tables-saveIPv6의 경우 다음 과 같은 유사한 명령을 사용할 수 있습니다 ip6tables-restore.

user@host:~$ ip6tables-save > rules.v6
user@host:~$ vim rules.v6
user@host:~$ ip6tables-restore rules.v6

서비스 iptables-persistent는 다음 위치에서 확인합니다.

/etc/iptables/rules.v4
/etc/iptables/rules.v6

따라서 규칙을 적용하고 유지하려면 위와 동일한 단계를 따르되 파일을 편집합니다 iptables-persistent. 예를 들면 다음과 같습니다.

user@host:~$ iptables-save > /etc/iptables/rules.v4
user@host:~$ vim /etc/iptables/rules.v4
user@host:~$ iptables-restore /etc/iptables/rules.v4

나는 당신이 설명한 것처럼 iptables 규칙을 편집하는 대화형 명령을 모르지만 직접 만드는 것은 쉬울 것입니다. 간단한 예는 다음과 같습니다.

#!/usr/bin/env bash

# iptables-e.sh

# Create a temporary file to store the new rules
TEMPFILE=$(mktemp)

# Save the current rules to a file
iptables-save > "${TEMPFILE}"

# Edit the rules interactively with a text editor
"${EDITOR}" "${TEMPFILE}" 

# Try to load the rules and update the persistent rules if no errors occur
iptables-restore "${TEMPFILE}" && cat "${TEMPFILE}" > /etc/iptables/rules.v4

crontab -e이는 활성 crontab을 /var/spool/cron/crontabs디렉토리의 파일에 자동으로 저장하여 crontab이 지속되도록 하는 작동 방식과 크게 다르지 않습니다 . 이 주제에 대한 자세한 내용은 다음 게시물을 참조하세요.

다음 스크립트에도 관심이 있을 수 있습니다.

하지만 나는 그것을 보장할 수 없습니다. 나는 그것을 사용한 적이 없습니다. 이것이 내가 Interactive iptables edit를 검색하여 찾은 유일한 것입니다.

답변2

다음과 같은 스크립트를 작성하면 어떨까요?

#!/bin/bash
...
${YOUR_IPTABLES_RULES}
...

그런 다음 머신을 재부팅할 때마다 스크립트를 시작합니다.

# vim /etc/crontab
@reboot         root         /bin/bash /root/bin/myiptablesrules.sh

이렇게 하면 지속적인 규칙도 갖게 됩니다. :)

답변3

iptables-save 명령을 사용해 보셨나요?

iptables-save > /path/to/file
ip6tables-save > /path/to/file
iptables-restore < /path/to/file
ip6tables-restore < /path/to/file

수동으로 파일에 저장하고 복원 명령을 추가하여 시작 또는 로그인 시 실행할 수 있습니다. 생성된 파일은 사람이 읽을 수 있으며 각 항목에 해당하는 iptables 명령을 포함합니다. 생성된 파일을 다시 로드하기 전에 편집할 수도 있습니다. 적어도 그것이 내가 하는 일입니다. 이것이 최선의 접근 방식인지는 확실하지 않지만 확실히 작동합니다.

관련 정보