Oracle CloudでJitsi Meet-その2 ファイアウォールの設定
OCIでubuntuを作成した場合,悩まされたのがiptablesでした。
CentOS7だとそんな事ないのに,ubuntuは変な設定が残っていて邪魔されます。
Jitsiで使用するポートをまとめて開放していきたいと思います。
sudo iptables -L
色々設定されている事が確認できます。
シェルで書き換えます。
sudo mkdir /root/bin
sudo vi /root/bin/iptables.sh
以下をコピペする。
# 設定をクリア
iptables -F
# 基本方針[1]
# サーバーが受信するパケットを拒否
iptables -P INPUT DROP
# サーバーが経由させるパケットを拒否
iptables -P FORWARD DROP
# サーバーが送信するパケットを許可
iptables -P OUTPUT ACCEPT
# サーバ攻撃対策関連
# データを持たないパケットの接続を破棄
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# SYNflood攻撃と追われる接続を破棄
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# ステルススキャンと思われる接続を破棄
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# 許可するパケットを個別に追加
# SSHを許可
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# HTTPを許可
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# HTTPS(SSL)を許可
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#Jitsi Meetを許可
iptables -A INPUT -p udp --dport 10000 -j ACCEPT
# PINGを許可
iptables -A INPUT -p icmp -j ACCEPT
# その他
# ローカルループバックの接続を許可
iptables -A INPUT -i lo -j ACCEPT
# 確立済みの通信を許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ログを出力
iptables -A INPUT -j LOG --log-prefix "drop_packet:"
保存して,実行権限を付与して実行します。
sudo chmod 744 /root/bin/iptables.sh
sudo /root/bin/iptables.sh
再起動すると/etc/iptables/rules.v4がデフォルトに戻されてしまうので対策。
sudo su
iptables-save> /etc/iptables/rules.v4
exit
これでOS側のファイアウォールの設定は完了です。次にVCNのファイアウォールの設定です。
vcn01 です。
すると,サブネットが一覧表示されるので,Public Subnet-vcn01 を選択。
セキュリティーリストが表示される。
Default Security List for vcn01 を選択。
イングレスルールが表示される。
これにルールを追加していきます。エグレス・ルールはサーバーから出ていく方で,現状はすべて許可されている。こちらはそのままで,イングレス・ルール(外からVCNへの通信)のみ追加許可していきます。
[イングレス・ルールの追加]
どこからの通信にも開放するのでソースCIDRは0.0.0.0/0 IPプロトコルはTCP,宛先ポート範囲は80(http)。これで[イングレス・ルールの追加]で追加できるが,ついでにhttp以外にもいくつか追加しておきたいので[+追加のイングレス・ルール]押下。
以下を追加します。いずれもソースCIDRは0.0.0.0/0です。
TCP443(https)
UDP10000(Jitsi用)
最後に[イングレス・ルールの追加]で設定完了。
ブラウザのアドレス欄にパブリックIPアドレス,または,それに関連付けたドメインを入力してください。Nginxのデフォルトのメッセージが表示されれば正しく設定されています。
【参考サイト】