iptables блокирует доступ к порту 8000 кроме как с IP-адреса - PullRequest
72 голосов
/ 15 сентября 2011

Я никогда не использовал iptables, и документация в Интернете кажется немного непрозрачной.

Я бы хотел заблокировать все запросы к порту 8000 на моем сервере, кроме тех, которые приходят с определенного IP-адреса.Как мне это сделать с помощью iptables?

Ответы [ 3 ]

129 голосов
/ 15 сентября 2011

Этот вопрос должен быть на Ошибка сервера . Тем не менее, следующее должно помочь, если вы говорите о TCP и IP-адрес, который вы хотите разрешить, является 1.2.3.4:

.
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
17 голосов
/ 17 сентября 2011

Еще одна альтернатива;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP

У меня была похожая проблема, что виртуальной машине с 3 мостами просто необходим доступ друг к другу с другой комбинацией, поэтому я проверил эту команду, и она хорошо работает.

Редактирование **

Согласно комментарию Фернандо и этой ссылке восклицательный знак (!) будет помещен перед параметром -s:

sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
4 голосов
/ 29 октября 2013

Вы всегда можете использовать iptables для удаления правил. Если у вас много правил, просто выведите их с помощью следующей команды.

iptables-save > myfile

vi, чтобы редактировать их из строки комментариев. Просто используйте "dd", чтобы удалить ненужные строки.

iptables-load < myfile and you're good to go.  

ПОМНИТЕ, ЧТО, ЕСЛИ ВЫ НЕ НАСТРОИЛИ СВОЮ ОС ДЛЯ СОХРАНЕНИЯ ПРАВИЛ В ФАЙЛЕ И ЗАГРУЗКИ ФАЙЛА ВО ВРЕМЯ ЗАГРУЗКИ, ЧТО ВАШИ ПРАВИЛА БУДУТ УТЕРЯНЫ

...