도움이나 조언이 필요합니다.
프로덕션에 적용하려고 하는데 재부팅 시 규칙을 로드할 수 없는 최신 서버가 있습니다.
"Debian GNU/Linux 10(buster)" 패키지가 최신 버전입니다.
나는 iptables-perpersist를 설치했고, 그것을 설치했고 ran dpkg-reconfigure iptables-persistent
규칙을 다음에 저장합니다./etc/iptables
내 폴더에 다음 콘텐츠가 있습니다
rules.v4 rules.v6
다시 시작하면 내 규칙이 로드되지 않습니다. 아래에서 이렇게 하면 아주 잘 작동합니다! 재부팅 시에는 이 작업이 수행되지 않습니다.
iptables-restore < /etc/iptables/rules.v4
나는 이것을 시작으로 온라인에서 많은 리드를 따라가려고 노력했습니다.
Debian 시스템을 다시 시작한 후 iptables 규칙이 사라지는 이유는 무엇입니까?
Iptables 지속성 서비스가 변경 사항을 저장하지 않는 이유는 무엇입니까?
내가 뭘 잘못했는지 모르겠습니다. 나는 Fail2ban을 설치했고 작동했습니다. 나는 이것과 충돌을 보지 못하지만 시작 시 둘 다 iptables를 사용하게 될 것입니다...
iptables 로그를 볼 수 있는 방법이 있습니까? Journalctl에 기록됩니까? 왜 작동하지 않는지에 대한 아이디어를 줄 수 있는 것을 찾을 수 없습니다.
이러한 규칙은 시작 시 로드되어야 합니다. 누군가가 이 파일을 /etc/rc.local
.
Debian 시스템을 다시 시작한 후 iptables 규칙이 사라지는 이유는 무엇입니까?
도움을 주시거나 가능한 경우 iptables에 로그인해 주셔서 감사합니다.
재부팅하려고 할 때의 부팅 로그는 다음과 같습니다.journalctl -f -unetfilter-persistent
Jan 02 15:09:06 domain.ca netfilter-persistent[720]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Jan 02 15:09:06 domain.ca systemd[1]: Started netfilter persistent configuration.
Jan 02 15:09:50 domain.ca systemd[1]: Stopping netfilter persistent configuration...
Jan 02 15:09:50 domain.ca netfilter-persistent[1434]: Automatic flush disabled; use '/usr/sbin/netfilter-persistent flush'
Jan 02 15:09:50 domain.ca systemd[1]: netfilter-persistent.service: Succeeded.
Jan 02 15:09:50 domain.ca systemd[1]: Stopped netfilter persistent configuration.
Jan 02 15:09:50 domain.ca systemd[1]: Starting netfilter persistent configuration...
Jan 02 15:09:50 domain.ca netfilter-persistent[1436]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Jan 02 15:09:50 domain.ca netfilter-persistent[1436]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Jan 02 15:09:50 domain.ca systemd[1]: Started netfilter persistent configuration.
답변1
iptables는 백그라운드에서 Linux netfilter와 상호 작용합니다.
iptables 지속성 패키지 설치
$ sudo iptables-persistent -y
iptables 영구 서비스 시작 및 활성화
$ sudo systemctl enable --now netfilter-persistent.service
netfilter/iptables 규칙을 저장합니다.
$ sudo netfilter-persistent save
답변2
그래서. 결국 이것에 너무 많은 시간이 소비되었습니다. 작동시키기 위해 내가 한 유일한 일은 rc.local 을 사용하는 것이었습니다 sleep 1
. 이 컴퓨터에는 네트워크 같은 것을 로드하는 데 시간이 걸리는 것이 있습니다.
나는 읽고 있는 스레드의 다른 구성 요소 다음에 로드되도록 지속적인 방식으로 데몬을 편집해 보았습니다. 아무것도 작동하지 않습니다.
마지막으로 Debian에서는 rc.local을 활성화할 수 있습니다 systemctl enable rc.local
. 서비스가 시작되면 해당 파일에 vim /etc/rc.local
다음을 추가했습니다.
#!/bin/bash
# This script is executed at the end of each multiuser runlevel
sleep 1
/sbin/iptables-restore < /etc/iptables/rules.v4
# bash /root/restore.sh
exit 0
다시 시작하면 모든 규칙이 적용됩니다. 더 나은 해결책은 iptables가 더 이상 사용되지 않을 것이기 때문에 다른 사람들이 언급한 것처럼 다른 방화벽으로 이동하는 것입니다. 하지만 규칙이 복잡하고 시간이 없어요.