RHLEのIPv6関連で不要な設定を無効にしておこう

コンピュータ
スポンサーリンク

RHEL、LinuxとIPv6関連の機能が有効だと不要なパケットが流れる、意図しない動きになる(IPv6が優先で動いている)などトラブルが発生するため、極力無効化しておくと良いです。

なお、一番最初にカーネルでIPv6のモジュールを読み込まない設定をすると、動作確認でポートが閉じたことを確認することはできません。

スポンサーリンク

カーネルでIPv6を読み込ませない

// loopbackのinet6で確認可能
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

// grub修正
# vi /etc/default/grub
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="crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap ipv6.disable=1rhgb quiet" ★「ipv6.disable=1」を追記
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

// 設定を反映
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done

// カーネルに読み込ませるためOSを再起動する
# systemctl reboot

// 設定が正常に反映されていればinet6が消えているはず
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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


// またv6でListenできなくなっているため、設定変更前に表示されていたv6関連のポートは全て消えているはず
# netstat -na | grep ::
⇒何も表示されないはずです

hosts

// ::のエントリをコメントアウト
# cat hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ★コメントアウト

sshのv6無効

// 修正前にv6で利用されているサービス一覧
# netstat -na  |grep ::
tcp6       0      0 ::1:44321               :::*                    LISTEN
tcp6       0      0 ::1:4330                :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:953                 :::*                    LISTEN
udp6       0      0 :::53                   :::*
udp6       0      0 :::111                  :::*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::33541                :::*

// 0.0.0.0のみコメントを外す
# vi /etc/ssh/sshd_config

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#Port 22
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::

// 設定反映
# systemc restart sshd.service

// 22番ポートのListenがないことを確認
# netstat -na  |grep ::
tcp6       0      0 ::1:44321               :::*                    LISTEN
tcp6       0      0 ::1:4330                :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
tcp6       0      0 ::1:953                 :::*                    LISTEN
udp6       0      0 :::53                   :::*
udp6       0      0 :::111                  :::*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::33541                :::*

BINDのv6無効

named.confに記載する方法も、オプションで無効にする方法を記載。

// 修正前にv6で利用されているサービス一覧
# netstat -na  |grep ::
tcp6       0      0 ::1:44321               :::*                    LISTEN
tcp6       0      0 ::1:4330                :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
udp6       0      0 :::53                   :::*
udp6       0      0 :::111                  :::*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::33541                :::*

// 最終行に以下の内容を追記
# cat /etc/sysconfig/named

OPTIONS="-4"


// 設定反映
# systemc restart named.service

// 53番ポートがないことを確認
# netstat -na  |grep ::
tcp6       0      0 ::1:44321               :::*                    LISTEN
tcp6       0      0 ::1:4330                :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
udp6       0      0 :::111                  :::*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::33541                :::*

chronyのv6無効

// v6のが有効になっていることを確認
# systemc status chronyd.service
 1月 22 16:17:18 relay chronyd[3690]: chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG)


// 最終行に以下の内容に修正
# cat /etc/sysconfig/chronyd
OPTIONS="-4"


// 設定反映
# systemctl restart chronyd.service

// v6が無効の場合、「+IPV6」と、出力されていた「::1」のログが消えているはず 
# systemctl status chronyd.service
1月 22 16:13:13 relay chronyd[3619]: chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +>

vsftpdのv6無効

listenとlisten_ipv6の両方をYESにすることはできない

// 以下のコンフィグ修正
# vi /etc/vsftpd/vsftpd.conf
以下を修正

//v4でLisetnさせる。
#listen=NO
listen=YES

// v6を無効にする
#listen_ipv6=YES
listen_ipv6=NO

// 設定反映
# systemctl restart vsftpd.service

Postfixのv6無効

// 以下のコンフィグ修正
# vi /etc/postfix/main.cf
以下を修正

# Enable IPv4, and IPv6 if supported
#inet_protocols = all
inet_protocols = ipv4

// 設定反映
# systemctl restart postfix.service

Dovecotのv6無効

// 以下のコンフィグ修正
# vi /etc/dovecot/dovecot.conf
以下を修正

#listen = *, :: ★コメントアウト
listen = 192.168.11.11  ★適宜設定

// 設定反映
# systemctl restart dovecot.service

Squidのv6無効

「IPアドレス:LISTENポート番号」で指定する。ポートのみはNGだった記憶。

// 以下のコンフィグ修正
# vi /etc/squid/squid.conf
以下を修正

# Squid normally listens to port 3128
#http_port 3128 ★コメントアウト
http_port 192.168.11.11:8080 ★適宜設定


// 設定反映
# systemctl restart squid.service

タイトルとURLをコピーしました