방화벽 규칙을 적용하다가 SSH 연결이 끊기는 경우는 대부분 규칙 적용 순서 때문입니다. service iptables restart
명령은 기존 규칙을 모두 지운 후 새로운 규칙을 순서대로 다시 적용하는데, 이때 잠시라도 본인의 IP를 허용하는 규칙이 적용되기 전에 22번 포트 거부
규칙이 먼저 적용되면 바로 접속이 차단됩니다.
안전하게 방화벽 규칙 적용하는 방법
이런 사고를 예방하기 위한 가장 좋은 방법은 자동 복구 명령을 미리 설정하는 것입니다. 만약 접속이 끊기더라도 일정 시간 후에 자동으로 모든 규칙을 초기화하여 다시 접속할 수 있게 됩니다.
아래는 at
명령어를 사용한 안전한 적용 절차입니다.
단계별 안전 절차
-
자동 복구 명령 예약 (가장 중요) 터미널에 다음 명령어를 입력합니다. 아래 명령어는 5분 뒤에 모든 iptables 규칙을 초기화하는 작업(
iptables -F
)을 예약합니다.Bashecho "iptables -F" | at now + 5 minutes
이 명령을 실행한 후,
job 1 at ...
과 같은 메시지가 나오면 성공적으로 예약된 것입니다. -
새 방화벽 규칙 적용 이제 새로운 방화벽 규칙이 포함된
iptables
파일을 적용합니다.Bashsudo service iptables restart
-
연결 확인 및 예약 취소 새 규칙이 적용된 후에도 접속이 끊기지 않았다면, 모든 규칙이 의도대로 잘 동작하는 것입니다. 이때는 방금 예약했던 자동 복구 작업을 취소해야 합니다.
Bashatq # atq 명령으로 예약된 작업 번호(job number)를 확인합니다. 예: 1 atrm <작업번호> # 예: atrm 1
만약 접속이 끊겼다면? 걱정하지 마세요. 5분 뒤에 iptables -F
명령이 자동으로 실행되어 모든 규칙이 사라집니다. 잠시 후 다시 SSH로 접속하면 됩니다. 접속에 성공하면 위 3번 절차를 다시 진행하세요.
최종 규칙 저장 안전하게 규칙 적용을 완료했다면, 마지막으로 sudo service iptables save
를 실행하여 변경 사항을 영구적으로 저장합니다.