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