난 방금 읽었어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-save
IPv6의 경우 다음 과 같은 유사한 명령을 사용할 수 있습니다 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 명령을 포함합니다. 생성된 파일을 다시 로드하기 전에 편집할 수도 있습니다. 적어도 그것이 내가 하는 일입니다. 이것이 최선의 접근 방식인지는 확실하지 않지만 확실히 작동합니다.