Я настраиваю выделенный сервер для хостинга 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 бита. Мне действительно обеспечивал аппаратный брандмауэр мой поставщик в моем распоряжении, но он не позволяет мне блокировать/позволять порты для определенного дюйм/с, которого сервер имеет (таким образом, я не могу использовать его в этом экземпляре).
Исходя из вашего сообщения, я предполагаю:
В принципе, все 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?