linux iptablesでsambaの許可
色々失敗したのをだらだら書くのは面倒だから成功した内容のみ書く。
記述方法の確認
上記の命令は、「チェイン:INPUT」に「ルールを追加(-A)」。
内容は、「プロトコル(-p)」が「udp」で「送信先のポート(–dport)」が「137と139(137:139)」のときは「許可(-j ACCEPT)」。
ポートの137と139はsamba。
実際に記載してみる
基本的な流れとしては、ルールをチェック。
次にルールを追加して、保存。
ルールの再チェック。
iptablesを再起動して、Windowsで接続チェック。
ルールの確認
これは見るだけ。見て、どこにルールを追加するかを考える。
私の場合は「RH-Firewall-1-INPUT」というチェインにルールを追加することにする。
「RH-Firewall-1-INPUT」にはルールが13行ある。
「Chain RH-Firewall-1-INPUT」のすぐ下の行はカウントしないので下記例のような感じで数える。
: target prot opt source destination
1: ACCEPT all — anywhere anywhere
2: ACCEPT icmp — anywhere anywhere icmp any
3: REJECT all — anywhere anywhere reject-with icmp-host-prohibited
sambaの許可のルールを追加
「RH-Firewall-1-INPUT」の最後にある「reject-with icmp-host-prohibited」の前にルールを追加しないといけないから13行目に追加する。
「reject-with icmp-host-prohibited」は「前述以外は全部拒絶」的な意味になる。
そのため、この前にルールを追加する必要がある。
追加する際は「-A」ではなく「-I」。
「RH-Firewall-1-INPUT」の13行目に追加するので「13」。
次に、tcpもACCEPTしてあげる。
「udp」の方を追加したので、行数が一つ増えて「14」にした。
順番が逆でも問題ないかもしれないけど…。
ルールの確認
今回も見るだけ。間違ってたら修正してあげる。
修正するのが面倒だから、削除して追加すればいい。
※修正もやり方を調べたら簡単かも。
ルールの削除
削除は「-D」を使う。
あとはどのチェインの何番目を削除するのかを指定する。
下記は「チェイン:RH-Firewall-1-INPUT」の「2番目」を削除する場合。
iptableの保存
再起動する際に設定がクリアされるらしいので保存してあげる。