본문 바로가기

목록이 없습니다.

[iptables] 등록되어있는 정책 제거 (feat. --line-numbers)

Server/Ubuntu

     

    웹 서버를 구성할 때 포트포워딩(예를들어 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

    http://daplus.net/linux-iptables%EC%97%90%EC%84%9C-%ED%8A%B9%EC%A0%95-%EA%B7%9C%EC%B9%99%EC%9D%84-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%A0%A4%EB%A9%B4-%EC%96%B4%EB%96%BB%EA%B2%8C%ED%95%B4%EC%95%BC%ED%95%A9%EB%8B%88%EA%B9%8C/