리눅스 박스의 방화벽 설정을 위해 iptables를 사용하고 있습니다. 그런데 iptables의 설정된 항목들은 리붓할 때 자동복구되지 않기 때문에 부팅할 때마다 수동으로 필요한 내용을 설정해줘야 합니다.

이런 무지막지한 일을 부팅할 때마다 해줘야 한다는 건 게으른 저 같은 사람에게는 도저히 용납할 수 없는 일입니다. 그래서 찾아봤더니 역시 해결책은 있더군요.

우선 부팅되기 전에 iptables의 현재 설정된 항목들을 저장해놓도록 합니다. 이건 데비안에서는 iptables-save 를 통해 해결할 수 있습니다.

iptables-save > /etc/firewall.conf

이렇게 백업해놓은 설정은 iptables-restore 를 통해 복구할 수 있습니다.

iptables-restore < /etc/firewall.conf

자, 이제 iptables의 설정을 백업하고 복구하는 방법은 알았으니 이를 자동으로 리붓할 때마다 실행되도록 만들어주면 됩니다.

우선 리붓하기 전에 백업을 하기 위해 /etc/network/if-down.d 디렉토리 아래에 iptables 라는 스크립트 파일을 만들어둡니다.

#!/bin/sh

/sbin/iptables-save > /etc/firewall.conf

그리고 복구를 위해 /etc/network/if-up.d 디렉토리 아래에 iptables 라는 스크립트 파일을 만듭니다.

#!/bin/sh

/sbin/iptables-restore < /etc/firewall.conf

자, 이제 앞으로는 리붓할 때마다 자동으로 현재의 iptables 설정을 백업하고 복구할 수 있게 되었습니다!