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

Разрешить трафик на один порт с одного IP-адреса с помощью iptables

Я использую следующее правило iptables, чтобы попытаться разрешить доступ к порту 8080 с одного IP-адреса:

iptables -A INPUT -s 12.34.56.78 -p tcp -m tcp --dport 8080 -j ACCEPT

Однако это правило не работает. Если я удалю -s 12.34.56.78 часть, то он работает, но позволяет любому получить доступ к порту 8080 (нежелательно).

Когда я бегу iptables -L после применения приведенного выше правила я получаю следующее (что меня озадачивает - почему он просто не отображает фактический IP в источнике?):

root@wso-solr:/etc# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  host-12-34-56-78.host.com  anywhere            tcp dpt:http-alt 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Мне интересно, может ли это быть какой-то странностью dns, из-за которой iptables видит неправильный IP-адрес / запись DNS для моего конкретного сервера (он возвращает host-ip.host.com для источника вместо IP-адреса ... ).

Похоже, я использовал неправильный IP-адрес. Мой хостинг-провайдер определил истинный IP-адрес сервера, на котором находился мой VPS. Я вошел туда, и все сработало как по волшебству!