Python을 IPTables로 변경하는 가장 안전한 방법

Python을 IPTables로 변경하는 가장 안전한 방법

Python에서 IPTable을 변경하는 가장 안전한 방법이 무엇인지 아는 사람이 있습니까?

학교 프로젝트를 위해 간단한 종속 포털을 구축하고 있습니다. 사용자가 Python 및 mariadb를 통해 포털에서 인증하면 Python은 IP 액세스 권한을 부여하기 위해 IPTables에 명령을 보냅니다.

하지만 이를 수행하는 가장 좋은 방법은 무엇입니까? Python에 정확한 명령을 입력한다고 해서 이것이 달성되는 것은 아니라고 확신합니다. 쉘 스크립트를 실행하는 것입니까? 하지만 쉘 스크립트에서 IP 주소를 어떻게 보낼 수 있습니까?

답변1

다음을 수행할 수 있습니다.

import subprocess

ip = get_ip() # you have to create the code to fetch IP in this variable
subprocess.run(["/usr/sbin/iptables", "-A", "-p", "tcp", "-s", ip, "-j", "ACCEPT"])
#                                                               ^
#                                                               |
#                                                      This is a variable

답변2

Gilles가 언급한 것과 같은 쉘 명령을 실행하거나 유사한 라이브러리를 사용할 수 있습니다.파이썬 iptables

또한 이러한 작업에는 ipset을 사용하는 것이 더 편리합니다.

다음과 같이 ipset을 생성합니다.

ipset create allowed_list hash:ip

iptables 규칙은 다음과 같습니다

iptables -A INPUT -m set --match-set allowed_list src -j ACCEPT

IP 주소 추가/제거

ipset add allowed_list 10.0.0.1
ipset del allowed_list 10.0.0.2

관련 정보