[Linux] Autoriser / bloquer l'accès à partir d'adresses IP et de numéros de port spécifiques avec iptables

Je vais écrire un mémo sur la façon de configurer iptables.

iptables est l'un des pare-feu Linux, et en le définissant sur le serveur, vous pouvez restreindre l'accès ou restreindre l'accès à partir de ce serveur.

Cette fois, j'ai attribué le numéro de port à chaque personne dans l'environnement de test de mon entreprise, j'ai donc dû le définir à ce moment-là. Je vais l'écrire sous forme de mémoire à ce moment-là.

Je n'écrirai que sur la manière de base d'écrire iptable, donc je serais heureux si vous pouviez penser "Oh, je vais l'utiliser à de tels moments".

Qu'est-ce que iptables

iptables sont des pare-feu dont le système d'exploitation est installé en standard sur les serveurs Linux. Vous pouvez également l'utiliser pour bloquer l'accès des adresses IP que vous n'aimez pas ou pour autoriser l'accès à des numéros de port spécifiques. Par exemple, supposons que vous exécutiez un grand site EC. Ensuite, vous pouvez être attaqué par DoS de l'étranger. Dans un tel cas, vous devez empêcher l'adresse IP à laquelle vous accédez. Une des méthodes efficaces dans ce cas est iptable. Il est également utilisé pour autoriser l'accès au numéro de port. Au lieu d'utiliser 80 ou 443 lorsque vous souhaitez accéder au nouveau site Web, vous pouvez l'utiliser lorsque vous souhaitez utiliser votre propre numéro de port comme 8003 ou lorsque vous souhaitez arrêter de l'utiliser.

Façon basique d'écrire iptable

Voyons d'abord si iptable est installé en premier lieu.

which iptables

Vous pouvez vérifier où la commande iptables est stockée avec quelle commande. avec ça

/usr/sbin/iptables

S'il sort, cela signifie qu'il est installé sans aucun problème.

Ouvrez-le avec vim et regardez le contenu.

*filter:INPUT DROP [0:0]:OUTPUT ACCEPT [0:0]

Je pense que c'est écrit comme ça au début. INPUT DROP [0: 0] définit la réception pour ce serveur. Quoi qu'il en soit, la communication sera rejetée. ACCEPTER, c'est bien. Donc, avec ce paramètre, ce serveur n'acceptera aucune communication. Donc, l'entrée de base est ACCEPT.

Contrôlez l'accès aux adresses IP et aux ports

L'adresse IP est

iptables -A INPUT -s 192.168.xxx.xxx/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 22 -j DROP

Comme ça. Ignorez l'option cette fois et ne regardez que la partie de 192.168.xxx.xxx. Ce n'est pas grave si vous la modifiez en une adresse IP à laquelle vous ne souhaitez pas accéder. Le numéro de port est

-A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT

Cela permettra d'accéder au numéro de port 8001. Si vous changez ACCEPT en DROP, il sera fermé et inaccessible. Au fait, l'image d'accès en spécifiant le numéro de port est

https://qiita.com:8001

C'est comme ça. Au fait, qiita n'a pas ouvert 8001, donc bien sûr vous ne pouvez pas y accéder. mais

https://qiita.com:443

Vous pouvez y accéder normalement! (Puisque le port est défini automatiquement simplement en spécifiant https, ...) Dans son ensemble

# Generated by iptables-save v1.4.21 on Mon Jan 1 19:00:00 2019
*filter
:INPUT DROP [0:0]:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [37:2217]
-A INPUT -s 192.111.11.1/11 -p tcp -j ACCEPT
-A INPUT -s 58.111.11.111/11 -p tcp -m tcp --dport 29870 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8002 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8003 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8004 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8005 -j ACCEPT
COMMIT# Completed on Mon Jan 1 19:00:00 2019

C'est comme ça. Si vous avez modifié les paramètres, redémarrons-le à la fin.


service iptables restart

Je pense que cela reflète le résultat. Je vous remercie pour votre travail acharné.

Recommended Posts

[Linux] Autoriser / bloquer l'accès à partir d'adresses IP et de numéros de port spécifiques avec iptables
Autoriser firewalld à ssh uniquement des adresses IP spécifiques
Accès ODBC à SQL Server depuis Linux avec Python