특정 사용자가 localhost만 사용하도록 제한할 수 있나요?

특정 사용자가 localhost만 사용하도록 제한할 수 있나요?

Nginx 서버를 통해 여러 NodeJS 서버에 액세스했습니다. Nginx는 localhost를 통해 NodeJS 서버로 릴레이됩니다. 지금은 필요한 작업을 수행할 수 있도록 모든 작업을 수행하고 있지만 앞으로는 사용자가 자신의 서버를 직접 운영할 수 있기를 바랍니다.

내가 해야 할 일은 루트가 아닌 사용자가 localhost에만 액세스하도록 제한하는 것입니다. 내가 할 수 있을까?

답변1

다음을 사용하여 사용자의 트래픽을 필터링할 수 있습니다.iptables 소유자 모듈루프백 인터페이스만 허용됩니다.

# accept incoming packets to loopback device
iptables -A OUTPUT -m owner --uid $USER -o lo -j ACCEPT
# drop everything else
iptables -A OUTPUT -m owner --uid $USER -j DROP

위의 규칙을 사용하면 사용자는 수신한 메시지에 응답할 수 없는 경우에도 제한되지 않은 포트에서 수신 대기하는 프로세스를 생성할 수 있습니다. 시스템 전체의 화이트리스트로 규칙을 작성할 수도 있습니다. 즉, 양호한 트래픽을 모두 먼저 수락하고 나머지는 모두 삭제합니다.

들어오는 트래픽을 필터링하기 위해 소유자 모듈을 사용할 수 없습니다(참조:매뉴얼 페이지) 다음을 허용하도록 입력 체인을 구성할 수 있습니다.확립된명시적으로 허용되지 않은 기타 수신 트래픽을 삭제합니다.

# change default action to drop
iptables -P INPUT DROP
# allow established connections (replies)
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

네트워크 포트에서 수신 대기하는 서비스를 실행하는 경우 해당 서비스가 트래픽을 수신할 수 있도록 적절한 규칙을 추가해야 합니다.

관련 정보