현재 연결을 끊지 않고 원격으로 IPFW를 다시 시작하거나 SSH 연결을 통해 스크립트를 다시 로드할 수 있습니까?
답변1
내 질문에 대한 답을 찾은 것 같습니다.논의하다내 질문에 부분적으로 답변되었습니다. 예, 실제로 스크립트를 실행하면 처음에 많은 스크립트가 이 줄을 사용하므로 모든 규칙이 플러시됩니다 ipfw -f flush
.
그러나 따르면문서, 특별한 것이 있습니다31화, 비활성화할 수 없으며 집합 31의 규칙은 ipfw flush
이 명령으로 삭제되지 않습니다(그러나 이 명령을 사용하여 삭제할 수 있습니다 ipfw delete set 31
). 따라서 set 31
스크립트에 규칙 번호를 추가하고 다시 시작해도 SSH 연결 끊기 규칙에는 영향을 미치지 않습니다. 예를 들어:
$cmd 00410 set 31 allow tcp from any to me 22 in via $pif setup keep-state
또는
$cmd 00280 set 31 allow log tcp from any to any 22 out via $pif setup keep-state
답변2
SSH 세션에만 관심이 있는 경우 규칙 초기에 SSH에 대한 정적 규칙만 사용하여 동적 규칙 테이블을 새로 고칠 때 발생하는 연결 끊김을 방지할 수 있습니다.
예를 들면 다음과 같습니다.
ipfw add 100 allow tcp from any to any 22 in via $pif setup keep-state
ipfw add 101 allow ip from any 22 to any out via $pif setup keep-state
사용:
ipfw add 100 allow ip from any to any 22 in via $pif
ipfw add 101 allow ip from any 22 to any out via $pif
답변3
SH 스크립트 "/etc/fw.rules"(제 기억이 맞다면 FBSD의 일반 스크립트는 "rc.firewall"입니다)와 sudo 권한(물론 루트로 실행 가능)을 가정해 보겠습니다.
#sudo sh -c "/bin/sh /etc/fw.rules > /dev/null 2>&1"