Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Почтовый клиент мимо прокси (squid)  (Прочитано 1117 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Micha

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Почтовый клиент мимо прокси (squid)
« : 29 Октября 2013, 08:28:33 »
Приветствую всех.

Все сотрудники в инет ходят через прокси-сервер.
Необходимо настроить iptables, чтобы почтовые клиенты (The Bat) работали.
Подскажите, пожалуйста, какие правила нужно прописать в iptables
Спасибо.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #1 : 29 Октября 2013, 08:39:25 »
Покажите, какие правила активны сейчас.
iptables-save
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Micha

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #2 : 29 Октября 2013, 08:51:03 »
#!/bin/bash
#
##########################################################
echo 1 > /proc/sys/net/ipv4/ip_forward
# Для защиты от syn флуда
#echo 1 > /proc/sys/net/ipv4/tcp_syncookiess
# Число начальных SYN и SYNACK пересылок для TCP соединения
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries
#Какие порты использовать в качестве локальных TCP и UDP портов
#echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range
#Сколько секунд ожидать приема FIN до полного закрытия сокета
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Как часто посылать сообщение о поддержании keep alive соединения
#echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
# Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто.
#echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes
# Зaпрещаем TCP window scaling
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
# Запрещаем selective acknowledgements, RFC2018
echo 0 > /proc/sys/net/ipv4/tcp_sack
# Запрещаем TCP timestamps, RFC1323
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
# Через какое время убивать соединеие закрытое на нашей стороне
#echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries
##################
EXT_IF="ppp0"
LAN_IF="eth0"
LOCAL_NET="192.168.0.0/24"
IPT=`which iptables`
EXT_IP=`ifconfig $EXT_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
LAN_IP=`ifconfig $LAN_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
#
$IPT -t nat -F
$IPT -X
$IPT -F
#modprobe iptable_nat
#modprobe ip_conntrack_ftp
#modprobe ip_nat_ftp
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
#localhost rules
$IPT -A INPUT -p ALL -i lo -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $EXT_IP -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $LAN_IP -j ACCEPT

#Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру
#$IPT -A INPUT -m state ! -i lo --state NEW -j DROP

#Если интерфейс не lo, то запрещаем входить в список его адресов
$IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP

#Отбрасывать все пакеты, которые не могут быт индентифицированы и поэтому не могут иметь определенного статуса
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

#Принимаем все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED
#Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#SYN наводнение
#ПРиводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

#UDP наводнение
#Службы, использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя
$IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
$IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
$IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT 
$IPT -A INPUT -p UDP -j RETURN
$IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT

# ICMP - перенаправление
# ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять
# пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину.
$IPT -A INPUT --fragment -p ICMP -j DROP
$IPT -A OUTPUT --fragment -p ICMP -j DROP

# Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
# том, что происходит с тем или иным UDP или TCP соединением.
$IPT -A INPUT -p icmp -m icmp -i $EXT_IF --icmp-type source-quench -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $EXT_IF --icmp-type source-quench -j ACCEPT
   
# Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
$IPT -A INPUT -p icmp -m icmp -i $EXT_IF --icmp-type echo-reply -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $EXT_IF --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p icmp -m icmp -i $EXT_IF -j DROP

#external net rules
# ICMP rules
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-reply -j ACCEPT

#Открываем некоторые порты
$IPT -A INPUT -p TCP -i $EXT_IF --dport 20:21 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 22 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --sport 53 -j ACCEPT
$IPT -A INPUT -p UDP -i $EXT_IF --sport 53 -j ACCEPT


# NTP outgoing client request
#$IPT -A output -p udp -s $LOCAL_NET --sport 1024:65535 -d 0/0  --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
#$IPT -A input -p udp -s 0/0 --sport 123 -d $LOCAL_NET  --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

$IPT -I INPUT -p UDP -s $LOCAL_NET --dport 123 -j ACCEPT
#$IPT -I OUTPUT -p UDP -s 0/0 --sport 123 -j ACCEPT


#Доступ на web
$IPT -A INPUT -p tcp -m tcp -s 0/0 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

$IPT -A INPUT -p TCP -i $EXT_IF --dport 10000:65535 -j ACCEPT
#end external if
#
#internal net rules
#ICMP
$IPT -A INPUT -p ICMP -i $LAN_IF -j ACCEPT
#
$IPT -A INPUT -p ALL -i $LAN_IF -j ACCEPT

# Forward Rules

$IPT -A FORWARD -i $LAN_IF -j ACCEPT
$IPT -A FORWARD -o $LAN_IF -j ACCEPT

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Micha

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #5 : 29 Октября 2013, 09:10:04 »
Естественно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #6 : 29 Октября 2013, 09:10:20 »
Глаза разуйте. Вас просили показать.
iptables-save
OpenWrt 19.07

Оффлайн Micha

  • Автор темы
  • Любитель
  • *
  • Сообщений: 93
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #7 : 29 Октября 2013, 09:14:50 »
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*nat
:PREROUTING ACCEPT [3824792:1394725952]
:POSTROUTING ACCEPT [1774847:85836956]
:OUTPUT ACCEPT [1587614:74346529]
-A POSTROUTING -s 192.168.0.227/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.202/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.86/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.66/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.55/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.106/32 -j MASQUERADE
COMMIT
# Completed on Tue Oct 29 11:15:03 2013
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*filter
:INPUT DROP [99:18956]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [22312:12996517]
-A INPUT -s 192.168.0.0/24 -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 85.233.158.200/32 -i lo -j ACCEPT
-A INPUT -s 192.168.0.1/32 -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 ! -i lo -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -p udp -m udp --dport 138 -j DROP
-A INPUT -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -p udp -j RETURN
-A INPUT -p icmp -f -j DROP
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type any -j DROP
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 20:21 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 47 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 10000:65535 -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -s 192.168.0.58/32 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -s 192.168.0.58/32 -p udp -m udp --dport 110 -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A OUTPUT -p udp -j ACCEPT
-A OUTPUT -p icmp -f -j DROP
-A OUTPUT -o ppp0 -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A OUTPUT -o ppp0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Tue Oct 29 11:15:03 2013
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*mangle
:PREROUTING ACCEPT [125304521:91525138251]
:INPUT ACCEPT [111140615:82601024456]
:FORWARD ACCEPT [14034678:8910962990]
:OUTPUT ACCEPT [129557920:85631654653]
:POSTROUTING ACCEPT [143590858:94541757055]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Tue Oct 29 11:15:03 2013

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Почтовый клиент мимо прокси (squid)
« Ответ #8 : 29 Октября 2013, 09:57:46 »
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*nat
:PREROUTING ACCEPT [3824792:1394725952]
:POSTROUTING ACCEPT [1774847:85836956]
:OUTPUT ACCEPT [1587614:74346529]
-A POSTROUTING -s 192.168.0.227/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.202/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.86/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.66/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.55/32 -j MASQUERADE
-A POSTROUTING -s 192.168.0.106/32 -j MASQUERADE

Это всё [censored] чудесно заменяется одним правилом

-A POSTROUTING -o $inet_iface -j MASQUERADE

Цитировать
COMMIT
# Completed on Tue Oct 29 11:15:03 2013
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*filter
:INPUT DROP [99:18956]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [22312:12996517]

Дурдом инкаминг...

Цитировать
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
Эти правила должны идти первыми.

Цитировать
-A INPUT -s 192.168.0.0/24 -p udp -m udp --dport 123 -j ACCEPT

Почему не
Цитировать
-A INPUT -i $lan_iface -j ACCEPT
?

Цитировать
-A INPUT -s 85.233.158.200/32 -i lo -j ACCEPT
-A INPUT -s 192.168.0.1/32 -i lo -j ACCEPT

Сами-то поняли, что написали?...

Цитировать
-A INPUT -s 127.0.0.0/8 ! -i lo -j DROP

-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

После state/invalid/drop эти правила не несут никакой смысловой нагрузки.

Цитировать
-A INPUT -p udp -m udp --dport 138 -j DROP
-A INPUT -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable

Накрена?...

Цитировать
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
Смотри выше, $lan_iface...

Цитировать
-A INPUT -p udp -j RETURN
RETURN из INPUT? Жууутко интересно, куда это вы возвращаться собрались??...

Цитировать
-A INPUT -p icmp -f -j DROP
А в лоб? Шлюз не имеет права блокировать служебный трафик.
А невалидные пакеты ещё раньше заблокированы.
То же относится к остальным правилам на эту тему - убирайте.

Цитировать
-A INPUT -i ppp0 -p tcp -m tcp --dport 20:21 -j ACCEPT
Простите, а 20 порт у вас что вообще?... Я вот не знаю сервисов, которые слушают 20-й порт.

Цитировать
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
У вас почтовый сервер в мир смотрит?

Цитировать
-A INPUT -p tcp -m tcp --dport 1723 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
И PPTP? B интернет тоже через VPN ходите? А вы в ppp не пппутаетесь?

Цитировать
-A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
У вас related,established ещё раньше разрешены. Не надо делать лишних проверок.
 
Цитировать
-A INPUT -i ppp0 -p tcp -m tcp --dport 47 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
То же самое - НЕ НАДО делать лишних проверок. Они ЛИШНИЕ!

Цитировать
-A INPUT -i ppp0 -p tcp -m tcp --dport 10000:65535 -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
Смотрите выше про $lan_iface.

Цитировать
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
Ну это то занафигом?
RELATED,ESTABLISHED уже разрешили, куда ещё?

Цитировать
-A FORWARD -s 192.168.0.58/32 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -s 192.168.0.58/32 -p udp -m udp --dport 110 -j ACCEPT
Ээээ, ЧЁ???? какой на три весёлых буквы UDP?
POP3 всю жизнь по TCP работал. Добавьте сюда же 143 (IMAP), 465 (SMTPS), 993 (IMAPS), 995 (POP3S).

Цитировать
-A OUTPUT
Убрать. Всё.

Цитировать
COMMIT
# Completed on Tue Oct 29 11:15:03 2013
# Generated by iptables-save v1.4.4 on Tue Oct 29 11:15:03 2013
*mangle
:PREROUTING ACCEPT [125304521:91525138251]
:INPUT ACCEPT [111140615:82601024456]
:FORWARD ACCEPT [14034678:8910962990]
:OUTPUT ACCEPT [129557920:85631654653]
:POSTROUTING ACCEPT [143590858:94541757055]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Tue Oct 29 11:15:03 2013

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.021 секунд. Запросов: 22.