UNIX System V系のinit→ systemdにより「ランレベル」から「ターゲット」に変更された。
# systemctl get-default graphical.target
System V系のランレベル5
# systemctl list-units -t target -a --no-pager UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes emergency.target loaded inactive dead Emergency Mode final.target loaded inactive dead Final Step getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User System network-online.target loaded inactive dead Network is Online network.target loaded active active Network (中略) LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 27 loaded units listed. To show all installed unit files use 'systemctl list-unit-files'.
# systemctl set-default multi-user.target rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' # systemctl get-default multi-user.target
# systemctl isolate graphical.target
runlevel | systemdでの変更コマンド | |
システム停止 | 0 | systemctl isolate poweroff.target |
シングルユーザモード | 1 | systemctl isolate rescue.target |
マルチユーザモード | 3 | systemctl isolate multi-user.target |
グラフィカルユーザモード | 5 | systemctl isolate graphical.target |
再起動 | 6 | systemctl isolate reboot.target |
緊急モード | - | systemctl isolate emergency.target |
SystemV系 | systemd | |
サービス開始 | /etc/rc.d/ini.d/httpd start | systemctl start httpd |
サービス停止 | /etc/rc.d/ini.d/httpd stop | systemctl stop httpd |
サービス再起動 | /etc/rc.d/ini.d/httpd restart | systemctl restart httpd |
設定ファイルの再読み込み | /etc/rc.d/ini.d/httpd reload | systemctl relaod httpd |
サービス状態 | /sbin/chkconfig httpd status | systemctl status httpd |
サービス自動起動 | /sbin/chkconfig httpd on | systemctl enable httpd |
サービス自動起動停止 | /sbin/chkconfig httpd off | systemctl disable httpd |
ランレベル毎のサービスの有効無効表示 | /sbin/chkconfig --list | systemctl -t services list-unit-files |
ランレベル毎の指定サービスの有効無効表示 | /sbin/chkconfig --list httpd | systemctl -t services list-unit-files (パイプ) grep httpd |
ネットワーク再起動
# systemctl restart NetworkManager.service
# systemctl list-units -t service -a | grep rsyslog rsyslog.service loaded active running System Logging Service
NIC毎に設定が可能になった。
NICにゾーンを割り当て管理している。ゾーンごとファイアウォールが定義でき、デフォルトで9個用意されている
「block、dmz、drop、external、home、internal、public、trusted、work」
現在のゾーンを表示
# firewall-cmd --get-active-zones public interfaces: ens32
NIC(ens32)にpublicというゾーンが割り振られている
ではpublicの設定は(デフォルトゾーン表示)
# firewall-cmd --list-all public (default, active) interfaces: ens32 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
または
# cat /etc/firewalld/zones/public.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers \ on networks to not harm your computer. Only selected incoming connections are \ accepted.</description> <service name="dhcpv6-client"/> <service name="ssh"/> </zone>
sshとdhcpv6-clientが外部→内部パケット許可
すべてゾーン設定表示は
#firewall-cmd --list-all-zone block interfaces: sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules: dmz interfaces: (略)
定義ファイルは/usr/lib/firewalld/zones/にある
一時追加は --permanentを省略(permanentなしの場合はすぐに適用されるので、--reloadは不要)
ゾーンpublicにtcp 12220ポートを追加
# firewall-cmd --zone=public --add-port=12220/tcp --permanent success # firewall-cmd --reload success
defaultゾーンの表示
# firewall-cmd --list-all public (default, active) interfaces: ens32 sources: services: dhcpv6-client ssh ports: 12220/tcp masquerade: no forward-ports: icmp-blocks: rich rules:
tcp 12220ポートを削除
# firewall-cmd --zone=public --remove-port=12220/tcp --permanent success # firewall-cmd --reload success
ゾーンtrusted(すべて許可)に変更
# firewall-cmd --set-default-zone=trusted success # firewall-cmd --get-default-zone trusted # firewall-cmd --list-all trusted (default, active) interfaces: ens32 sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules:
/usr/lib/firewalld/servicesにいくつかあるのでそれを参考に作成
rsyslog.xml
<?xml version="1.0" encoding="utf-8"?> <service> <short>RSYSLOG</short> <description>RSYSLOG Edit By JE2ISM.</description> <port protocol="tcp" port="514"/> <port protocol="udp" port="514"/> </service>
追加コマンド
# firewall-cmd --zone=public --add-service=rsyslog --permanent success # firewall-cmd --reload success
はじめは2つのインターフェイスがゾーンpubilicに設定されている
# firewall-cmd --list-all public (default, active) interfaces: ens32 ens34 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
インターフェイスens34をゾーンtrustedに変更
# firewall-cmd --zone=trusted --change-interface=ens34 success
アクティブゾーン表示
# firewall-cmd --get-active-zones public interfaces: ens32 trusted interfaces: ens34
ゾーンtrustedを表示
# firewall-cmd --list-all --zone=trusted trusted (active) interfaces: ens34 sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules:
CentOS7のプロセス関係
ファイアウオール関係