728x90
리눅스에서 일반 사용자가 1024 이하의 포트를 사용할 수 있도록 설정하는 방법(setcap/getcap)
Linux에서 setcap 명령으로 capabilities 설정하기
setcap 명령은 Linux 시스템에서 프로그램 또는 스크립트에 부여할 수 있는 capabilities를 설정하는 데 사용됩니다. Capabilities는 특정 작업을 수행하는 데 필요한 권한 수준을 정의하며, 일반 사용자에게는 허용되지 않는 작업을 수행하도록 프로그램을 승인하는 데 유용할 수 있습니다.
기본 구문
setcap [옵션] capability-spec program_name
- 옵션
- -c : 현재 프로세스의 capabilities 설정을 변경합니다.
- -r : 프로그램에서 설정된 모든 capabilities를 제거합니다.
- -p : 프로그램의 capabilities 설정을 출력합니다.
- capability-spec
- =capability : 프로그램에 해당 capability 부여
- +capability : 프로그램에 해당 capability 추가
- -capability : 프로그램에서 해당 capability 제거
예제
Nginx 웹 서버가 1024 이하 포트를 사용하도록 허용
sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/nginx
tcpdump를 사용하여 모든 사용자가 패킷 스니핑을 수행하도록 허용
sudo setcap 'cap_net_raw=+ep' /usr/bin/tcpdump
nc(Netcat) 명령어를 사용하여 포트를 오픈하는 방법을 예제
1. setcap 명령어를 사용하여 권한 설정
- nc 바이너리에 CAP_NET_BIND_SERVICE 권한을 설정합니다.
sudo setcap 'cap_net_bind_service=+ep' /bin/nc
2. 권한 확인
- 설정된 권한을 확인하려면 getcap 명령어를 사용합니다.
sudo getcap /bin/nc
/bin/nc = cap_net_bind_service+ep
- 이 출력은 cap_net_bind_service 권한이 올바르게 설정되었음을 나타냅니다.
3. nc 명령어로 포트 오픈
- 일반 사용자로 로그인하여 nc 명령어를 사용하여 999 포트를 오픈합니다.
nc -l -p 999
nc를 사용하여 999 포트를 리슨(listen)하게 합니다. 이제 포트 999가 일반 사용자에 의해 사용되고 있습니다.
참고URL
- 커피닉스 : 일반유저가 1024이하 포트를 사용하려면
728x90
'리눅스' 카테고리의 다른 글
stormssh 설치 후 collections 모듈 에러 (0) | 2022.11.16 |
---|---|
CentOS 7에서 SELinux를 비활성화하는 방법(selinux disabled) (0) | 2022.11.15 |
[리눅스] OpenLDAP 설치 및 구성 (0) | 2022.11.14 |
[draft] Shell 스크립트 if 조건문 (0) | 2022.11.14 |
[draft] Shell 스크립트 for 반복문 (0) | 2022.11.14 |