Fedoraの新しいファイアウォールでSambaを使用可能にする
Fedora 18 あたりでファイアウォール機能が iptables から firewalld に変わりました。
OSをアップグレードしたら、今まで動いていたSambaが動かなくなってしまったので、とりあえずfirewalldを止めていたのですが(おい)
# service firewalld stop (非推奨)
さっきSambaを許可する方法がわかったので、メモしておきます。ちな、コマンドラインです。
参考:FedoraProject FirewallD/jp
―
・firewalldの状態を調べる
# firewall-cmd --state
running
firewalldではいくつかのゾーンが定義されており、それごとにアクセス許可/拒否を設定することができます。Windowsインターネットオプションの「ローカルイントラネット」「信頼済みサイト」みたいなものです。
eth0などのネットワークインタフェースごとにゾーンを切り替えて使えたりするようです。
・今のゾーンは何かな?
# firewall-cmd --get-active-zone
public
interfaces: eth0
デフォルトのゾーンは"public"です。
firewallのアクセス許可/拒否はサービスごとに簡単に設定することができます。
・利用可能なサービスは?
# firewall-cmd --get-services cluster-suite kpasswd bacula-client smtp ipp radius mysql ms-wbt bacula transmission-client ftp mdns samba pmproxy dhcpv6-client rpc-bind ldaps https ldap dhcp imaps samba-client vnc-server http dns pmwebapi ntp kerberos telnet libvirt openvpn ssh pmwebapis pmcd ipsec postgresql ipp-client proxy-dhcp amanda-client mountd tftp-client dhcpv6 nfs tftp pop3s libvirt-tls
・現在有効なサービスは?
# firewall-cmd --list-services
mdns dhcpv6-client ssh
sambaが有効になっていないので、追加します。
iptablesでは設定を変更した後サービスの再起動が必要でしたが、firewalld は再起動が不要です。このため設定を変更する際に通信中のセッションを切らずに済みます。*1
・Sambaを現在のゾーンで有効にする
# firewall-cmd --add-service=samba success # firewall-cmd --list-services samba mdns dhcpv6-client ssh
このままだとサービスを再起動したときに設定が失われてしまうので、永続的な設定もしておきます。
# firewall-cmd --permanent --add-service=samba
success
2013/8/31追記
追加で特定のポートを開きたいときは以下のようにします。
# firewall-cmd --add-port=8080/tcp success # firewall-cmd --list-ports 8080/tcp