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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #465 : 25 Августа 2009, 21:18:04 »
Повторяю ЕЩЕ РАЗ. Дешевые цены - не аргумент в выборе провайдера. Особенно - для хостинга сервера.
Ищите нормальную, вменяемую(!) техподдержку. ЭТО стоит любых денег.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн igorkz

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #466 : 25 Августа 2009, 21:25:45 »
Повторяю ЕЩЕ РАЗ. Дешевые цены - не аргумент в выборе провайдера. Особенно - для хостинга сервера.
Ищите нормальную, вменяемую(!) техподдержку. ЭТО стоит любых денег.

Слушай давай это я уже сам решать буду.Вот будет у меня толстый кошелек возмму себе сервер где хорошая служба поддержка. А пока у меня приличный по параметрам сервер,да и служба поддержки там нормальная.Они правы в том что тока предоставляют сервер и могут помочь по тех. вопросам.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #467 : 25 Августа 2009, 23:27:34 »
Это технический вопрос. В конце концов ДОСить будут ИХ канал.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн TrEK

  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
Re: HOWTO: Iptables для новичков
« Ответ #468 : 26 Августа 2009, 10:37:43 »
Повторяю ЕЩЕ РАЗ. Дешевые цены - не аргумент в выборе провайдера. Особенно - для хостинга сервера.
Ищите нормальную, вменяемую(!) техподдержку. ЭТО стоит любых денег.

Слушай давай это я уже сам решать буду.Вот будет у меня толстый кошелек возмму себе сервер где хорошая служба поддержка. А пока у меня приличный по параметрам сервер,да и служба поддержки там нормальная.Они правы в том что тока предоставляют сервер и могут помочь по тех. вопросам.

1. Выучи грамматику.
2. Если хочешь, чтоб помогли - не стоит язвить и огрызаться.

 :coolsmiley:

Оффлайн igorkz

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #469 : 26 Августа 2009, 17:53:37 »
Просто настроения совсем не было,сервер флудом засоряют = (
Подскажите пожалуйста как закрыть не нужные порты

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #470 : 26 Августа 2009, 18:06:04 »
Вообще уж0с какие тут дискуссии развели


Просто настроения совсем не было,сервер флудом засоряют = (
Подскажите пожалуйста как закрыть не нужные порты

Все очень просто:
Сперва разреши установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTПотом закрой все порты:
iptables -P INPUT DROPИ понемногу открывай порты
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
...

Предполагается что у тебя сейчас нет других правил iptables
Потести, попробуй подключатся, если все удачно - то ставишь применение правил на загрузку
если все оказалось очень плохо и ты сделал так что вообще к серверу не подключится - то тут спасет 'кнопка' перезагрузки сервера  или через тех поддрежку
Бери больше, кидай дальше

Оффлайн igorkz

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #471 : 26 Августа 2009, 18:37:41 »
Вообще уж0с какие тут дискуссии развели


Просто настроения совсем не было,сервер флудом засоряют = (
Подскажите пожалуйста как закрыть не нужные порты

Все очень просто:
Сперва разреши установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTПотом закрой все порты:
iptables -P INPUT DROPИ понемногу открывай порты
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
...

Предполагается что у тебя сейчас нет других правил iptables
Потести, попробуй подключатся, если все удачно - то ставишь применение правил на загрузку
если все оказалось очень плохо и ты сделал так что вообще к серверу не подключится - то тут спасет 'кнопка' перезагрузки сервера  или через тех поддрежку


Большое спасибо,щя буду тестить

Пользователь решил продолжить мысль 26 Августа 2009, 19:51:29:
Что-то не получается. = (
Открываю  29000 порт(игровой) командой iptables -A INPUT -p tcp --dport 29000 -j ACCEPT
В игре показывается пинг,но при входе в игру вылазиет ошибка
« Последнее редактирование: 26 Августа 2009, 19:51:29 от igorkz »

Оффлайн uoan

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #472 : 27 Августа 2009, 02:03:00 »
*** Четкий ответ ***
Помогати пожалуйста с iptablest...
... Ищите нормальную, вменяемую(!) техподдержку. ЭТО стоит любых денег...
Linuxом, а в частности Убунтой, я пользуюсь совсем недавно и в следствии чего у меня вопросов больше, чем на них есть ответов. И как же меня "радует", когда в поисковике  я нахожу интересующий меня вопрос (как закрыть порты и т.п.) и в очередной раз вижу на него долбоответ очередного оленя типа:  "меняй хостинг",  "меняй железо",  "меняй руки", "забудь". Но честно сказать, больше улыбает, когда встревает олень №2 и начинает сексуальные игры с оленем №1, утверждая что лучше менять: провайдера, программы, ноги, а кто здесь? Читая бессмысленные переписки оленьей стаи я забываю что искал и меня начинают интересовать другие вопросы: "Неужели число Сообщений: 24 важнее сути поставленного вопроса?", "А знакома им фраза Промолчишь – за умного сойдешь?", "А бывает ли у них секс в реальной жизни?", "А что такое олень?". Блуждая в собственных размышлениях я вспоминаю о причине появления моей личности в данном раздели только наткнувшись на
... Все очень просто:
Сперва разреши установленные соединения...
и только тогда я понимаю, что читаю тех.форум, а не пособие по разведению оленей.

terrible_user, к вам вопрос. Как узнать, где находится конфиг. файл iptables? Как запускать/останавливать эту хрень?
Я юзал это чудо (firewall) через WebMin, файл нашел, но он немного отличается от файлов-примеров или от файла, скомпилированный firewall builder. Немного читал http://www.opennet.ru/docs/RUS/iptables/ Уже запутался :D
Из личного достижения, через WebMin закрыл все порты, открыл только: 10000, 80, 22, 21. Вроде все работает, но соединение (первый конект) с FTP в разы стало дольше (
Сделал типа
-A INPUT -p tcp --dport 21 -j ACCEPT
...
-A INPUT DROP
Если сделать по умолчанию -P INPUT DROP, то если не изменяет память, перестает работать ВСЕ (ssh, ftp и т.д.).
Много видел примеров цепочек, бери не хочу, но не знаю где и как их применить(

_________________________________________________________________________________
... Сам боюсь лезть так как могу потерять доступ к нему...
Лично я тренируюсь на virtualbox, там довольно много возможностей...

Оффлайн terrible_user

  • Активист
  • *
  • Сообщений: 438
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #473 : 27 Августа 2009, 12:22:31 »
terrible_user, к вам вопрос. Как узнать, где находится конфиг. файл iptables? Как запускать/останавливать эту хрень?
Я юзал это чудо (firewall) через WebMin, файл нашел, но он немного отличается от файлов-примеров или от файла, скомпилированный firewall builder. Немного читал http://www.opennet.ru/docs/RUS/iptables/ Уже запутался :D
Из личного достижения, через WebMin закрыл все порты, открыл только: 10000, 80, 22, 21. Вроде все работает, но соединение (первый конект) с FTP в разы стало дольше (
Сделал типа
-A INPUT -p tcp --dport 21 -j ACCEPT
...
-A INPUT DROP
Если сделать по умолчанию -P INPUT DROP, то если не изменяет память, перестает работать ВСЕ (ssh, ftp и т.д.).
Много видел примеров цепочек, бери не хочу, но не знаю где и как их применить(

После настройки (выполняя команды типа iptables -A ..... ) , ты можешь либо сохранить правила iptables-save либо записать последовательность команд в файл  т.е. скрипт
соответственно как ты его обзовешь, куда сохранишь - вот это думаю и можно будет назвать конфигом
(поиск сохранение настроек iptables)


Цитировать
Как запускать/останавливать эту хрень?
Не углубляясь в детали : эта хрень запускается автоматически -  'с чистого листа' -  поэтому нужно запускать сохраненные настройки  каждый раз при перезагрузки компа
(поиск восстановление настроек iptables)


WebMin - если ты настраиваешь через него - я тут не советчик

А какой режим работы FTP у тебя по умолчанию ? 
попробуй перевести его в пассивный и разреши icmp

------------------------------

2 igorkz
Цитировать
Пользователь решил продолжить мысль 26 Августа 2009, 19:51:29:Что-то не получается. = (
Открываю  29000 порт(игровой) командой iptables -A INPUT -p tcp --dport 29000 -j ACCEPT
В игре показывается пинг,но при входе в игру вылазиет ошибка

Значит не все открыл - может это порт только на аутентификацию клиента - вариантов не мерено


Бери больше, кидай дальше

Оффлайн igorkz

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #474 : 27 Августа 2009, 18:03:38 »
Раньше у меня дома стоял сервер и через firestarter были закрыты все порты кроме: 80,29000 и 9999

Пользователь решил продолжить мысль 27 Августа 2009, 16:23:24:
Там вообще нужны другие порты но они для localhosta
Он же не перекрывается порты на 127.0.01 ?

Пользователь решил продолжить мысль 27 Августа 2009, 22:53:55:
Как открыть порт определеному ип ?
Хочу открыть все порты для 127.0.0.1
« Последнее редактирование: 27 Августа 2009, 22:53:55 от igorkz »

Оффлайн tomkad

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #475 : 30 Августа 2009, 07:21:04 »
Здравствуйте. Я новичок в Ubuntu.
поставил ubuntu 9.04.
установил 2-ю сетевую карту. Два провайдера.
установил pptpd и dnsmasq.
все работает соединяюсь по vpn с клиента xp, интернет есть одно но скорость намного ниже чем на роутере с убунтой! в оригинале 8мбит на клиенте всего 1 мбит!
вопрос что режет скорость?
правила прописывал следующие:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 128

Спасибо за внимание.

Оффлайн admin4ek

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #476 : 30 Августа 2009, 10:52:02 »
Во первых если ты собрался быть "провайдером" это точно не скрипт айпитаблес ))) Тут надо все красиво по цепочкам, че-то разрешить а остальное запретить ))))
Вот к примеру че я намудрил, но я не гарантирую что здесь все верно ))) я написал сам как понял
#!/bin/bash
IPT="/sbin/iptables"
######## INTERFACES #########
DMZ_IFACE="eth0"     #DMZ zone
CLIENT_IFACE="eth2"  #Client interfaces
CLIENT="ppp+"        #CLIENTS
INET="ppp999"
######## IP ADDRESS #########
DMZ_IP="192.168.0.99"
#EXT_IP="$(/sbin/ifconfig ppp999 | awk '/inet/ { print $2 } ' | sed -e s/addr://)"
CLIENT_IP="192.168.5.1"
############################################################################################
# Начало скрипта
start_fw()
    {
# включаем пересылку пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# стандартные действия
$IPT -P INPUT DROP 
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# удаляем все имеющиеся правила
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle

######################################
# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done

# Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done

# Don't send Redirect Messages
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done

# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done

# Drop Spoofed Packets
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
##########################################################



# создаем свои цепочки
# отбрасываем tcp с неправильными флагами
$IPT -N bad_tcp_packets
# tcp, прошедшие основную проверку
$IPT -N allowed
# все пакеты соотв. протоколов
$IPT -N tcp_packets
$IPT -N udp_packets
$IPT -N icmp_packets

# безусловно разрешаем соединения по локальному интерфейсу (loopback, 127.0.0.1)
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# сюда пойдут все tcp-пакеты, и будут отброшены имеющие статус NEW, но не имеющие флагов SYN,ACK
# предохраняет от определенных типов атак, подробности в приложении B4 к Iptables Tutorial
#-$IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP

# принимаем все пакеты, относящиеся к уже установленным соединениям
    $IPT -A allowed -p TCP --syn -j ACCEPT
    $IPT -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

# а все остальные из этой цепочки сбрасываем
    $IPT -A allowed -j DROP

# открываем порты, т.к. по умолчанию мы закрыли всё
# открываем 21-й tcp (File Transfer Protocol [Control])

##FTP
#    $IPT -A tcp_packets -p TCP  --dport 21 -j ACCEPT
#    $IPT -A udp_packets -p UDP  --dport 21 -j ACCEPT
#    $IPT -A tcp_packets -p TCP  --dport 20 -j ACCEPT
#    $IPT -A udp_packets -p UDP  --dport 20 -j ACCEPT
##SSH
    #$IPT -A tcp_packets -p TCP -i $INET -s 0/0 --dport 22 -j allowed
    $IPT -A tcp_packets -p TCP -i $DMZ_IFACE -s 0/0 --dport 22 -j allowed

#APACHE-HTTP
    $IPT -A tcp_packets -p TCP -i $DMZ_IFACE -s 0/0 --dport 80 -j allowed
    #$IPT -A tcp_packets -p TCP -i $CLIENT -s 0/0 --dport 80 -j ACCEPT
#pptp
    $IPT -A tcp_packets -p TCP -i $DMZ_IFACE -s 0/0 --dport 1723 -j ACCEPT
    $IPT -A tcp_packets -p UDP -i $DMZ_IFACE -s 0/0 --dport 1723 -j ACCEPT
    $IPT -A tcp_packets -p TCP -i $DMZ_IFACE -s 0/0 --dport 47 -j ACCEPT
    $IPT -A tcp_packets -p UDP -i $DMZ_IFACE -s 0/0 --dport 47 -j ACCEPT
#DNS
    $IPT -A tcp_packets -p TCP -i $INET -s 0/0  --dport 53 -j ACCEPT
    $IPT -A udp_packets -p UDP -i $INET -s 0/0  --dport 53 -j ACCEPT
    $IPT -A udp_packets -p UDP -i $DMZ_IFACE -s 0/0  --dport 53 -j ACCEPT
    $IPT -A udp_packets -p UDP -i $CLIENT -s 0/0 --dport 53 -j ACCEPT
    $IPT -A udp_packets -p UDP -i $CLIENT_IFACE -s 0/0 --dport 53 -j ACCEPT
#DoS Attack Spoof
    $IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
    $IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# и принимаем входящие с 53-го udp (Domain Name Server)
    $IPT -A udp_packets -p UDP -s 0/0 --sport 53 -j ACCEPT
# настал черед ICMP
# разрешаем необходимые типы
    $IPT -A icmp_packets -p ICMP -i $DMZ_IFACE -s 0/0 --icmp-type 3 -j ACCEPT # Dest unreachable
    $IPT -A icmp_packets -p ICMP -i $DMZ_IFACE -s 0/0 --icmp-type 11 -j ACCEPT # Time exceeded
    $IPT -A icmp_packets -p ICMP -i $CLIENT -s 0/0 --icmp-type 3 -j ACCEPT # Dest unreachable
    $IPT -A icmp_packets -p ICMP -i $CLIENT -s 0/0 --icmp-type 11 -j ACCEPT # Time exceeded
    $IPT -A icmp_packets -p ICMP -i $INET -s 0/0 --icmp-type 3 -j ACCEPT # Dest unreachable
    $IPT -A icmp_packets -p ICMP -i $INET -s 0/0 --icmp-type 11 -j ACCEPT # Time exceeded
    $IPT -A icmp_packets -p ICMP -i $CLIENT_IFACE -s 0/0 --icmp-type 3 -j ACCEPT # Dest unreachable
    $IPT -A icmp_packets -p ICMP -i $CLIENT_IFACE -s 0/0 --icmp-type 11 -j ACCEPT # Time exceeded

# и отбрасываем пинг (в принципе, он и так отбрасывается действием
# по умолчанию, но это правило для возможного редактирования)
    $IPT -A icmp_packets -p ICMP -i $INET -s 0/0 --icmp-type 8 -j ACCEPT # Ping
    $IPT -A icmp_packets -p ICMP -i $DMZ_IFACE -s 0/0 --icmp-type 8 -j ACCEPT # Ping
    $IPT -A icmp_packets -p ICMP -i $CLIENT -s 0/0 --icmp-type 8 -j ACCEPT # Ping
     $IPT -A icmp_packets -p ICMP -i $CLIENT_IFACE -s 0/0 --icmp-type 8 -j ACCEPT # Ping
# следующим правилом можно заменить предыдущее, тогда при пинговании
# нашей машины вместо сообщения о таймауте будет приходить сообщение
# Host unreachable
    #$IPT -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j REJECT --reject-with icmp-host-unreachable

# разводим пакеты по соотв. цепочкам
# tcp уходит на доп. проверку
    $IPT -A INPUT -p tcp -j bad_tcp_packets
# все пакеты, относящиеся к уже установленным соединениям (для tcp
# из-за отдельной цепочки пришлось это правило еще раз указать выше)

#Разрешаем форвардинг
    $IPT -A FORWARD -i $DMZ_IFACE -o $INET -j ACCEPT
    $IPT -A FORWARD -i $CLIENT -o $INET -j ACCEPT

    $IPT -A INPUT -p ALL -i $DMZ_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -p TCP -i $DMZ_IFACE -j tcp_packets
    $IPT -A INPUT -p UDP -i $DMZ_IFACE -j udp_packets
    $IPT -A INPUT -p ICMP -i $DMZ_IFACE -j icmp_packets
    $IPT -A FORWARD -p ALL -i $INET -o $DMZ_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT



    $IPT -A INPUT -p ALL -i $CLIENT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -p TCP -i $CLIENT -j tcp_packets
    $IPT -A INPUT -p UDP -i $CLIENT -j udp_packets
    $IPT -A INPUT -p ICMP -i $CLIENT -j icmp_packets

    $IPT -A INPUT -p ALL -i $CLIENT_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -p TCP -i $CLIENT_IFACE -j tcp_packets
    $IPT -A INPUT -p UDP -i $CLIENT_IFACE -j udp_packets
    $IPT -A INPUT -p ICMP -i $CLIENT_IFACE -j icmp_packets
    $IPT -A FORWARD -p ALL -i $CLIENT_IFACE -o $CLIENT -m state --state ESTABLISHED,RELATED -j ACCEPT

    $IPT -A INPUT -p ALL -i $INET -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A INPUT -p TCP -i $INET -j tcp_packets
    $IPT -A INPUT -p UDP -i $INET -j udp_packets
    $IPT -A INPUT -p ICMP -i $INET -j icmp_packets
    $IPT -A FORWARD -p ALL -i $INET -o $CLIENT -m state --state ESTABLISHED,RELATED -j ACCEPT



    $IPT -A FORWARD -p TCP -i $INET -o $CLIENT -j tcp_packets
    $IPT -A FORWARD -p UDP -i $INET -o $CLIENT -j udp_packets       
   
    $IPT -A FORWARD -p TCP -i $INET -o $DMZ_IFACE -j tcp_packets
    $IPT -A FORWARD -p UDP -i $INET -o $DMZ_IFACE -j udp_packets   

# МАСКАРАДИНГ КЛИЕНТОВ

    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.160.0/24 -d 0.0.0.0/0 -o $INET # Подсеть клиентов на VPN
    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.110 -d 0.0.0.0/0 -o $INET #Мой комп
    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.150 -d 0.0.0.0/0 -o $INET # Алена
    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.136 -d 0.0.0.0/0 -o $INET # DEN
    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.97 -d 0.0.0.0/0 -o $INET #WEB SERV
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1
#    $IPT -t nat -A POSTROUTING -j MASQUERADE -s 192.168.1. -d 0.0.0.0/0 -o eth1




#Проброс портов

#torrent
#$IPT -t nat -A PREROUTING -p tcp -d EXT_IP --dport 49491 -j DNAT --to-destination 192.168.1.7:49491
#$IPT -A FORWARD -i eth1 -d 192.168.1.7 -p tcp --dport 49491 -j ACCEPT


############################## SASHA WEB SERVER #######################################

#$IPT -t nat -I PREROUTING -d $EXT_IP -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.98:80
#$IPT -t nat -I POSTROUTING -d 192.168.0.98 -p tcp --dport 80 -j SNAT --to-source $INT_IP
#$IPT -t filter -I FORWARD -d 192.168.0.98 -p tcp --dport 8080 -j ACCEPT

########################################################################################





}
         
         
         
#############################Скрипт################################
case "$1" in start) echo -n "ЗАПУСК: iptables"
    start_fw
    echo "."
    ;;
stop) echo -n "ОСТАНОВКА : iptables"
    iptables -F
    iptables -X
    echo "."
    ;;
save) echo -n "Сохранение : iptables"
    iptables-save > /etc/rules-save
    echo "."
    ;;
restart) echo -n "рестарт : iptables"
    iptables -F
    iptables -X
    start_fw
        echo "."
    ;;
reload|force-reload) echo -n "перезагрузка конфигурации firewall: iptables"
    echo "."
    ;;
    *) echo "Usage: /etc/init.d/rc.iptables
start|stop|restart|reload|force-reload"
    exit 1
    ;;
esac
exit 0

Оффлайн tomkad

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #477 : 30 Августа 2009, 17:34:49 »
парни помогите что со скоростью то? поставил Ubuntu 9.04 десктоп настроил впн сервер подключаюсь к нему с xp интернет есть но скорость не такая как на убунте раз в 5 меньше? помогите

Оффлайн Undel

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #478 : 16 Сентября 2009, 14:09:19 »
Помогите настроить IPTables для работы PPTPD. Сейчас использую вот такой скрипт:

#!/bin/sh
# Конфигурация внешнего  интерфейса
INET_IP="11.22.33.44"
INET_IFACE="eth0"
INET_BROADCAST="255.255.255.0"
#
# Конфигурация внутреннего  интерфейса
LAN_IP="192.168.100.253"
LAN_IP_RANGE="192.168.100.0/24"
LAN_IFACE="eth1"
#
# Конфигурация localhost
LO_IFACE="lo"
LO_IP="127.0.0.1"
#
IPT="/sbin/iptables"
#
# Номера непривилегированных  портов
NONPRIPORTS="1024:65535"
#
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ip_gre
/sbin/modprobe ip_nat_pptp
/sbin/modprobe ip_conntrack_pptp
#
# форвардинг
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/sysctl -w net.ipv4.ip_forward=1
#
# Сбрасываем правила и удаляем цепочки.
$IPT -F
$IPT -X
# Политика по умолчанию.
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD ACCEPT
#Logging
$IPT -A INPUT -p tcp -j ULOG
$IPT -A FORWARD -p tcp -j ULOG
$IPT -A INPUT -p 47 -j ULOG
$IPT -A FORWARD -p 47 -j ULOG
#
$IPT -A INPUT -i $LO_IFACE -j ACCEPT
$IPT -A OUTPUT -o $LO_IFACE -j ACCEPT
$IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i $LO_IFACE -j DROP
# Отбрасываем все неидентифицированные пакеты
$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
#
$IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Правила для VPN-PPTPD
$IPT -A FORWARD -p 47 -s 192.168.100.0/24 -j ACCEPT
$IPT -I INPUT -p tcp --dport 1723 -j ACCEPT
$IPT -I INPUT -p 47 -j ACCEPT
$IPT -I OUTPUT -p 47 -j ACCEPT
$IPT -A INPUT -i ppp0 -j ACCEPT
$IPT -A OUTPUT -o ppp0 -j ACCEPT

# Правило для внутренней сети:
$IPT -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -d $LAN_IP_RANGE -j ACCEPT
$IPT -A INPUT -p tcp -i $LAN_IFACE --dport 3128 -j ACCEPT
# Правила защиты от распространенных атак:
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A INPUT -p UDP -i $INET_IFACE --dport 138 -j DROP
$IPT -A INPUT -p UDP -i INET_IFACE --dport 113 -j REJECT
$IPT -A INPUT -p UDP -i INET_IFACE --sport 67 --dport 68 -j ACCEPT
$IPT -A INPUT -p UDP -j RETURN
$IPT -A OUTPUT -p UDP -o $INET_IFACE -j ACCEPT
$IPT -A INPUT --fragment -p ICMP -j DROP
$IPT -A OUTPUT --fragment -p ICMP -j DROP
# Разрешаем ICMP-соединение.
$IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
$IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp -m icmp -i $LAN_IFACE -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $LAN_IFACE -j ACCEPT
$IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-request -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-reply -j ACCEPT
# Разрешаем передачу пакета «некорректный параметр» - используется, если в заголовке пакета содержится недопустимая запись или CRC пакета не совпадает с указанной
$IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT
# Разрешаем DNS.
$IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $NONPRIPORTS -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $NONPRIPORTS -j ACCEPT
$IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $NONPRIPORTS --sport 53 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT
# Разрешаем AUTH-запросы на удаленные сервера, на свой - запрещаем.
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $NONPRIPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $NONPRIPORTS --sport 113 -j ACCEPT ! --syn
$IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP
# Открываем необходимые нам порты:
# FTP (21)
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $NONPRIPORTS -j ACCEPT
# SMTP (25)
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $NONPRIPORTS -j ACCEPT
# POP3 (110)
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $NONPRIPORTS -j ACCEPT
# HTTP/HTTPS клиент (80, 443)
$IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $NONPRIPORTS -j ACCEPT --dports 80,443
#ICQ (5190)
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 5190 --sport $NONPRIPORTS -j ACCEPT
#QIP-аккаунт (5222)
$IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 5222 --sport $NONPRIPORTS -j ACCEPT
#NAT:  
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP

Удаленному клиенту (Windows XP) не удается подключиться(ошибка 800).
Подскажите, как же надо написать правила, чтобы vpn-трафик проходил через фаервол?
« Последнее редактирование: 16 Сентября 2009, 14:12:32 от Undel »

mithrusc

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #479 : 21 Сентября 2009, 15:55:47 »
Цитировать
Подскажите, как же надо написать правила, чтобы vpn-трафик проходил через фаервол?
модуль ты подгружаешь уже, еще нужно разрешить протокол GRE.
« Последнее редактирование: 21 Сентября 2009, 15:57:39 от mithrusc »

 

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