コンピュータが他のIPに接続する機能をどのように制限しますか?

コンピュータが他のIPに接続する機能をどのように制限しますか?

次のように、テキストファイルにカンマで区切られた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

関連情報