回答:
sudo ufwデフォルト拒否
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo ufw enable
このスクリプトを使用します。
着信ICMP(ping)を許可するかどうかを決定します。
# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
別の回答へのコメントで述べたように、sshポートを許可する前に接続を失いたくありません。manページから:
「リモート管理
ufw enableを実行するか、initscriptを介してufwを起動すると、ufwはチェーンをフラッシュします。これはufwが一貫した状態を維持できるようにするために必要ですが、既存の接続(sshなど)をドロップする場合があります。ufwは、ファイアウォールを有効にする前にルールを追加することをサポートしているため、管理者は次のことができます。
ufw allow proto tcp from any to any port 22
「ufw enable」を実行する前。ルールは引き続きフラッシュされますが、ファイアウォールを有効にするとsshポートが開きます。ufwが「有効」になると、ルールを追加または削除するときにufwはチェーンをフラッシュしません(ただし、ルールを変更したり、デフォルトポリシーを変更したりする場合は)。
そこで、スクリプトを使用して設定する方法を次に示します。このスクリプトを実行するとログアウトしますが、実行すると、sshで再度ログインできます。
以下をスクリプトに入れて、start-firewall.shと呼びます
#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https
そして、それを実行可能にし、次のようにして実行します
$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh
詳細については、manページをご覧ください。
Quicktablesは、iptablesのルールを学ぶのに役立ちました。スクリプトを実行するだけで、iptablesスクリプトが生成されます...そして、それを開いて、質問された質問によって生成された関連コマンドを表示できます。優れた学習リソースです。
残念ながら、もはやメンテナンスされていません。
私は本当にfirehol(package)を使うのが好きです。
お好みのセットアップルールを作成するには、ファイル/ etc / default / fireholを編集し、START_FIREHOL = YESを変更する必要があります。
そして、/ etc / firehol / firehol.confを次のようにしたいでしょう。
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
Fireholの素晴らしい点の1つは、「try」コマンドです。設定ファイルを調整し、「firehol try」を実行できます。sshを介して接続し、変更内容がネットワークアクセスを強制終了した場合、fireholは変更を元に戻します。変更を実際に有効にするには、コミットする必要があります。
ショアウォールを好むでしょう。セットアップは簡単ですが、同時に柔軟です。
たぶん、あなたはhttp://iptables-tutorial.frozentux.net/iptables-tutorial.htmlを見てください。また、lartc.orgで詳細情報を見つけることができます。
sudo apt-get install firestarter
次に、「システム」->「管理」メニューを見てください。