私はUFWに初めて入門しました。私たちのサーバーの1つが破損しているので、すぐに次のことを行う必要があります。
- すべてのインバウンドを拒否します。
- すべてのアウトバウンドを拒否します。
- すべてのSSHを許可します。
- アウトバウンドDNSを許可します。
- Gitで複製、プッシュ、プールなどを実行できます。
- インバウンドHTTP / S(80および8081、443)のみが許可されています。サーバーで開始されるアウトバウンドHTTP / Sをブロックする必要があります。
- MySQLが127.0.0.1またはlocalhostにのみ接続できるようにし、すべての着信MySQLをブロックします。
私はこれらの規則のいくつかが奇妙であることを知っていますが、それが私がしなければならないことです。私は実際にUFWでこれらのタスクのいくつかを完了する方法がわからないことに気づきました。
これが私が持っているものです:
# Deny all outgoing.
ufw default deny incoming
# Deny all outgoing.
ufw default deny outgoing
# Allow outgoing DNS.
ufw allow out 53
# Allow SSH.
ufw allow 22
# Allow outbound Git (I need to be able to clone, pull, push, etc).
ufw allow out 9418/tcp
# Allow only incoming HTTP on port 80 and 8081 without outbound.
# Allow only incoming HTTPS on port 443 without outbound.
ufw allow in to any port 80 proto tcp
# Allow MySQL to connect to localhost only.
ufw allow from 127.0.0.1 to 127.0.0.1 port 3306 proto tcp
上記のコマンドを実行した後、次のことができます。
curl --request GET 'http://foo.bar'
他のサイトにHTTPリクエストを送信するために使用されます。サーバー内で発生したHTTP要求を拒否する必要があります。- Gitクローンを使用しないでください。ただ停止しています。
まだMySQLをテストしてい127.0.0.1
ませんが。localhost
私が望むように動作するために何を変更する必要がありますか?
答え1
発信トラフィックだけでなく、開いているポートへの着信トラフィックも許可する必要があります。そうしないと、ターゲットサーバーは応答を送信できません。気づいたら入って来ることができるのでSSHが正常に動作するのです。リモートサーバーからの応答をブロックしているため、GITは機能しません。 DNSも破損している可能性があります。
MySQL:my.cnfはデフォルトでリモート接続を許可しないでください。通常、バインドアドレスでこれを明示的に許可する必要があります。