본문 바로가기
Old Posts/Linux

[Linux] iptables 명령어를 이용한 IP 블럭 사용방법

by A6K 2021. 6. 18.

서버를 운영하다보면 특정 IP 주소에서 들어오는 요청을 블럭해야 할 경우가 있다. 클러스터에서 특정 호스트를 강제로 제외시키고 싶은 경우나 원격 접속이 불가능한 상황을 테스트해야할 경우 등이 이에 해당한다.

특정 서버에서 ip 주소를 블럭하기 위해 iptables 명령을 이용할 수 있다. iptables 명령은 /sbin/iptables 에 있는 경우가 많다.

iptables로 ip 주소 블럭하기

우선 서버에 루트 계정 혹은 sudo 권한이 있는 사용자로 로그인한다. 그리고 다음 명령을 실행한다.

$ sudo /sbin/iptables -A INPUT -s $IP_ADDRESS -j DROP

$IP_ADDRESS 부분을 접속 차단할 IP 주소로 바꿔주면 된다. 예를 들어 172.0.0.10 호스트에서 들어오는 패킷들을 차단하기 위해서는 다음과 같이 실행하면 된다.

$ sudo /sbin/iptables -A INPUT -s 172.0.0.10 -j DROP

이 명령이 실행되면 172.0.0.10 으로부터 들어오는 요청들은 블럭된다.

만약 특정 IP 주소에서 들어오는 요청 중 특정 포트로 들어오는 패킷을 드랍하고 싶으면 --destination-port 옵션을 추가하면된다. 예를 들어 172.0.0.10 주소에서 25번 포트로 들어오는 패킷을 드랍하고 싶으면 다음 명령을 실행하면 된다.

$ sudo /sbin/iptables -A INPUT -s 172.0.0.10 --destination-port 25 -j DROP

이 명령어가 실행되면 172.0.0.10 로부터 25번 포트로 들어오는 패킷들이 드랍된다.

iptables로 블럭된 ip 주소 확인하기

현재 블럭된 ip 주소 정보 및 등록된 넷필터 정보를 확인하는 명령어는 다음과 같다.

$ sudo /sbin/iptables -L -nv

명령어를 실행하면 등록된 룰들을 확인할 수 있다.

iptables로 ip 주소 블럭 해제하기

블럭된 ip 주소를 블럭해제하기 위해서는 다음 명령어를 실행하면 된다.

$ sudo /sbin/iptables -D INPUT -s 172.0.0.10 -j DROP

해당 IP 주소가 블럭되어 있었다면 블럭해제된다.

iptables 설정 저장

$ sudo service iptables save

Config 파일로 블럭된 정보들이 저장된다.

댓글