사용자 정의 DNS 서버를 실행하고 싶습니다(Nx 필터정확히 말하면)시놀로지 DS115j NAS, 물론 포트 53에 바인딩됩니다. 이것은 루트로 실행할 때 작동하지만 이제 프로세스를 잠그고 싶습니다.
NAS는 비지박스 버전의 Linux(Synology 용어로 DSM5 사용)를 실행합니다. Java Manager 패키지를 사용하여 Java를 설치했습니다. 이제 권한 있는 포트 53에 바인딩할 수 있도록 허용하면서 루트가 아닌 계정으로 Java 프로세스를 실행하는 방법을 찾고 있습니다.
나는 이 훌륭한 답변을 조사했습니다.https://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-443하지만 내 Synology 상자에서는 작동하지 않습니다. 나는 setcap
둘 다 없다 authbind
.
질문은 다음과 같습니다.프로세스/바이너리가 busybox Linux의 권한 있는 포트에 바인딩되도록 구체적으로 허용하는 방법은 무엇입니까?
답변1
iptables에 액세스할 수 있습니까? Synology NAS 상자에 iptables가 있다는 것을 어렴풋이 기억합니다. 그렇다면 다음 명령을 사용하여 리디렉션할 수 있습니다.
iptables -I INPUT 1 -p tcp --dport 53 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 7000 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 53 -j REDIRECT --to-port 7000
라인 1은 포트 53에 개구부를 추가하고, 라인 2는 포트 7000에 개구부를 추가하며, 이를 사용하기 위해 Java 애플리케이션을 설정해야 하며, 라인 3은 포트 53에서 들어오는 트래픽을 리디렉션하는 리디렉션을 추가합니다. 사이트 트래픽은 포트로 전달됩니다. 7000.