私はsysctl.confファイルを修正してFedora 37のラップトップでipv6を無効にしようとしました。
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
これはうまくいかなかったので、インターネット上で見つけたbp028(ansi hardening linuxガイド)の役割と一緒にローカルでansibleを使用し、ipv6ラインを使用しました。最初の作業は、すべての.confファイルを一覧表示することでした。
- /etc/sysctl.d/
- /run/sysctl.d/
- /usr/local/lib/sysctl.d/
- /usr/lib/sysctl.d
次に、net.ipv6.conf.default.disable_ipv6 と net.ipv6.conf.all.disable_ipv6 をコメントアウトし、次のタスクを実行します。
- name: net.ipv6.conf.default.disable_ipv6 - disable ipv6
sysctl:
name: net.ipv6.conf.default.disable_ipv6
value: '1'
sysctl_set: yes
state: present
reload: yes
- name: net.ipv6.conf.all.disable_ipv6 - disable ipv6
sysctl:
name: net.ipv6.conf.all.disable_ipv6
value: '1'
sysctl_set: yes
state: present
reload: yes
ansibleを使用してジョブを実行すると、ipv6が正しく無効になります。
ただし、再起動すると、イーサネットインターフェイスでipv6がまだアクティブになり、入力するip a
とipv6プロトコルのtcpdumpでトラフィックを表示できます。入力するとlsmod | grep ipv6
nf_defrag_ipv6のみがあります。入力するとlsmod | grep ip6
ip6_tablesしかありませんが、chatgptはこのモジュールがipv6サポートでロードされないことを伝えます。私のipv6がまだアクティブなのはなぜですか、それを無効にするにはどうすればよいですか?ありがとう
答え1
答えは、ネットワーク管理者がこれらのsysctl設定を自動的に設定することです。これを無効にするには、次の手順を実行できます(このリンクに従ってください)。https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/using-networkmanager-to-disable-ipv6-for-a-specific-connection_configuring-and-managing-networking)
nmcli connection modify connection_name ipv6.method "disabled"
nmcli connection up connection_name
または、次のansible操作を使用できます。
- name: retrieve nmcli connection name based on interface
shell: nmcli -t connection show | grep {{ var_interface }} | awk -F ':' '{print $1}'
register: conn_name
- name: disable ipv6
community.general.nmcli:
ifname: enp53s0
method6: disabled
conn_name: "{{ conn_name.stdout }}"
state: present