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

Разрешить HTTP-доступ к внешнему интерфейсу

Как я могу разрешить HTTP-доступ к $ EXTIF?

*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0] #If this is changed to DROP than clients cannot connect out.
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j LOG
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -j LOG
-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -j LOG
COMMIT

Разрешить только HTTP для $ EXTIF:

iptables -A INPUT -m state --state ESSTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $EXTIF -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -j LOG
iptables -P INPUT DROP

Это позволит посторонним инициировать подключения только к порту 80 (HTTP) вашего сервера. Установленное / связанное правило позволит серверу отвечать только на эти соединения, так что, я думаю, это удовлетворяет вашим требованиям.

Это также должно довольно эффективно заполнить ваш журнал пакетами на порты, отличные от 80. Я бы рассмотрел правило ограничения в разделе -j LOG.

NAT не позволяет любому внешнему объекту инициировать прямое соединение с чем-либо, находящимся за NAT. Для защиты сети с NAT от сканирования портов ничего делать не нужно. По-прежнему рекомендуется поддерживать отдельные хосты с установленным брандмауэром и установленным антивирусным ПО (если это ОС MS).

Найдите время, чтобы прочитать удивительно ненадежные руководства Расти (http://people.netfilter.org/~rusty/unreliable-guides/) и страницы руководства iptables. Они хорошо написаны.