Назад | Перейти на главную страницу

Iptables - как я могу ограничить доступ к службе на сервере двумя IP-адресами?

На моем персональном сервере (Centos 6.6) я приобрел дополнительный IP-адрес, чтобы весь доступ к бэкэнду был отделен от внешних приложений. Но я не уверен, как я могу указать, к какому порту можно получить доступ для данного IP.

Например

eth0 (192.168.10.1) будет только для порта 80/443 eth0: 1 (192.168.10.2) будет только для ssh

То, что у меня есть, но это не работает, так как я все еще могу получить доступ к 80/443/22 с любого ip:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1119386456:2737152595892]

#allow incoming ICMP ping pong stuff
-A INPUT -i eth0 -p icmp --icmp-type 8 -s 0/0 -m state --state NEW,ESTABLISHED,RELATED -m limit --limit 30/sec  -j ACCEPT
-A OUTPUT -o eth0 -p icmp --icmp-type 0 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#Accept all established inbound connections
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0:1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -i eth0:1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name DEFAULT --rsource -j DROP
#Allow SSH
-A INPUT -i eth0:1 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#Allow HTTP
-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#Allow HTTPS
-A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

#
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j DROP
-A FORWARD -j DROP
COMMIT

что-то мне не хватает? Заранее спасибо.

РЕДАКТИРОВАТЬ:

Извините, если я не ясно выразился. но намерение принимать трафик только на порты 80/443 на eth0 (192.168.10.1) и трафик с 22 на eth0: 1 (192.168.10.2)

Заменить -i eth0:1 с участием -d 1.1.1.1/32

Я полагаю, вы использовали ifconfig для создания псевдонима интерфейса. Фактически вы можете назначить более одного IP для интерфейса с помощью утилиты iproute2 (ip addr add ..).

Лучше использовать IP-адреса в правилах iptables.