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


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

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 526749 раз)

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

alexxnight

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #1140 : 29 Марта 2011, 13:11:53 »
Предлагаю дальше набор правил обсуждать. Я думаю, что новичкам будет интересно знать, какие правила для чего и зачем... Или как дальше, в какую сторону? :)

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1141 : 29 Марта 2011, 23:58:18 »
ОК
Теперешнии правила примерно таковы:

# Generated by iptables-save v1.4.4 on Tue Mar 29 23:56:17 2011
*mangle
:PREROUTING ACCEPT [200:18337]
:INPUT ACCEPT [196:17757]
:FORWARD ACCEPT [4:580]
:OUTPUT ACCEPT [178:292088]
:POSTROUTING ACCEPT [182:292668]
COMMIT
# Completed on Tue Mar 29 23:56:17 2011
# Generated by iptables-save v1.4.4 on Tue Mar 29 23:56:17 2011
*filter
:INPUT DROP [2:186]
:FORWARD ACCEPT [4:580]
:OUTPUT ACCEPT [178:292088]
:BAD_PACKETS - [0:0]
:ICMP_PACKETS - [0:0]
:SAFETY_TRACE - [0:0]
:TCP_PACKETS - [0:0]
:UDP_PACKETS - [0:0]
-A INPUT -j SAFETY_TRACE
-A INPUT -j BAD_PACKETS
-A INPUT -p tcp -j TCP_PACKETS
-A INPUT -p udp -j UDP_PACKETS
-A INPUT -p icmp -j ICMP_PACKETS
-A BAD_PACKETS -m conntrack --ctstate INVALID -j DROP
-A BAD_PACKETS -f -j DROP
-A BAD_PACKETS -s 127.0.0.0/8 ! -i lo -j DROP
-A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -j LOG --log-prefix "iptabler:ip spoofing: "
-A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -j REJECT --reject-with tcp-reset
-A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -m limit --limit 3/min -j LOG --log-prefix "iptabler:new not syn: "
-A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP
-A BAD_PACKETS -p udp -m udp --dport 113 -m limit --limit 3/min -j LOG --log-prefix "iptabler:udp storm: "
-A BAD_PACKETS -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable
-A ICMP_PACKETS -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ICMP_PACKETS -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A ICMP_PACKETS -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A SAFETY_TRACE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A SAFETY_TRACE -i lo -j ACCEPT
-A SAFETY_TRACE -s 192.168.8.0/24 -i wlan0 -j ACCEPT
-A TCP_PACKETS -p tcp -m tcp --dport 3417 -j ACCEPT
-A TCP_PACKETS -p tcp -m tcp --dport 58846 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --dport 123 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
COMMIT
# Completed on Tue Mar 29 23:56:17 2011
# Generated by iptables-save v1.4.4 on Tue Mar 29 23:56:17 2011
*nat
:PREROUTING ACCEPT [26:3229]
:POSTROUTING ACCEPT [11:1107]
:OUTPUT ACCEPT [11:1107]
-A POSTROUTING -s 192.168.8.0/24 -o eth0 -j SNAT --to-source 86.110.МОЙ.ИП
COMMIT

alexxnight

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #1142 : 31 Марта 2011, 00:21:44 »
давайте посмотрим цепочку BAD_PAKETS

-A BAD_PACKETS -m conntrack --ctstate INVALID -j DROP
-A BAD_PACKETS -f -j DROP
-A BAD_PACKETS -s 127.0.0.0/8 ! -i lo -j DROP
-A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -j LOG --log-prefix "iptabler:ip spoofing: "
-A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -j REJECT --reject-with tcp-reset
-A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -m limit --limit 3/min -j LOG --log-prefix "iptabler:new not syn: "
-A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP
-A BAD_PACKETS -p udp -m udp --dport 113 -m limit --limit 3/min -j LOG --log-prefix "iptabler:udp storm: "
-A BAD_PACKETS -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable

как предлагаю:
1) -A BAD_PACKETS -f -j DROP
отбросим фрагментированные пакеты

2) -A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -m limit --limit 3/min -j LOG --log-prefix "iptabler:ip spoofing: "
2) -A BAD_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate INVALID,NEW -j REJECT --reject-with tcp-reset
защита от спуфинга должно быть тут

3) -A BAD_PACKETS -m conntrack --ctstate INVALID -j DROP
иначе это правило сработает раньше защиты от спуфинга

4) -A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -m limit --limit 3/min -j LOG --log-prefix "iptabler:new not syn: "
4) -A BAD_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j DROP
ага, далее NEW not SYN

5) -A BAD_PACKETS -p udp -m udp --dport 113 -m limit --limit 3/min -j LOG --log-prefix "iptabler:udp storm: "
5) -A BAD_PACKETS -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable
и замыкающий, хотя это можно реализовать немного по другому.

ок, цепочка UPD_PACKETS:

-A UDP_PACKETS -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --dport 123 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

не совсем понятно вот это правило:
-A UDP_PACKETS -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT

и вот это:
-A UDP_PACKETS -p udp -m udp --sport 1024:65535 --dport 1024:65535 -j ACCEPT

Оффлайн chikatillo

  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1143 : 04 Апреля 2011, 13:24:26 »
Есть правило для прозрачного сквида:
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d ! 192.168.0.0/16 -m multiport --dport 80,8080,10000 -j REDIRECT --to-ports 3128
Нужно определенный айпи не  REDIRECT  на сквид... Или  как-то сам сквид может пропускать?
Хм.... Ну Сделал типа так:
-A PREROUTING -s IP -j ACCEPT
Правильно ли?
« Последнее редактирование: 04 Апреля 2011, 14:45:53 от chikatillo »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1144 : 04 Апреля 2011, 14:48:43 »
Цитировать
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d ! 192.168.0.0/16 ! -s 00.00.00.00/32 -m multiport --dport 80,8080,10000 -j REDIRECT --to-ports 3128

Оффлайн chikatillo

  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1145 : 04 Апреля 2011, 15:01:37 »
Цитировать
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d ! 192.168.0.0/16 ! -s 00.00.00.00/32 -m multiport --dport 80,8080,10000 -j REDIRECT --to-ports 3128
Именно!

Оффлайн f00ntic

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1146 : 05 Апреля 2011, 22:16:57 »
Здравствуйте всем!
Перестал работать SSl, ума не приложу в чем дело.
iptables.sh под спойлером, 443 порт открыт.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 05 Апреля 2011, 22:18:48 от f00ntic »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1147 : 05 Апреля 2011, 22:20:06 »
Я даже листать не стал эту простынку.
Давайте лучше в общепринятом формате посмотрим те правила, которые действуют. а посмотрим их с помощью команды
sudo iptables-save

Оффлайн f00ntic

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1148 : 06 Апреля 2011, 22:21:46 »
Прошу прощения
Вот:
# Generated by iptables-save v1.4.4 on Wed Apr  6 22:20:45 2011
*mangle
:PREROUTING ACCEPT [499864:358190657]
:INPUT ACCEPT [212679:159514616]
:FORWARD ACCEPT [286676:198606177]
:OUTPUT ACCEPT [195083:157487208]
:POSTROUTING ACCEPT [480467:355861829]
COMMIT
# Completed on Wed Apr  6 22:20:45 2011
# Generated by iptables-save v1.4.4 on Wed Apr  6 22:20:45 2011
*nat
:PREROUTING ACCEPT [60949:4546424]
:POSTROUTING ACCEPT [11:2450]
:OUTPUT ACCEPT [899:57007]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o ppp0 -j SNAT --to-source xxx.xxx.xxx.xxx
COMMIT
# Completed on Wed Apr  6 22:20:45 2011
# Generated by iptables-save v1.4.4 on Wed Apr  6 22:20:45 2011
*filter
:INPUT DROP [33101:1989204]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:bad_packets - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_inbound - [0:0]
:tcp_outbound - [0:0]
:udp_inbound - [0:0]
:udp_outbound - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -j bad_packets
-A INPUT -d 224.0.0.1/32 -j DROP
-A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT
-A INPUT -d 192.168.0.255/32 -i eth1 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p tcp -j tcp_inbound
-A INPUT -i ppp0 -p udp -j udp_inbound
-A INPUT -i ppp0 -p icmp -j icmp_packets
-A INPUT -m pkttype --pkt-type broadcast -j DROP
-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "INPUT packet died: "
-A FORWARD -j bad_packets
-A FORWARD -i eth1 -p tcp -j tcp_outbound
-A FORWARD -i eth1 -p udp -j udp_outbound
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "FORWARD packet died: "
-A OUTPUT -p icmp -m state --state INVALID -j DROP
-A OUTPUT -s 127.0.0.1/32 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 192.168.0.1/32 -j ACCEPT
-A OUTPUT -o eth1 -j ACCEPT
-A OUTPUT -o ppp0 -j ACCEPT
-A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "OUTPUT packet died: "
-A bad_packets -s 192.168.0.0/24 -i ppp0 -j LOG --log-prefix "Illegal source: "
-A bad_packets -s 192.168.0.0/24 -i ppp0 -j DROP
-A bad_packets -m state --state INVALID -j LOG --log-prefix "Invalid packet: "
-A bad_packets -m state --state INVALID -j DROP
-A bad_packets -p tcp -j bad_tcp_packets
-A bad_packets -j RETURN
-A bad_tcp_packets -i eth1 -p tcp -j RETURN
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn: "
-A bad_tcp_packets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j LOG --log-prefix "Stealth scan: "
-A bad_tcp_packets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
-A bad_tcp_packets -p tcp -j RETURN
-A icmp_packets -p icmp -f -j LOG --log-prefix "ICMP Fragment: "
-A icmp_packets -p icmp -f -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A icmp_packets -p icmp -j RETURN
-A tcp_inbound -p tcp -m tcp --dport 80 -j ACCEPT
-A tcp_inbound -p tcp -m tcp --dport 443 -j ACCEPT
-A tcp_inbound -p tcp -m tcp --dport 22 -j ACCEPT
-A tcp_inbound -p tcp -j RETURN
-A tcp_outbound -p tcp -j ACCEPT
-A udp_inbound -p udp -m udp --dport 137 -j DROP
-A udp_inbound -p udp -m udp --dport 138 -j DROP
-A udp_inbound -p udp -j RETURN
-A udp_outbound -p udp -j ACCEPT
COMMIT
# Completed on Wed Apr  6 22:20:45 2011

Но я тут вчера выяснил, что https через прозрачный squid не работает и после отключения редиректа с 443 порта на порт squid и добавления правила
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT кажется все заработало.

Но теперь появилась другая проблема - с интернет радио:
Ссылки типа http://88.191.122.121:80/ играют нормально
А вот такие http://scfire-dtc-aa06.stream.aol.com:80/stream/1026 заикаются (обрывисто играют что-ли, плеер VLC на клиентской винде)
Если есть предположения, буду очень признателен.
« Последнее редактирование: 07 Апреля 2011, 00:34:53 от f00ntic »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1149 : 06 Апреля 2011, 22:56:19 »
А откуда проверяете SSL?
По правилам 443 порт перекрыт только с интерфейса eth0 на данный хост(шлюз). По крайней мере, я не заметил других преград.

Оффлайн f00ntic

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1150 : 06 Апреля 2011, 23:08:38 »
Да я не проверял, просто доступа к сайтам с https не было, а сейчас есть правда кажется я строкой
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT  весь трафик пробросил мимо squid'а, т.к. кеш его пустой..

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1151 : 06 Апреля 2011, 23:12:02 »
SSL в принципе не способен кешироваться.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн f00ntic

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1152 : 06 Апреля 2011, 23:17:32 »
Это да, ну так ничего же не кешируется..

 :idiot2:
Всё кэшируется, не туда глядел.

С радио так и не пойму что происходит..
« Последнее редактирование: 06 Апреля 2011, 23:35:00 от f00ntic »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1153 : 07 Апреля 2011, 00:20:10 »
С радио так и не пойму что происходит..

Буферизацию увеличьте в vlc, не поможет - попробуйте задать фиксированную ветиличину Transport Unit-a на шлюзе, это tspmss действие в iptables.
Шаг за шагом можно достичь цели.

Оффлайн Druge

  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1154 : 07 Апреля 2011, 17:37:06 »
Цитата: AnrDaemon
никто не говорил, что у меня FF...
А каким браузером пользуетесь, попробую там?

 

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