코딩마을방범대
ubuntu에서 사용자에게 특정 포트 제한하기 - (2) 포트 제한 설정 본문
위와 같이 유저 관리하는 포스팅을 했었다.
이후 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
'💡 백엔드 > 우분투' 카테고리의 다른 글
우분투의 sshpass 사용해보기 (1) | 2024.01.24 |
---|---|
우분투에서 파일 복사하기 (0) | 2024.01.16 |
ubuntu에서 사용자에게 특정 포트 제한하기 - (1) 유저 관리 (1) | 2024.01.11 |
현재 CPU, 메모리 사용량 모니터링 하는 방법 (1) | 2023.11.03 |
Nginx의 현재 연결 수, 처리된 요청 수 정보를 확인하는 방법 (0) | 2023.11.02 |