CentOS7について †更新日 2021-05-07 (金) 12:24:13
rc.localについて †インストール直後は実行権がないので動作しないの実行権を与える chmod u+x rc.local
# systemctl start rc-local Default GWについて †設定 # ip route add default via 192.168.10.245 dev ens32 確認 # ip ro default via 192.168.10.245 dev ens32 default via 192.168.200.1 dev ens34 proto static metric 1024 192.168.10.0/24 dev ens32 proto kernel scope link src 192.168.10.205 192.168.200.0/24 dev ens34 proto kernel scope link src 192.168.200.3 CentOS7の起動について †UNIX System V系のinit→ systemdにより「ランレベル」から「ターゲット」に変更された。 起動モードの確認 †# systemctl get-default graphical.target これはSystem V系のランレベル5 起動サービスの確認 †# systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-fs-nfsd.mount static (略) ターゲットの確認 †# 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'. 起動モードの変更(graphical→multi-user [runlevel5→runlevel3] †# 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 multi-user→graphical †
# yum -y groupinstall "GNOME Desktop" その後 # systemctl set-default graphical.target rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target' # systemctl get-default 再起動 CUIからGUIに切り替え(CUIで起動後GUIへ) †# systemctl isolate graphical.target Hyper-Vで解像度変更 †/etc/default/grubに video=hyperv_fb:1024x768を追加 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="video=hyperv_fb:1024x768 crashkernel=auto \ ^^^^^^^^^^^^^^^^^^^^^^^^追加 rd.lvm.lv=centos_hvcentos7x/root rd.lvm.lv=centos_hvcentos7x/swap \ rhgb quiet" GRUB_DISABLE_RECOVERY="true"
# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-693.17.1.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-693.17.1.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-45176ce1ecce49e6806609204b55d359 Found initrd image: /boot/initramfs-0-rescue-45176ce1ecce49e6806609204b55d359.img done
ランレベルとsystemdの対応 †
デーモン起動/確認等 †
ネットワーク再起動 # systemctl restart NetworkManager.service サービスの起動/確認・起動時のサービス設定 †サービス起動 # systemctl start vsftpd 起動時のサービス設定 # systemctl enable vsftpd ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service' 確認 # systemctl list-unit-files -t service | grep vsftpd vsftpd.service enabled ← ここを確認 vsftpd@.service disabled 起動時のサービス解除 # systemctl disable vsftpd rm '/etc/systemd/system/multi-user.target.wants/vsftpd.service' 確認 # systemctl list-unit-files -t service | grep vsftpd vsftpd.service disabled ← ここを確認 vsftpd@.service disabled もう少し詳しく 起動 # systemctl start httpd # systemctl list-units -t service -a | grep httpd httpd.service loaded active running The Apache HTTP Server 停止 # systemctl stop httpd 停止すると何も表示されない # systemctl list-units -t service -a | grep httpd (何も表示されない) この情報だと設定があるか否かトラブル対応のとき情報が不明なので次のようにすれば確認できる # systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) Active: inactive (dead) ← 起動していない 4月 18 13:01:52 vmcent7x systemd[1]: Starting The Apache HTTP Server... 4月 18 13:01:53 vmcent7x httpd[4020]: AH00558: httpd: Could not reliably d...e 4月 18 13:01:53 vmcent7x systemd[1]: Started The Apache HTTP Server. 4月 18 13:02:32 vmcent7x systemd[1]: Stopping The Apache HTTP Server... 4月 18 13:02:34 vmcent7x systemd[1]: Stopped The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full. 起動 # systemctl start httpd # systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) Active: active (running) since 土 2015-04-18 13:19:58 JST; 3s ago ← 起動している Main PID: 4350 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service tq4350 /usr/sbin/httpd -DFOREGROUND tq4351 /usr/libexec/nss_pcache 393219 off /etc/httpd/alias tq4352 /usr/sbin/httpd -DFOREGROUND tq4353 /usr/sbin/httpd -DFOREGROUND tq4354 /usr/sbin/httpd -DFOREGROUND tq4355 /usr/sbin/httpd -DFOREGROUND mq4356 /usr/sbin/httpd -DFOREGROUND 4月 18 13:19:57 vmcent7x systemd[1]: Starting The Apache HTTP Server... 4月 18 13:19:57 vmcent7x httpd[4350]: AH00558: httpd: Could not reliably d...e 4月 18 13:19:58 vmcent7x systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full. ファイアウオール †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: serviciesの作成 †/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 ゾーンのインターフェイスを付け替える(NICが2枚: ens32,ens34) †はじめは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 デフォルトゾーンの変更 publicに変更 # firewall-cmd --set-default-zone=public success ゾーンtrustedを表示 # firewall-cmd --list-all --zone=trusted trusted (active) interfaces: ens34 sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules: ソースIPで制御 †接続許可IPを指定 # firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m conntrack --ctstate \ NEW -m tcp -p tcp --dport 22 -s 192.168.10.47/32 -j ACCEPT success それ以外を禁止 # firewall-cmd --direct --add-rule ipv4 filter INPUT 3 -m conntrack --ctstate \NEW -m tcp -p tcp --dport 22 -j REJECT success 条件解除 # firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -m conntrack\ --ctstate NEW -m tcp -p tcp --dport 22 -s 192.168.10.47/32 -j ACCEPT success 確認 # iptables -L -n --line-number Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 3 INPUT_direct all -- 0.0.0.0/0 0.0.0.0/0 4 INPUT_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0 5 INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0 6 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 7 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 3 FORWARD_direct all -- 0.0.0.0/0 0.0.0.0/0 4 FORWARD_IN_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0 5 FORWARD_IN_ZONES all -- 0.0.0.0/0 0.0.0.0/0 6 FORWARD_OUT_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0 7 FORWARD_OUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0 8 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 9 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited (略) Chain INPUT_ZONES (1 references) num target prot opt source destination 1 IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto] 2 IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto] 3 IN_public all -- 0.0.0.0/0 0.0.0.0/0 [goto] Chain INPUT_ZONES_SOURCE (1 references) num target prot opt source destination Chain INPUT_direct (1 references) num target prot opt source destination 1 ACCEPT tcp -- 192.168.10.47 0.0.0.0/0 ctstate NEW tcp dpt:22 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp dpt:22 reject-with icmp-port-unreachable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Chain IN_public (3 references) num target prot opt source destination 1 IN_public_log all -- 0.0.0.0/0 0.0.0.0/0 2 IN_public_deny all -- 0.0.0.0/0 0.0.0.0/0 3 IN_public_allow all -- 0.0.0.0/0 0.0.0.0/0 Chain IN_public_allow (1 references) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ctstate NEW 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:514 ctstate NEW 4 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:514 ctstate NEW Chain IN_public_deny (1 references) num target prot opt source destination Chain IN_public_log (1 references) num target prot opt source destination Chain OUTPUT_direct (1 references) num target prot opt source destination 時間同期 †# yum install chrony /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). ##server 0.centos.pool.ntp.org iburst ←コメントアウト ##server 1.centos.pool.ntp.org iburst ←コメントアウト ##server 2.centos.pool.ntp.org iburst ←コメントアウト ##server 3.centos.pool.ntp.org iburst ←コメントアウト server s2csntp.miz.nao.ac.jp iburst ←ntpサーバ指定 #iburst:起動直後にサーバに4回連続的に問い合わせをし時刻同期が早くなる keyfile /etc/chrony.keys # Specify the key used as password for chronyc. commandkey 1 #クライアント用途で利用するため、ポートをリッスンしないよう設定。(最終行に追加) port 0 makestep 10 3 起動時に10秒以上時間がずれていた場合、3回までstep調整で時刻を同期する /etc/chrony.keys #1 a_key 1 (適当な文字列のパスワード)
# systemctl list-unit-files -t service | grep chrony chrony-dnssrv@.service static chrony-wait.service disabled chronyd.service enabled # systemctl start chronyd
# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 133.40.41.135 2 6 17 1 +113us[ +338us] +/- 297ms ↑ こここのマークで同期完
# chronyc -a makestep 200 OK 200 OK カーネルを除外してアップデートする †# yum -y update --exclude=kernel* エラー処理 †エラーあったのでオプションを追加 # yum -y update --exclude=kernel* --skip-broken --setopt=protected_multilib=false 問題を回避するために --skip-broken を用いることができます的なエラー 対応:--skip-broken
対応:--setopt=protected_multilib=false 設定 †恒久的にオプションなしでもカーネル除外
(略) plugins=1 installonly_limit=5 exclude=kernel* ←追加 DNS設定 †
# nmcli c mod ens33 ipv4.dns "192.168.0.243"
# nmcli --fields ipv4 c show ens33 ipv4.method: manual ipv4.dns: 192.168.0.243 ←ここ ipv4.dns-search: -- ipv4.dns-options: "" ipv4.dns-priority: 0 ipv4.addresses: 192.168.0.126/24 ipv4.gateway: 192.168.0.243
# systemctl restart NetworkManager
# Generated by NetworkManager search localdomain nameserver 192.168.0.243 CentOSのバージョン確認 †
CentOS Linux release 7.5.1804 (Core) 参考 †CentOS7のプロセス関係 ファイアウオール関係
|