출처 : http://stevenjsmin.tistory.com/103
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-ko-4/s1-fireall-ipt-act.html
리눅스에서 1024 이하의 포트는 보안상의 이유로 ROOT 권한을 가진 프로세스만이 선점할 수 있다.
별다른 조치 없이 80포트로 톰캣을 유저계정으로 띄우고자 할 때 아래와 같은 에러가 발생 한다.
2014. 11. 24 오전 11:14:15 org.apache.coyote.AbstractProtocol init
정보: Initializing ProtocolHandler ["http-bio-80"]
2014. 11. 24 오전 11:14:15 org.apache.coyote.AbstractProtocol init
심각: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.BindException: Permission denied <null>:80
따라서 80포트로 서비스 하고자 한다면, 톰캣의 HTTP Connector Port를 1024이상의 포트번호로 지정해준 뒤, 80포트로의 모든 인바운딩을 Tomcat의 HTTP Connector Port로 리다이렉트 해주어야한다. 아래는 iptables 명령을 이용한 간단한 예제이다.(반드시 root권한으로 수행되어야 한다.)
우선 8080포트가 리슨을 하고있는지 확인한다.
# netstat -ntl
TOMCAT 서버가 구동되는 호스트의 IP : 211.110.33.86 또는 localhost
TOMCAT 서버의 HTTP Connector Port : 8080
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
위의 예제는 현재 서버(211.110.33.86)의 8080포트에 대한 모든 인바운딩을 80 포트로 리다이렉트(REDIRECT)하는 명령이다.
또는 다음과 같이 명령을 입력한다.
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Run the folloing command to verify that redirect is working fine
# iptables -t nat -L
The output will look something like
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Run the following command to remove the routing
# iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Remember, when you are modifying your running configuration of iptables, you will still need to save your changes in order for it to persist on reboot. Be sure to test your configuration before saving it with "service iptables save
" so that you don't lock yourself out
방화벽 규칙은 컴퓨터가 켜져있는 동안에만 유효합니다. 만일 시스템이 재부팅되면 규칙이 자동으로 지워지고 재설정됩니다. 따라서 이후에도 똑같이 읽혀지도록 규칙을 저장하시려면 다음 명령을 사용하십시오:
# service iptables save
규칙이 /etc/sysconfig/iptables 파일에 저장되어 서비스가 시작되거나 재시작되며 컴퓨터가 재부팅될 때마다 동일하게 적용됩니다.
'배워야 산다 > Linux' 카테고리의 다른 글
[tomcat] 소스 수정시 자동 재시작 (0) | 2014.10.30 |
---|---|
서버의 초기 접속 속도가 느릴때 (0) | 2014.10.08 |
리눅스 부팅시 자동실행 (0) | 2014.09.30 |
SVN 실행 (특정포트실행) (0) | 2014.07.08 |
톰캣 로그정리 (catalina.out) (0) | 2014.03.07 |