간단히 말해서 Glassfish가 포트 80에서 수신되었으면 URL을 입력할 때 포트를 지정할 필요가 없었으면 좋겠지만 Linux는 루트 없이 낮은 포트 번호를 허용하지 않으며 루트로 glassfish를 실행하는 것은 보안상 위험합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? glassfish가 단독으로 듣고 다른 프로그램을 사용하여 포트 80에서 다른 포트로 요청을 전달할 수 있도록 일종의 예외를 만드시겠습니까? 실제로 루트 권한을 부여하지 않고 glassfish에게 포트 사용 권한을 부여하는 방법이 있을까요?
답변1
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
glassfish 자체가 제공하는 것입니다.
직접적으로linux-service.template
:
# "특수" 포트 < 1024에서 GlassFish를 실행하는 방법을 보여주는 샘플 명령 # # iptables -t nat -A 사전 설정 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 # iptables -t nat -A 사전 설정 -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080
예, glassfish가 청취 파일 설명자를 수신하여 다음과 같은 환경에서 실행될 수 있다면 좋을 것입니다.s6-tcpserver
또는 systemd로 소켓을 활성화하십시오. 그러나 이러한 방식으로 작동하도록 설계되지 않았습니다.
추가 읽기
- 바이런 네빈스(2010-03-04). "GlassFish V3에서 1024 미만의 포트를 사용하도록 허용하는 방법".Linux Ubuntu/Debian에서 루트가 아닌 서비스로 GlassFish V3 실행. 오라클 주식회사.
create-service
. Oracle GlassFish 서버 참조 설명서. 버전 3.1.2.start-domain
. Oracle GlassFish 서버 참조 설명서. 버전 3.1.2.
답변2
bash의 복사본을 사용할 수 있습니다...
제 말은 $PATH
디렉토리 중 하나에 별도의 bash 버전을 만들고 이를 bash1 등으로 부를 수 있다는 뜻입니다.
그런 다음 실행할 수 있도록 다른 권한을 부여하는 것입니다.유리 물고기bash 대신 bash1을 사용하십시오.
즉, tyat bash는 변경되지 않고 별도의 허가된 bash 버전을 갖게 됩니다.유리 물고기. 유일한 단점은 특정 프로그램과 사용자로 제한해야 한다는 것입니다. 그렇지 않으면 전체 시스템이 손상될 수 있습니다...
답변3
"chroot"는 더 이상 예전만큼 널리 사용되지는 않지만 루트 권한으로 실행해야 하는 프로세스의 보안을 향상시킬 수 있는 도구입니다. 라이브러리(정적으로 링크된 프로그램 컴파일)를 포함하여 애플리케이션에 필요한 모든 파일이 포함된 가상/폴더를 생성할 때 약간의 추가 노력이 필요하므로 프로세스가 보안을 침해하는 경우 제한된 샌드박스에 위치하게 됩니다. 당연히 편집기나 네트워크 도구와 같은 불필요한 지원 프로그램은 제거됩니다.
바인딩/이름 지정을 실행하는 데 선호되는 방법 중 하나는 이 방법을 사용하는 것이므로 이 방법을 설정하는 방법에 대한 좋은 가이드가 될 수 있습니다.
확인하다https://help.ubuntu.com/community/BasicChroot자세한 내용은.