[unix] (/ 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이 열립니다.

이것은 매우 간단한 작업입니다. 그러나 파일에는 수동 편집을 권장하지 않습니다.

왜 조언을 따라야합니까?



답변

호출 된 도구 system-config-firewall(또는 ncurses based brother system-config-firewall-tui)가이 파일을 관리하므로 이 도구를 사용하여 새 iptables 규칙을 만들 때마다 덮어 씁니다 /etc/sysconfig/iptables.

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

이것이 권장되지는 않지만 금지 되지 않은 이유 입니다. CentOS 또는 다른 EL 버전 6을 사용하여 규칙을 저장하는 가장 좋은 방법은 메모리에 규칙을 추가 한 후 iptables 서비스를 사용하는 것입니다.

# service iptables save

관련 질문 : iptables가 centOs의 / 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은 이것이 방화벽 인프라를 사용하는 가장 좋은 방법이라고 조언합니다.

이 mindf이 *** 완전히 그 스크립트를 비활성화에 의해 노출 된 것과 같은, 방화벽을 관리하는 사용자 정의 방법에 의존하는 것입니다 “내 방화벽 규칙을 덮어 쓰기”에 대한 대안 솔루션 금발 미녀 .


답변

그리고 파일 맨 위에는 ..

흠, 이상하다. 내 상단에는 다음과 같이 말합니다.

# Manual customization of this file is strongly encouraged.

누군가가 그것을 변경했을 것입니다;) 그리고 실제로 그것을 밖으로 이동 /etc/sysconfig하여 패키지 관리자 또는 다른 것에 의해 “사용자 정의되지 않은”자동화되지 않습니다.););)

이러한 구성 파일의 일반적인 요점은 수행중인 작업을 모르는 경우 수행하지 않는 것입니다. 때때로 시스템이 파일을 덮어 쓰게된다는 경고가 있습니다. 업그레이드시 패키지 관리자가이를 수행 할 수 있습니다. 때때로 PM은 파일이 수동으로 변경되어 파일을 덮어 쓰지 않거나 사본을 저장하지 않는다는 것을 알 수 있지만이 구성을 담당하는 다른 도구 일 수도 있습니다. 특히 ( nwildner의 답변 참조 ).

“무엇을하고 있는지 아는 것”의 일부는 이와 같은 각도를 인식하는 것입니다. 또한 iptables가 구성 파일에 다른 위치를 사용하도록 초기화 서비스를 사용자 정의했으며 가장 중요한 것은 이 컴퓨터를 사용하는 유일한 사람입니다.

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

#!/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 서비스가 초기에로드되도록 구성됨). 이렇게하면 시스템이 시작하는 기준점을 유지하면서 즉시 물건을 수정할 수 있습니다.

이런 종류의 경고가 포함 된 구성을 사용하고 싶다면 항상 원본의 백업 복사본을 만드십시오.


답변