Ubuntu AWSでポート80を開く


11

ubuntuAWSインスタンスでホストされているマシンでTomcatサーバーを実行しています。私は、を介してサーバに到達することができますpublic_ip:8080が、私は上のリスニングポートを変更したときserver.xmlから808080接続リモートホストによって拒否されます。

ポート番号80はで有効になっていAWS firewallます。

ufw経由で確認しましたsudo ufw statusが、結果はinactive

あるufw基本的なファイアウォール機構のフロントエンドは?

ポート80を有効にするにはどうすればよいfirewallですか?

少し早いですがお礼を。

の出力iptables -S

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

の出力 netstat -punta

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      785/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      613/sshd
tcp        0      0 172.31.1.56:22          92.45.23.114:3913       ESTABLISHED 5825/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:19374      ESTABLISHED 7320/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:28051      ESTABLISHED 6901/sshd: ubuntu [
tcp        0    272 172.31.1.56:22          92.45.23.114:9327       ESTABLISHED 7428/sshd: ubuntu [
tcp        0      0 172.31.1.56:22          92.45.23.114:7597       ESTABLISHED 7034/sshd: ubuntu [
tcp        0      0 127.0.0.1:3306          127.0.0.1:45655         ESTABLISHED 785/mysqld
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7275/java
tcp6       0      0 :::8080                 :::*                    LISTEN      7275/java
tcp6       0      0 :::22                   :::*                    LISTEN      613/sshd
tcp6       0      0 127.0.0.1:45655         127.0.0.1:3306          ESTABLISHED 7275/java
udp        0      0 0.0.0.0:68              0.0.0.0:*                           538/dhclient3

netstat -na |grep \:80ポートを変更する前の出力80

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

netstat -na |grep \:80ポートを80次のように変更した後の出力:

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN

ポートでのブラウザの出力80

ERROR

The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: http://54.194.236.229/TransportationAutomation/personnel.xhtml

Connection to 54.194.236.229 failed.

The system returned: (111) Connection refused

The remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.


Generated Fri, 14 Feb 2014 15:01:06 GMT by proxy (squid/2.7.STABLE7)

ポート定義の一部 server.xml

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

tomcatを開始するときのCatalina.outの一部port 80

Feb 14, 2014 3:04:25 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.BindException: Permission denied <null>:80
  at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
  at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
  at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
  at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
  at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:815)
  at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
  at org.apache.catalina.startup.Catalina.load(Catalina.java:594)
  at org.apache.catalina.startup.Catalina.load(Catalina.java:619)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: java.net.BindException: Permission denied
  at java.net.PlainSocketImpl.socketBind(Native Method)
  at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
  at java.net.ServerSocket.bind(ServerSocket.java:376)
  at java.net.ServerSocket.<init>(ServerSocket.java:237)
  at java.net.ServerSocket.<init>(ServerSocket.java:181)
  at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
  at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
... 17 more 

更新2:

tomcatをインストールしたapt-getので、tomcatの再パッケージ化バージョンです。ここでは、Tomcatをrootとして実行すると問題が解決すると述べていますが、ここではTomcat should not be run under the root user.、再パッケージ化されたTomcatインスタンスでそれを処理する方法はありませんか?

更新3:

私は推測する、これは私の質問への答えであります


server.xmlの関連セクション、iptables -Sの出力、および理想的にはtomcatを実行したnetstat -puntaからの関連出力を含めることを検討してください。
ダニエルウィドリック14

を使用してTomcatをインストールした場合、ポート80は特権ポートであるためapt-get、ポートを変更するserver.xmlだけでは通常十分ではないことを指摘したいだけです。catalina.outエラーメッセージがあるかどうかを確認するためにチェックインしましたか?
デビッドレベスク14

server.xmlのポートを変更する前に、netstat -na | grep \:80の出力はどうなりますか?次に、server.xmlのポートを変更してjettyを再起動すると、netstat -na | grep \:80の出力はどうなりますか?これはファイアウォールの問題ではないようです。
ミートフラッグ14

私は喘鳴Debianを使用して、私が代わりに/etc/init.d/tomcat7の編集には、/ etc / default / tomcat7が必要であることを発見しています
Ruut

回答:


11

はい、そうです。これは、iptablesの使いやすいバージョンのようなものです。書いてみて、iptablesファイアウォールルールを確認してください。

$ sudo iptables -L

次を使用して、ポート80を開くことができます。

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

必要に応じて、この行を説明できます。ただ私に言って :-)


出力がsudo iptables -LあるChain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 目的がadvenceにポートに80感謝を開くには、その行を記述するために完璧になります。
ジェス

コマンドを実行し、ポート80が開いており、自分のWebサイトにアクセスできます。その後、再起動後、ポートが再び閉じられ、毎回ポートを再度開く必要があります。永久に開く方法はありますか?私はVPS上のUbuntu 14.04 LTSを実行している
ココ

AWS Server EC2(Ubuntu)の新しい人であることは、多くのことに多くの時間を費やしました。私はあなたのコマンドを使用してカスタマイズされたポートを開き、それが機能しました。そのカスタマイズされたポートをセキュリティグループの受信セクションに既に追加しましたが、それでもアクセスできませんでした。あなたのコマンドを実行した後、私のウェブサイトはカスタマイズされたポートで私のアプリが必要なサーバーで実行されています。本当に助かりました。
ハマドハッサン

6

これは私のために働いた:

ルートとして実行:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.