過去数日間、Apacheとサーバー全般について学びました-私はApacheをインストールし、PHPとmySQLをUbuntuシステムにインストールし、 'localhost'で私のウェブサイトにアクセスしました。ローカルホストとして何かを実行すると、コンピューターから離れることはなく、サーバーはWiFiネットワーク内のコンピューターからアクセスできず、インターネットに接続されている他のコンピューターからもアクセスできません。ただし、チュートリアルビデオでそれらを見て、 Apacheをインストールするとすぐにインターネット接続をオフにするように言われました。それは正当化されますか?データベースまたは/ var/wwwに機密情報はありません。これらはすべて、学習目的のためのすべてのダミーデータですが、誰かができるのではないかと心配しています私のシステム全体に侵入します。
私が過去数日間これを行ってきたことを念頭に置いて、自分がハッキングされたと考える必要がありますか?
また、明確にするために、サーバーをローカルで実行し、localhost経由でアクセスできる場合、インターネット上のユーザーはそれを利用できますか?
ローカルホストとして何かを実行すると、コンピューターから何も離れず、WiFiネットワーク内のコンピューターからサーバーにアクセスできないと常に考えていました
Localhostを介してサービスにアクセスしても、localhostとして実行されているわけではありません。
ApacheやMySQLなどのデーモンを起動すると、ローカルホストまたはすべてのインターフェースで実行できます。たとえば、IPアドレスが10.0.0.5の場合、 Apacheはすべてのインターフェースで実行されます。 http(s)://10.0.0.5と127. *の両方でページにアクセスできます。これで、すべてのインターフェイスで実行しても、NATデバイス(デフォルトのアクセスポイントなど)によって保護されている場合、誰かがネットワークにルーティングすることはほとんどありません。もちろん、すべてのユーザー同じネットワーク(WLANなど)でデーモンにアクセスできます。
これを確認する最良の方法は、netstat -an
お使いのマシンでは、出力は次のようになります。
$ netstat -an
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:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
ここでは、SSH(22)がすべてのIPv4インターフェースで実行され、6379(redis)がローカルホストでのみアクセス可能であり、http(80)がすべてのIPv4およびIPv6(::: 80)インターフェースで実行されていることがわかります。
ローカルでの実行はデーモン自体にのみ依存し、ApacheはListen 127.0.0.1:80
httpd.confファイルに、MySQLではbind-address = 127.0.0.1
my.cnfファイル内([mysqld]ディレクティブの下)など。実行できる追加の手段は、インターフェース(wlan0、eth0など)でIPTablesを使用してすべてのポートをブロックし、公開するサービスのみを許可することです。
「自分がハッキングされた」と考えるかどうかは不明です。それは、もし暴露されていれば、確かにそれの対象でした。資格情報が不十分か、脆弱なバージョンかどうかによって異なります...
多くの一般的なアプリケーションはデフォルトでは安全ではありません。最初のPHPを作成しているだけの場合は、脆弱性がある可能性が非常に高いです。これらのことのどれかが、あなたのデータベースを台無しにすること(あなたが気にしない)以上にあなたのコンピュータに影響を与える可能性がありますか?たぶん、彼らが何であるかに応じて。
Webサーバーへのアクセス方法は、他の誰がアクセスできるかに影響しません。重要なのは、サーバーの構成方法です。通常、Apacheはデフォルトで listen に設定され、ポート80のすべてのリクエストに対応します。これをlocalhost経由でのみアクセスできるように変更するには、これをListen 127.0.0.1:80
に変更します。
また、システムのファイアウォールルールも確認する必要があります。これにより、追加の保護レイヤーが提供されます。
すでに与えられた答えに加えて、私はさらに2つのことを指摘します。
Windows 10のようなものを実行している場合は、とにかく自動インバウンド保護があり、何かを許可するかどうかを尋ねるポップアップがときどきポップアップするその便利なダイアログに応答しない限り、誰もあなたのPCのWebサービスに接続できません。パブリックまたはプライベートネットワーク上のネットワークアクセスの。自分のものではないWi-Fiネットワークを使用する場合は、必ずそれをパブリックネットワークとして設定し、Apacheがパブリックネットワーク経由で通信できないようにしてください。
Linuxの場合、IPTABLESと呼ばれるものがあります。 Linuxの一般的なケースと同様に、これを構成するのは少し複雑かもしれませんが、ほとんどのディストリビューションには、コマンドラインUFWなどのよりフレンドリーなフロントエンドがあります。 Linuxの場合は、再度、許可されているインバウンド接続がないことを確認する必要があります。 LinuxにApacheをインストールすると、IPTABLESを再構成して、少なくともポート80と443で受信トラフィックを許可することがほぼ確実になります。
Macについてはよくわかりません。
公共のWi-Fiを使用している場合、Wi-Fiが「開いている」場合は、開いているポートがないことを確認してください。暗号化はオンになっていません。