Centos
如何使用 PCS 強制 IPV4?(起搏器/Corosync)
我正在為安全環境中的高可用性 Web 應用程序設置一個帶有 DRBD 掛載的 Pacemaker/Corosync 集群。這是在 CentOS 7 上執行的。集群正在執行。然而,為了讓這個系統為安全審計做好準備,我必須禁止所有應用程序監聽 IPV6 並強制使用 IPV4。
我在系統範圍內禁用了 IPV6:
# Contents of /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1
我還採取了在網路級別禁用 IPV6 的額外步驟:
# Contents of /etc/sysconfig/network NETWORKING_IPV6=no IPV6_AUTOCONF=no
但是 PCSD 堅持監聽 IPV6 埠:
# netstat -lnptu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1206/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1837/master tcp6 0 0 :::2224 :::* LISTEN 486/ruby udp 0 0 192.168.4.100:60618 0.0.0.0:* 10932/corosync udp 0 0 0.0.0.0:5353 0.0.0.0:* 460/avahi-daemon: r udp 0 0 192.168.4.100:5405 0.0.0.0:* 10932/corosync udp 0 0 0.0.0.0:57120 0.0.0.0:* 460/avahi-daemon: r udp 0 0 192.168.4.100:40891 0.0.0.0:* 10932/corosync
沒有 IPV6 介面:
ip a l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:50:56:8d:d1:76 brd ff:ff:ff:ff:ff:ff inet 192.168.4.100/24 brd 192.168.4.255 scope global ens160 valid_lft forever preferred_lft forever inet 192.168.4.110/24 brd 192.168.4.255 scope global secondary ens160 valid_lft forever preferred_lft forever
我按照另一個論壇的建議從 /etc/hosts 中刪除了 IPV6 環回:
# Contents of /etc/hosts 192.168.4.100 node1 node1.network.dmn 192.168.4.101 node2 node2.network.dmn 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
我還看到了一個舊的錯誤報告,即禁用 IPV6 時 PCSD 無法啟動。這已解決,我可以確認我的實例啟動得很好,但是正如關於此錯誤的評論中所述,當 IPV6 被禁用時,PCSD 應該在 IPV4 上偵聽,而它沒有這樣做。所以這似乎是異常行為:
來源: https ://bugzilla.redhat.com/show_bug.cgi?id=1104359
Created attachment 933288 [details] proposed fix
測試:
- 禁用 ipv6,將 ipv6.disable=1 添加到核心引導行並重新啟動
- 啟動 pcsd 服務 systemctl start pcsd.service
- 驗證 pcsd 正在執行並在 0.0.0.0 netstat –inet -anp46 上偵聽 | grep 2224 tcp 0 0 0.0.0.0:2224 0.0.0.0:* 聽 1746/ruby
- 在啟用 ipv6 的情況下重新啟動。
- 啟動 pcsd 服務 systemctl start pcsd.service
- 驗證 pcsd 是否正在執行並正在偵聽 :: netstat –inet -anp46 | grep 2224 tcp6 0 0 :::2224 :::*
LISTEN 356/ruby
Google搜尋在配置中強制使用 IPV4 的方法沒有產生任何結果。所以我現在卡住了。我必須將此埠強制為 0.0.0.0:2224 以通過安全合規性。
誰能告訴我怎麼做?
很晚了,但是如果您希望 pcsd 僅在 IPv4 中執行,您需要修改文件
/etc/sysconfig/pcsd
並替換預設值(並註釋)# PCSD_BIND_ADDR='::'
對於這樣的事情:
PCSD_BIND_ADDR='192.168.23.65'
接下來你需要重新啟動 pcsd 服務,如果你執行
netstat -tulpn
你應該看到:tcp 0 0 192.168.23.65:2224 0.0.0.0:* LISTEN 5191/ruby