nixp.ru v3.0

22 января 2017,
воскресенье,
23:26:15 MSK

DevOps с компанией «Флант»
Аватар пользователя splinter
splinter написал 15 декабря 2008 года в 11:47 (426 просмотров) Ведет себя как четкий пацан; открыл 134 темы в форуме, оставил 1458 комментариев на сайте.

Сервер прокси, две сетевухи в инет yy.yy.yy.yy и в локалку xx.xx.xx.xx. Сквид висит на внутренем интерфейсе и отправляет все пакеты на yy.yy.yy.yy.

Снаружи yy.yy.yy.yy перекрыт полностью доступ извне:

iptables -A INPUT -i eth0 -p tcp -m tcp —tcp-flags FIN,SYN,ACK SYN -j LOG —log-level 7 —log-tcp-options &

iptables -A INPUT -i eth0 -p tcp -m tcp —tcp-flags FIN,SYN,ACK SYN -j REJECT —reject-with icmp-port-unreachable &

iptables -A FORWARD -o eth0 -p tcp -j DROP &

Через какое то время перестал работать slackpkg update(upgarde), ругаясь на то что не резольвится имя. В resolv.conf адреса днс прописаны. Так же у клиентов не пашут а-ля The Bat, но по имени в инет серфить ходят нормально. Подскажите в чем может быть проблема?

Dmitry.Stolyarov

Какие дефолтные правила для цепочек INPUT и FORWARD?

Можешь скинуть, что выводит iptables-save? Так будет сильно понятней…

splinter

это только завтра смогу на работе прокся, ну вообще правила всё логируем и блокируем. Со стороны интернета (по входу) всё заблокировано. FORWARD по выходу с eth0 заперт.

Dmitry.Stolyarov

Вообще хочется посмотреть на правила целиком… а то у меня с фантазией не очень… ждем до завтра.

splinter

root@proxynok:/etc/squid# iptables-save

# Generated by iptables-save v1.3.8 on Tue Dec 16 09:44:54 2008

*filter

:INPUT ACCEPT [14080843:5254382839]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [10330529:5405440754]

-A INPUT -i eth0 -p tcp -m tcp —tcp-flags FIN,SYN,ACK SYN -j REJECT —reject-with icmp-port-unreachable

-A FORWARD -o eth0 -p tcp -j DROP

COMMIT

# Completed on Tue Dec 16 09:44:54 2008

Dmitry.Stolyarov

Я бы советовал попробовать что-то такое:

*filter

:INPUT DROP [14080843:5254382839] — ну раз мы такие злые ;)

:FORWARD DROP [0:0] — ну а нафига правил держать, если мы не маршрутизируем?

:OUTPUT ACCEPT [10330529:5405440754]

-A INPUT -p icmp -j ACCEPT

-A INPUT -i -m conntrack —ctstate RELATED,ESTABLISHED -j ACCEPT — вот главная тема. Мы закрываем все соединения, инициализированные не с нашей стороны.

-A INPUT -i -j ACCEPT

COMMIT

# Completed on Tue Dec 16 09:44:54 2008

Для того, чтобы это заработало в ядре нужно включить conntrack. Так же советую включить хелперы для всяких FTP — позволит использовать активный FTP и прочее с сервера.

Но вообще… если бы я делал такую конфигурацию… я бы сделал так:

1) Выключил бы forwarding:

echo «net.ipv4.ip_forward = 0» >> /etc/sysctl.conf

# sysctl -p | grep net.ipv4.ip_forward

2) Убил бы все правила в фаерволе, и сделал бы для всех цепочек ACCEPT по умолчанию.

Почему так… а потому, что такие правила бессмысленны. Вот вопрос… если у тебя ни один сервис не слушает на внешней сетевке — какой смысл закрывать INPUT? А если у тебя форвард весь прибивается — какой смысл его вообще включать?

Соображения понятны?

P.S. Если кто-то скажет, что conntrack тормозит — бред. Поднимал маршрутизатор. Комп: Celeron 1.8, Compex сетевка на 100 Мбит… Ставил gentoo. Роутер работал (а может и работает — не знаю, ушел «из той компании»). Когда я его настраивал — через него одновременно пробегало порядка 50 000 соединений (это core-router не маленького московского вуза — МГИЭМ)… индикатор загрузки при таком количестве соединений — редко поднимался выше 0.01… contrack — не тормозит!!! :)

splinter

хм, слабо понимаю, но попробую покопать, iptables для меня пока еще дремучий лес.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.