구체적으로
CentOS를 실행하는 서버에 iptables 규칙 세트가 정의되어 있습니다. 네트워킹이 온라인 상태가 될 때 (머신 부팅시 또는 네트워크 서비스를 다시 시작한 후) iptables 규칙 세트가 이미 적용되어 있는지 (iptables가 시작되지 않거나 규칙 세트를 적용하지 못한 경우) 보장 할 수 있습니까? 네트워크 인터페이스가 작동하지 않습니다)?
(이것은 멍청한 질문이라는 것을 알고 있지만 가장 무질서한 DHCP NAT와 방화벽 뒤에있는 신뢰할 수있는 네트워크 이외의 서버에서 서버를 실행 한 적이 없으므로 멍청한 놈에게서 멍청한 질문을 기대하십시오.)
답변
기본적으로 시작 스크립트 순서에 따라 인터페이스가 표시되기 전에 iptables가 시작됩니다. 각 시작 스크립트에서 “chkconfig”행을 보면 활성 상태 일 때 실행 상태, 시작 순서 및 중지 순서가 표시됩니다.
iptables 규칙 세트가 제대로 적용되지 않았거나 전혀 적용되지 않은 경우 인터페이스가 표시되지 않을 것입니다.
예 :
chkconfig: 2345 08 92
이 줄은 해당 서비스가 런레벨 2, 3, 4 및 5에서 활성화되고 8에서 시작하여 92에서 중지됨을 나타냅니다. “start”값이 큰 항목은이 스크립트가 완료된 후에 만 시작됩니다. 그러나이 스크립트 오류는 완료된 것으로 간주되며 다운 스트림 스크립트 실행을 방해하지 않습니다.
이 답변은 CentOS 6 및 이전 버전에 적용되며 반드시 CentOS 7에는 해당되지 않습니다. 7에 대해이 질문에 대한 답변을 충분히 개인적으로 조사하지 않았습니다.
답변
CentOS에서 ifup-post 옵션을 사용할 수도 있습니다.
/ etc / sysconfig / network-scripts / ifup-post
SLIP 장치를 제외한 네트워크 장치가 나타나면 호출됩니다. / etc / sysconfig / network-scripts / ifup-routes를 호출하여 해당 장치에 의존하는 고정 경로를 불러옵니다. / etc / sysconfig / network-scripts / ifup-aliases를 호출하여 해당 장치의 별칭을 불러옵니다. 호스트 이름이 설정되어 있지 않고 해당 장치의 IP에 대한 호스트 이름을 찾을 수있는 경우 호스트 이름을 설정합니다. 네트워크 이벤트 알림을 요청한 모든 프로그램에 SIGIO를 보냅니다.
필요에 따라 네임 서비스 구성을 수정하고 임의의 스크립트를 호출하는 등의 확장이 가능합니다.
이 스크립트는 위 (ifup-route 및 ifup-aliases) 이후에 실행되며 ifup-local을 찾습니다.
if [ -x /sbin/ifup-local ]; then
/sbin/ifup-local ${DEVICE}
fi
따라서이 파일을 작성하고 iptables-restore를 사용하여 iptables를 다시 호출하는지 확인할 수 있습니다.
iptables-restore < /etc/sysconfig/iptables
답변
약간의 부록 : 다음에 서버를 부팅 할 때 필요한 규칙이 있는지 확인하려면 다음을 저장하십시오.
sudo sh -c "iptables-save > /etc/iptables.rules"