(/etc/sysconfig/iptables) "이 파일을 수동으로 사용자 정의하는 것은 권장되지 않습니다." 이유는 무엇입니까?

(/etc/sysconfig/iptables) "이 파일을 수동으로 사용자 정의하는 것은 권장되지 않습니다." 이유는 무엇입니까?

파일을 직접 편집하세요

/etc/sysconfig/iptables 

많은 두통과 시간 등을 절약할 수 있었을 텐데…

하지만 파일 맨 위에는 다음과 같이 적혀 있습니다.

Manual customization of this file is not recommended.

이것은 새로운 centos 6.4 클라우드 서버와 함께 제공되는 "/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 -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

포트 80을 열려면 간단히 라인을 복제하면 됩니다.

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

그런 다음 "22"를 "80"으로 변경한 다음 파일을 저장하고 전체 시스템을 다시 시작합니다.

그러면 포트 80이 열립니다.

이것은 매우 간단한 조작입니다. 그러나 문서에는 수동 편집이 권장되지 않는다고 나와 있습니다.

왜 조언을 따라야 합니까?

답변1

system-config-firewallncurses(또는 ncurses 기반의 형제)라는 도구가 system-config-firewall-tui이 파일을 관리하기 때문입니다. 이 도구를 사용하여 새로운 iptables 규칙을 생성할 때마다 덮어쓰게 됩니다 /etc/sysconfig/iptables.

관련 맨페이지:28.1.16. /etc/sysconfig/iptables-config

그렇기 때문에 권장하지 않지만 권장하지도 않습니다.금지하다. CentOS 또는 기타 EL 버전 6을 사용하여 규칙을 저장하는 가장 좋은 방법은 메모리에 몇 가지 규칙을 추가한 후 iptables 서비스를 사용하는 것입니다.

# service iptables save

관련 질문:iptables가 CentO의 /etc/sysconfig/iptables에서 정보를 가져오지 못하는 이유는 무엇입니까?

이 파일을 직접 편집하지 않는 이유( /etc/sysconfig/iptables):

  • 자동으로 생성된 파일이기 때문입니다. 그 내용은 script/daemon 에서 나옵니다 /etc/init.d/iptables.
  • iptables 데몬 재설정 또는 중지와 같은 특정 작업은 파일을 덮어쓰기 때문에 데이터 손실을 일으킬 수 있습니다. 이 주제에 대한 흥미로운 변수는 IPTABLES_SAVE_ON_STOP=""파일 IPTABLES_SAVE_ON_RESTART=""내부입니다 /etc/sysconfig/iptables-config. 아마도 이를 조정하면 변경 사항이 /etc/init.d/iptables영구적으로 적용됩니다.
  • 문서이기 때문에나는 이미 그렇게 말했다Red Hat은 방화벽 인프라를 사용하는 가장 좋은 방법으로 이를 권장합니다.

"내 방화벽 규칙을 재정의"하는 또 다른 솔루션은 이러한 스크립트를 완전히 비활성화하고 방화벽을 관리하는 사용자 지정 방법에 의존하는 것입니다.미역취 속의 일종.

답변2

하지만 파일 맨 위에는 다음과 같이 적혀 있습니다.

글쎄요, 이상해요. 내 윗부분은 다음과 같이 말합니다.

# Manual customization of this file is strongly encouraged.

/etc/sysconfig누군가 변경한 게 틀림없어요 ;) 사실, 패키지 관리자나 다른 것에 의해 "자동 사용자 정의 해제"되지 않도록 옮기기도 했습니다 ;) ;)

내 생각에 이런 유형의 프로필의 요점은 자신이 무엇을 하고 있는지 모른다면 하지 말라는 것입니다. 때때로 시스템이 파일을 덮어쓸 수 있다는 경고도 있습니다. 업그레이드 시 패키지 관리자가 이 작업을 수행할 수 있습니다. PM이 파일이 수동으로 변경되었음을 알아차리고 덮어쓰거나 복사본을 저장하지 않는 경우도 있지만 특히 이 구성을 담당하는 다른 도구일 수도 있습니다(참조).엔와일드너의 답변).

"당신이 하고 있는 일을 아는 것"의 일부는 이와 같은 각도에 주의를 기울이는 것입니다. 또한 구성 파일에 대해 다른 위치를 사용하도록 iptables의 init 서비스를 사용자 정의했습니다. 가장 중요한 것은 다음과 같습니다.이 컴퓨터를 사용하는 사람은 나뿐이다.

루트 액세스 권한을 가진 다른 사람이 있다고 가정하면 "나는 이 방법을 선호합니다"보다 더 나은 이유가 없는 한 내가 담당하는 서버에서 이 작업을 수행하지 않을 것입니다. 이는 혼란을 야기하고 어느 시점에서 다른 사람들에게 두통을 줄 수 있기 때문입니다. 그러나 당신이 유일한 사용자이고 다른 누구도 시스템에 의존하지 않는다면 당신은 원하는 것을 자유롭게 할 수 있습니다. 방화벽을 구성하는 "선호하는 방법"은 다음과 같습니다.

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.current시작 시 복사하여 생성됩니다 /etc/iptables(iptables 서비스는 처음에 로드되도록 구성됨). 이렇게 하면 시스템 시작을 위한 참조 지점을 유지하면서 콘텐츠를 동적으로 수정할 수 있습니다.

그러한 경고가 포함된 구성을 실제로 사용하려는 경우 중요한 사항은 다음과 같습니다.항상 원본의 백업 복사본을 먼저 만드십시오.

관련 정보