Как я могу открыть порт всего на одном IP сервера?

Я настраиваю выделенный сервер для хостинга gameserver, который также разместит несколько других серверных приложений (таких как веб-сервер). Выделенный сервер имеет в общей сложности четыре IP-адреса, скажем, он использует следующее:

  • 192.0.2.0;
  • 192.0.2.1;
  • 192.0.2.2;
  • 192.0.2.3

Для безопасности я хочу, чтобы каждый IP был выделен определенному сервису/группе сервисов (и чтобы исходящие порты были абсолютно открыты), например:

  • 192.0.2.0 (Игровые Серверы);
  • 192.0.2.1 (Сервер Teamspeak);
  • 192.0.2.2 (Веб-сервер);
  • 192.0.2.3 (система [SSH, и т.д.])

Порядок событий должен состоять в том, что все порты заблокированы, затем разблокируются определенные порты. Я посмотрел здесь, и у меня есть грубый заказанный список команд, который будет превращен в сценарий удара и установлен выполниться на начальной загрузке:

iptables -A OUTPUT -o -j DROP
iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -p tcp -s 192.0.2.3 --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp -s 192.0.2.3 --dport 443 -j ACCEPT
iptables -I INPUT -p tcp -s 192.0.2.3 --dport 22 -j ACCEPT
iptables -I INPUT -p tcp -s 192.0.2.0 --dport 25565 -j ACCEPT
iptables -I INPUT -p tcp -s 192.0.2.0 --dport 25566 -j ACCEPT
iptables -I INPUT -p tcp -s 192.0.2.2 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 192.0.2.1 --dport 9987 -j ACCEPT

Две команды для разрешения всего исходящего трафика от IPTables управляют для разрешения всего исходящего локально исходящего трафика?

Из-за моего прошлого опыта с iptables, я отказываюсь применить эти правила, поскольку я не уверен, если они корректны, или если я приближаюсь к этому корректным способом. Будет вышеупомянутое iptables работа правил, как предназначено, и в противном случае как я могу пойти об исправлении его так, это будет работать, как предназначено?

Сервер запускает Ubuntu 14.04 64 бита. Мне действительно обеспечивал аппаратный брандмауэр мой поставщик в моем распоряжении, но он не позволяет мне блокировать/позволять порты для определенного дюйм/с, которого сервер имеет (таким образом, я не могу использовать его в этом экземпляре).

0
задан 13 April 2017 в 15:13
1 ответ

Исходя из вашего сообщения, я предполагаю:

В принципе, все IP-адреса могут открывать исходящие соединения По умолчанию IP-адрес не должен быть доступен для входящих подключений. Все IP-адреса привязаны к одному физическому сетевому интерфейсу.

Затем я бы настроил это следующим образом:

#Block all incoming connections
iptables -P INPUT REJECT

#Allow all outgoing connections
iptables -P OUTPUT ACCEPT

#Allow all on local loopback
iptables -A INPUT -i lo -j ACCEPT

#Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Game server on TCP/25565 and TCP/25566
iptables -A INPUT -p tcp -d 192.0.2.0 --dport 25565 -j ACCEPT
iptables -A INPUT -p tcp -d 192.0.2.0 --dport 25566 -j ACCEPT

#Teamspeak on TCP/9987 (No UDP?)
iptables -A INPUT -p tcp -d 192.0.2.1 --dport 9987 -j ACCEPT

#Web server
iptables -A INPUT -p tcp -d 192.0.2.2 --dport 80 -j ACCEPT

#System services
iptables -A INPUT -p tcp -d 192.0.2.3 --dport 22 -j ACCEPT

Кроме того, почему бы не использовать что-то вроде Shorewall для управления правилами iptables?

2
ответ дан 4 December 2019 в 13:45

Теги

Похожие вопросы