웹 서버를 구성할 때 포트포워딩(예를들어 8080 포트로 접근 시 80포트로 이동시키는) 방법에는 지금 내 수준에서는 아래 2가지다.
1. 정적 리소스를 담당하는 웹 서버를 앞에 두고 뒤에 WAS를 따로 두어서 앞에 있는 웹서버에서 포트포워딩을 해주는 방식
2. iptables를 통해서 PREROUTING 정책을 등록하여 라우팅 시점에 포트포워딩을 해주는 방식
참고 : https://steady-snail.tistory.com/153
기존 서버 구성은 iptables로 Prerouting 포트를 잡아준 상태였는데, 예전에 정리해두었던 글(위에 참고 블로그)을 보면 정책을 추가하는 구문과 삭제하는 구문이 옵션 하나로 달라진다. 즉, 설정한 정책 내용을 모르면 삭제할 수 없다는것이다. 그래서 삭제를 어떻게 하지? 해매다가 다른 삭제 방법을 찾았다.
규칙번호 기준으로 삭제
iptables 목록 조회 시 옵션으로 번호를 출력할 수 있다.
# iptables -L INPUT --line-numbers
이 때 나오는 번호를 아이디처럼 활용하여 삭제할 수 있다고 한다.
# iptables -D INPUT 2
위의 명령어로 iptables -L INPUT 목록에서 2라는 순번을 가진 정책을 지울 수 있다.
그런데 나는 한가지 더 문제가 있었다. nat이라는 특정 테이블을 사용하고 있었기 때문에 기존에 INPUT, OUTPUT, FORWORD 체인에 목록이 나오지 않는다. nat 테이블을 사용하는 경우에는 다음과 같이 해야한다.
iptables nat 테이블 사용 시 line number로 삭제하는 방법
여기서는 PREROUTING을 기준으로 한다. 다른 라우팅 시점은 아마 해당 라우팅 시점을 지정하면 될 듯 싶다.
등록된 정책 조회하는 명령어는 다음과 같다.
# iptables -t nat -L PREROUTING --line-numbers
드디어 내가 원하는 삭제하는 명령문
# iptables -t nat -D PREROUTING 1
이렇게하면 등록할 때 내용을 몰라도 등록된 정책을 제거할 수 있다.
참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lionlyloveil&logNo=220777727325