두 인터페이스 모두 시작하기 전에 방화벽을 활성화해야 합니다.

두 인터페이스 모두 시작하기 전에 방화벽을 활성화해야 합니다.

DigitalOcean에 여러 개의 서버가 있고 이들이 서로 통신할 수 있기를 원한다고 가정해 보겠습니다.

DigitalOcean은 WAN 연결과 LAN 연결을 제공합니다. 문제는 둘 다 안전하다고 느끼지 않는다는 것입니다. WAN은 인터넷이고 LAN은 DigitalOcean에 컴퓨터(VPS)를 가진 모든 사람이 공유합니다.

그래서 WAN에서 53, 80, 443 등과 같은 몇몇 포트를 제외한 모든 포트를 차단하고 싶습니다. 이는 표준 절차입니다.

그런 다음 다른 컴퓨터에 MySQL이 있을 수 있으므로 IP 주소 10.1.1.1(실제로 DigitalOcean에서 작동하지 않는 IP 예)에 대해 포트 3306을 열고 싶습니다.

이제 내 문제는 인터페이스가 나타나기 전에 방화벽 규칙이 적용되기를 원한다는 것입니다.

auto eth0 eth1 

iface eth0 inet static
        address 8.8.8.2  # some Internet address
        netmask 255.255.255.255
        gateway 8.8.8.1  # some Internet address
        dns-nameservers 8.8.8.8 8.8.4.4
        pre-up /etc/network/firewall

iface eth1 inet static
        address 10.1.1.1
        netmask 255.0.0.0
        pre-up /etc/network/firewall

내가 생각해 낸 것은 pre-up두 인터페이스 모두에 추가하는 것입니다. 이렇게 하면 스크립트가 두 번 실행되기 전에 시작되도록 할 수 있습니다. 이는 스크립트가 두 번 실행된다는 의미이기도 합니다.

이렇게 하면 되나요? 아니면 pre-up모든 인터페이스에 대해 전역적으로 동등한 기능을 달성하는 더 좋은 방법이 있습니까 ?

참고: 운영 체제는 사용 가능한 최신 버전인 Ubuntu 16.04.1입니다.

답변1

저는 실제로 해결책을 찾았습니다. 저는 Ubuntu 16.04를 사용하고 있고 systemd를 갖고 있기 때문에 스크립트를 생성하여 snapinitfirewall.service방화벽 코드에 설치했습니다.

# Documentation available at:
# https://www.freedesktop.org/software/systemd/man/systemd.service.html

[Unit]
Description=Snap! Websites firewall initialization
Before=network.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/etc/network/firewall
#ExecStop=... -- why would you ever want to remove your firewall rules?

[Install]
WantedBy=multi-user.target

# vim: syntax=dosini

/etc/network/firewall시작 시 모든 규칙을 즉시 복원하는 스크립트입니다.

해당 패키지에 대한 또 다른 서비스 파일이 있기 때문에(즉, 하나의 패키지가 두 서비스를 모두 제공함) 초기화가 활성화되고 재부팅 시 실행되도록 하려면 다음 줄을 포함해야 합니다.

systemctl -q enable snapinitfirewall

pre-up이는 네트워크가 시작되기 전에 실행 중인지 확인할 수 있기 때문에 이 기능을 사용하는 것보다 더 나은 접근 방식입니다 .

더 궁금하신 분들을 위해,스냅샷 방화벽 프로젝트github에서.

관련 정보