次のように、テキストファイルにカンマで区切られたIPアドレスのリストがあります。
192.xxx.xxx.xxx,213.www.www.www,255.yyy.yyy.yyy
Ubuntu 19がこれらのIPアドレスに接続されないようにすることはできますか?それではどうですか?
答え1
まず、パケットフィルタ(Linux iptablesなど)は、ホスト名またはドメインごとのトラフィックをブロックまたは許可できません。パケットフィルタはIPアドレスのみを認識します。
第二に、FirewallDはハッキングしない限り、アウトバウンドトラフィックをフィルタリングできません。したがって、単にiptablesを使用する必要があります。
まず、リストに含まれるすべてのホスト名をIPアドレスに解決する必要があります。解決する必要があるホスト名が数百または数千個ある場合は、次のツールを使用できます。 http://domaintoipconverter.com/index.php
次に、IPアドレスのリストをファイル(例:list.txt)に保存します。
$ cat list.txt
10.20.20.2
8.8.8.8
1.1.1.1
1.2.3.4
8.8.4.4
次に、単純なスクリプトを使用してファイアウォールルールにIPアドレスを追加します。
Red Hat/CentOS
#!/bin/bash
# Stop and disable firewalld
systemctl stop firewalld
systemctl disable firewalld
yum clean all
yum install iptables-services -y
systemctl enable iptables
systemctl start iptables
# For loop statement that will read and add all the IPs from the list to firewall rule.
for i in $(cat list.txt);
do
iptables -A OUTPUT -d "$i" -j DROP
done
# Save the rules
service iptables save
Debian/Ubuntu
#!/bin/bash
apt-get update
apt install iptables-persistent -y
# For loop statement that will read and add all the IPs from the list to firewall rule.
for i in $(cat list.txt);
do
iptables -A OUTPUT -d "$i" -j DROP
done
# Save the rules
netfilter-persistent save
netfilter-persistent reload
変更を確認する:
$ iptables -L