これが私がUFWでiptablesをセットアップする方法です:
Sudo ufw default deny incoming
(すべての着信を拒否)Sudo ufw default deny outgoing
(すべての発信を拒否)Sudo ufw allow out 53
(発信を受け入れる DNSトラフィック 、tcpとudpの両方)Sudo ufw allow in 80/tcp
(ポート80からのすべての着信tcpを受け入れる)Sudo ufw allow out 80/tcp
(ポート80へのすべての発信tcpを受け入れる)Sudo ufw allow proto tcp from <admin_ip_addr> to <server_ip_addr> port 22
(sshの管理者のオフィスIPからの着信tcpポート22を受け入れる)Sudo ufw allow out 9418/tcp
(発信git接続を受け入れる)Sudo ufw allow proto tcp from <server_ip_addr> to any port 22
(GitHubに接続するための発信ssh接続を受け入れる)英語:HTTP、DNS、管理IPからの着信SSH、発信GIT、発信SSHを除くすべてをブロックします。
残念ながら、その後git clone [email protected]:username/project.git
を実行すると、Initialized empty Git repository in /home/adminuser/exper/project/.git/
でスタックします。
次に、Sudo ufw default allow outgoing
を使用してすべての発信トラフィックを有効にし、git cloneコマンドを繰り返すと、機能します。
したがって、明らかに、まだブロックされている発信があります。
誰かがこれが何であるか、そしてそれを許可するためにどのルールを追加する必要があるかを教えてもらえますか?
また、次のルールを試しましたが、成功しませんでした。
Sudo ufw allow out 1024:65535/udp
SSHで接続しようとしていますが、それは許可されているようです。問題を診断するときが来ました。パケットをドロップする直前にLOGルールを追加するのが好きなので、何がドロップされているかを正確に把握しています。それ以外の場合は、少しのtcpdumpアクションで、どこにも行かないトラフィックを特定する必要があります。何が削除されているかがわかったら、それを許可するために必要なルールを追加するのは簡単なことです。
何度も頭を叩き、2台のサーバーから自分を締め出した後。以下のファイアウォールルールは、「gitclone」を実行するために機能しました。それが皆さんにも役立つことを願っています。
参考:サーバーのプライベートインターフェイスである「eth0」で以下のコマンドを実行しています。ここからgithubサブネットIPを取得しました: https://help.github.com/articles/github-s-ip-addresses/
Sudo ufw reset
Sudo ufw status verbose
Sudo ufw default deny incoming
Sudo ufw default deny outgoing
# For resolving DNS problem
Sudo ufw allow out on eth0 to any port 53
# For allowing access to github.com
Sudo ufw allow out on eth0 to 192.30.252.0/22 port 22
Sudo ufw --force enable