Я использую следующее правило 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. Я вошел туда, и все сработало как по волшебству!