CentOS에 iptables를 저장하고 이전 규칙을 새로 저장된 규칙과 병합하시겠습니까?

CentOS에 iptables를 저장하고 이전 규칙을 새로 저장된 규칙과 병합하시겠습니까?

명령을 사용하여 몇 가지 새로운 규칙을 추가한 후 iptables다음을 사용하여 저장했습니다./sbin/service iptables save

그 후에는 /etc/sysconfig/iptables내 새 규칙만 파일에 표시됩니다. 이제 모든 이전 규칙 /etc/sysconfig/iptables.save이 파일에 있습니다.

내가 아는 바로는 시스템이 재부팅되면 새로운 규칙이 적용되지만 이전 규칙은 적용되지 않습니다. 새로운 규칙과 기존 규칙을 모두 적용하려면 어떻게 해야 합니까?

답변1

귀하의 문제는 새 규칙을 추가할 때 이전 규칙 세트가 로드되지 않는다는 것입니다. 따라서 저장하면 새로 추가된 규칙만 저장되고 이전 규칙은 모두 덮어쓰게 됩니다.

규칙 세트에서 규칙을 추가하거나 제거하려면 먼저 를 사용해야 합니다 . 그런 다음 현재 규칙 세트를 다시 service iptables start편집하고 저장할 수 있습니다 . 이렇게 하면 병합을 수행할 필요가 없습니다.service iptables save/etc/sysconfig/iptables

이제 두 파일을 병합하려면 수동으로 편집해야 합니다. 예를 들어 규칙 중 하나를 로드한 다음 다른 규칙에서 병합하려는 규칙을 수동으로 복사하여 붙여넣고 명령을 사용하여 삽입한 iptables다음 service iptables save이 작업을 다시 수행하여 구성 파일에 저장합니다.

다음 재부팅 시 파일의 규칙이 자동으로 로드되도록 하려면 다음을 수행하십시오. 이렇게 하면 chkconfig iptables oniptables 서비스가 기본 실행 수준에 추가됩니다.

답변2

유일한 옵션은 텍스트 편집기를 사용하여 두 파일을 수동으로 병합하는 것입니다. 두 파일의 항목은 일반 텍스트이므로 이 작업을 상당히 쉽게 수행할 수 있습니다.

이것은 내 파일입니다 /etc/sysconfig/iptables.

$ sudo more /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

다른 파일의 항목을 병합할 때 /etc/sysconfig/iptables.save순서가 그대로 유지되는지 확인하면 됩니다. 따라서 해당 파일에 줄이 있으면 -A INPUT ...이미 있는 줄의 끝에 넣겠습니다.

나는 비슷한 규칙을 따를 것입니다. 따라서 테이블의 항목을 INPUT함께 배치하고 FORWARD테이블의 규칙을 함께 배치하십시오.

인용하다

관련 정보