코딩마을방범대

ubuntu에서 사용자에게 특정 포트 제한하기 - (2) 포트 제한 설정 본문

💡 백엔드/우분투

ubuntu에서 사용자에게 특정 포트 제한하기 - (2) 포트 제한 설정

신짱구 5세 2024. 1. 11. 16:38

 

 

 

 

ubuntu에서 사용자에게 특정 포트 제한하기 - (1) 유저 관리

특정 사용자에 대해 포트를 제한해야 할 일이 생겼다. 이를 위해 유저를 추가하는 절차가 필요하다! 이번 포스팅엔 유저를 관리하는 방법을 다루고, 다음 포스팅엔 포트를 제한하는 방법을 다룰

sweet-rain-kim.tistory.com

 

위와 같이 유저 관리하는 포스팅을 했었다.

이후 1에서 생성한 유저들에 대해 포트를 제한시키는 방법을 알아볼거다!

 

 

 

 

iptables 설정

 

iptables는 방화벽 도구이며, 운영체제 레벨에서 직접적으로 포트 허용/차단을 설정해주는 방법은 없고 방화벽으로 막아줘야한다.

우선 모든 사용자에 대해 해당 포트를 차단하고, 이후에 특정 사용자에게 할당해주는 방식과

특정 포트 이 외 포트는 차단 시키는 방법이 있다.

 

 

모든 사용자에 대한 포트 차단 후 특정 사용자에 대한 포트 허용 방법

 

1. 모든 사용자에 대한 포트 차단

sudo iptables -A OUTPUT -p tcp --dport [포트번호] -j DROP
위 설정을 취소하는 방법은 아래 명령어를 사용하면 된다.
sudo iptables -D OUTPUT -p tcp --dport [포트번호] -j DROP​

 

 

 

 

2. 특정 사용자에 대한 포트 허용

sudo iptables -A OUTPUT -p tcp -m owner --uid-owner [사용자명] --dport [포트번호] -j ACCEPT

 

 

 


 

 

 

특정 포트 이 외에 포트는 차단 시키는 방법

sudo iptables -A OUTPUT -p tcp -m multiport ! --dports [포트번호1,포트번호2...] -m owner --uid-owner [사용자명] -j REJECT
위 설정을 취소하려면 아래 명령어를 실행하면 된다.
sudo iptables -A OUTPUT -p tcp -m multiport ! --dports [포트번호1,포트번호2...] -m owner --uid-owner [사용자명] -j REJECT​

 

 

 


 

 

설정된 규칙 확인

sudo iptables -L -n

 

 

위 명령어 사용 시 전체 사용자에 대한 규칙이 출력된다.

특정 내역만 확인하고 싶다면 아래 명령어를 사용하면 된다.

 

sudo iptables -L -n | grep --color=auto '사용자명'

 

 

그런데 아마 확인해보면 사용자명이 아닌 UID를 이용해 설정이 된 것을 확인할 수 있다.

 

 

 

사용자의 UID를 알아내는 방법id -u [사용자명] 명령어를 이용하면 된다.

혹은 UID를 통해 사용자명을 알아내고 싶은 경우 getent passwd [UID] 명령어를 이용하면 된다.

 

 

 

 

 


 

 

 

 

 

 

iptables-persistent 설치

 

설정은 기본 iptables를 이용해서 진행하지만, iptables-persistent를 설치하지 않으면 재부팅 시 열심히 설정한 정보가 모두 사라진다.

iptables-persistent를 이용해 설정 정보를 저장해주어야 그대로 지속이 가능하다.

 

 

 

1. iptables-persistent 설치

sudo apt-get update && sudo apt-get install iptables-persistent

 

 


 

 

2. 설정 정보 저장

sudo invoke-rc.d iptables-persistent save

 

 

 

 

 

SMALL