※2018/12/13更新!
プライベートで使っているワークステーションのインターフェースに新しくfirewallのzone追加やIPアドレスを指定して許可などの設定を入れてみたかったので色々と調べた事をメモしています。
そういえば、新しくCentOS7.6もリリースされたようなので、早いうちに触っておこうと思います!
Redmine4もリリースされたし早く触りたいんだけど、、、
Redmine4インストールしました!
この浮気癖、いいかげん治さなきゃまずいのかな・・泣
環境
ワークステーション:HP z800
ホストOS:CentOS7.5
interface1:enp0s3(192.168.100.1)
interface2:enp0s8(192.168.200.1)
firewallへ追加したZONE:manage
manageZONEへ割り当てたインターフェース:enp0s3
CentOSのFirewalldで独自のゾーンを追加する方法。
・ゾーンの確認
firewall-cmd --get-zones
→ここに独自の「manage」というzoneを追加しようと思います。
・全てのzoneとzone毎の設定内容を確認
firewall-cmd --list-all-zones
・既存のzoneファイルディレクトリへ移動
cd /etc/firewalld/zones/
・punbicファイルをコピーして独自のzoneを定義する。
cp -p public.xml manage.xml
(-pオプションは権限なども丸ごとコピーみたいな感じです。詳しくはググってください笑)
・viで開いて編集します
vi manage.xml
以下はサンプルです。
編集した所は
「short」タグ「description」タグのところです
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Manage</short>
<description>Custom Zone. Only allow ssh connection from Manage.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
</zone>
・編集後はfirewalldを再起動すればzoneが追加されます。
systemctl restart firewalld
・作成したゾーンが追加されているか確認
firewall-cmd --get-zones
補足
・下記コマンドでもzone追加できます。
firewall-cmd --permanent --new-zone=manage2
※削除するとき
firewall-cmd --permanent --delete-zone=manage2
・追加の反映
systemctl restart firewalld
・作成したゾーンが追加されているか確認
firewall-cmd --get-zones
サービスの追加
・新規で作ったzoneにsshサービスの許可を追加
firewall-cmd --permanent --add-service=ssh --zone=manage
・targetをacceptへ変更
firewall-cmd --permanent --zone=manage --set-target=ACCEPT
#(このコマンドだと全て許可になってしまう・・?もう少し調べる。)
・ZoneへIPアドレス指定で許可
firewall-cmd --permanent --add-source=192.168.100.101 --zone=manage
・NW単位で指定も可能
firewall-cmd --permanent --add-source=192.168.200.0/24 --zone=manage
・firewallのリロード(このコマンドでも作成した設定の反映が可能)
firewall-cmd --reload
・全てのzoneとzone毎の設定内容を表示させる
firewall-cmd --list-all-zones
サービス追加・port追加
・FTPの追加
firewall-cmd --add-service=ftp --permanent
・port指定して追加(FTPサービスで使用するport追加)
firewall-cmd --add-port=4000-4020/tcp --permanent
参考(削除の場合)
・サービスの削除(FTPサービスを削除)
#firewall-cmd --remove-service=ftp --permanent
・port指定して削除(FTPサービスで使用するport削除)
firewall-cmd --remove-port=4000-4020/tcp --permanent
・firewallのリロード(作成した設定の反映)
firewall-cmd --reload
・interface「enp0s3」に適用されているzoneを確認する
firewall-cmd --get-zone-of-interface=enp0s3
→public
・interface「enp0s3」アクティブゾーンをmanageへ変更
firewall-cmd --zone=manage --change-interface=enp0s3 --permanent
→The interface is under control of NetworkManager, setting zone to 'manage'.
success
が出たらOKです。
指定のIPアドレスからのみSSHアクセスを許可したい場合
rich-ruleを使う。
・設定状況の確認
firewall-cmd --list-all
・sshを削除
firewall-cmd --permanent --remove-service=ssh
・設定の反映
firewall-cmd --reload
・IPアドレスを指定してssh接続を許可
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.100.101" port protocol="tcp" port="22" accept"
・設定の反映
firewall-cmd --reload
・設定状況の確認
firewall-cmd --list-all
firewallのzoneリストメモ
zone名:block
許可サービス:なし
外部からの接続はすべて遮断 設定変更不可
遮断時は「ICMP Pohibited」を返し、内部からの通信時は戻りの通信も許可される
zone名:dmz
許可サービス:ssh
dmz用に定義されたゾーン
zone名:drop
許可サービス:なし(外部からの通信はすべて遮断)
設定変更不可
内部からの通信は送信できるが、外部からの戻りの通信は遮断されるため、結果的にすべての通信が出来ない
zone名:external
許可サービス:ssh
IPマスカレード有効でルータなど外部ネットワークとの接続で使用するために定義されたゾーン
zone名:home
許可サービス:dhcpv6-client・ipp-client・mdns・samba-client・ssh
自宅などで使用するために定義されたゾーン
zone名:internal
許可サービス:dhcpv6-client・ipp-client・mdns・samba-client・ssh
内部ネットワークで使用するために定義されたゾーン
zone名:public
許可サービス:dhcpv6-client・ssh
公共の場所で使用するために定義されたゾーン
zone名:trusted
許可サービス:すべての通信を許可
設定変更不可
zone名:work
許可サービス:dhcpv6-client・ipp-client・ssh
職場などの業務エリアで使用するために定義されたゾーン
皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)