На протяжении многих лет я изо всех сил пытался получить четкое представление об iptables. Каждый раз, когда я пытаюсь прочитать справочные страницы, мои глаза начинают тускнеть.
У меня есть служба, к которой я хочу разрешить доступ только локальному хосту.
Какие условия (или конфигурация, если кто-то чувствует себя щедрым) мне следует поискать в Google, чтобы разрешить только хосту localhost доступ к данному порту?
Если под службой вы подразумеваете конкретный порт, то следующие две строки должны работать. Измените «25» на любой порт, который вы пытаетесь ограничить.
iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP
Я бы рекомендовал:
iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP
Потому что пакеты с самоадресацией не обязательно имеют 127.0.0.1 в качестве источника, но все они «входят» из lo
интерфейс.
Теперь, если ты действительно хочу понять iptables
первое, что вам следует сделать, это скачать и распечатать хорошие диаграммы, объясняющие взаимосвязь netfilter
таблицы. Вот два замечательных:
Наконец, прочтите много iptables
HOWTO's. Практические примеры помогут вам быстро освоиться :)