Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

iptables не пускает putty

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Ср Сен 07 2005 18:28    Заголовок сообщения: iptables не пускает putty Ответить с цитатой

Я не могу зайти через ssh-putty терминал при работающем iptables
ip моего компа 192.168.100.58.
Я создаю правило
iptables -A OUTPUT -p all -s 192.168.100.58 -j ACCEPT
iptables -A INPUT -p all -s 192.168.100.58 -j ACCEPT
как я понял, я разрешаю все входящие и исходящие пакеты для
192.168.100.58
но всёравно не могу подрубиться putty
результат работы iptables -L
Код:

iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Lokkit-0-50-INPUT  all  --  anywhere             anywhere
ACCEPT     all  --  192.168.100.58       anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Lokkit-0-50-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  192.168.100.58       anywhere

Chain RH-Lokkit-0-50-INPUT (2 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere           udp spts:bootps:bootpc dpts:bootps:bootpc
ACCEPT     udp  --  anywhere             anywhere           udp spts:bootps:bootpc dpts:bootps:bootpc
ACCEPT     all  --  anywhere             anywhere
REJECT     tcp  --  anywhere             anywhere           tcp dpts:0:1023 flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpt:nfs flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere           udp dpts:0:1023 reject-with icmp-port-unreachable
REJECT     udp  --  anywhere             anywhere           udp dpt:nfs reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpts:x11:6009 flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT     tcp  --  anywhere             anywhere           tcp dpt:xfs flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable

в чём траболы?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Сен 07 2005 18:38    Заголовок сообщения: Ответить с цитатой

Правило RH-Lokkit-0-50 не совсем ясно.

Покажите как вы его создаете. Через iptables -L тяжело понять чего вы там навертели.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Ср Сен 07 2005 19:13    Заголовок сообщения: Ответить с цитатой

Это шло с системой по дефоулту.
Кстати при перезагрузке мои правила исчезают.
Как я понял, конфигурация хранится в rc.firewall
А где этот файл?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Сен 07 2005 19:32    Заголовок сообщения: Ответить с цитатой

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

Для начала глянь в /etc/sysconfig/iptables-save или что-то вроде этого.

Если заглянешь в скрипт /etc/rc.d/init.d/iptables, то будешь знать точно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Ср Сен 07 2005 22:21    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
Версию дистрибутива в студию.

http://forum.citforum.ru/viewtopic.php?p=134345&highlight=#134345
Smile
кстати, если я останавливаю службу iptables, потом
вхожу putty, из Putty запускаю iptables, связь не обрывается.
Putty продолжает работать. почему? он что-ли правило создаёт временное?

/etc/sysconfig/iptables

Код:

# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
#       firewall; such entries will *not* be listed here.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]
-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth1 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --syn -j REJECT
COMMIT

блин, билеберда какая-то
точо могу сказать, что eth1 у меня как пару недель нет.

как я понял мне свои правила здесь прописывать надо, так?
как мне разрешить работать putty терминалу?
если не
iptables -A OUTPUT -p all -s 192.168.100.58 -j ACCEPT
iptables -A INPUT -p all -s 192.168.100.58 -j ACCEPT
правилами, то какими?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Andrew Grekhov



Зарегистрирован: 29.06.2005
Сообщения: 200

СообщениеДобавлено: Чт Сен 08 2005 05:22    Заголовок сообщения: Ответить с цитатой

На http://opennet.ru
в одной из статей было сказано,
что сначала удаляете все правила
а потом уже прописываете свои!
http://knoppix.ru/adv110504.shtml

$IPTABLES -F
$IPTABLES -X
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DmitriyS



Зарегистрирован: 19.06.2002
Сообщения: 381
Откуда: Е-бург

СообщениеДобавлено: Чт Сен 08 2005 07:10    Заголовок сообщения: Ответить с цитатой

iptables -A OUTPUT -p all -s 192.168.100.58 -j ACCEPT
iptables -A INPUT -p all -s 192.168.100.58 -j ACCEPT

в первом правиле ошибка, надо не -s, а -d писать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Чт Сен 08 2005 07:21    Заголовок сообщения: Ответить с цитатой

Ну почему бы всё таки не почитать доки по iptables ??
Это очень важная часть ОС!

Лучше потратить пол дня на изучение документации, но разобраться хотя бы в основах.. чем гадать, пробуя то одно правило , то другое...

Если не хочется разбираться, то setup тебе в помощь.. выбираешь Firewall Configuration .. прописываешь порты .. Работаешь..
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Чт Сен 08 2005 07:55    Заголовок сообщения: Ответить с цитатой

Andrew Grekhov - спасибо за ссылки.
если ни чего не получится так и буду делать. во только страшновато всё стирать. у меня комп в локалке.

DmitriyS - респект! логично.и как я не догадался s(source), d(sestination).счас попробую

Sol - да я уже месяц читаю, вот если бы правила рисовать блок схемами... а на практике столько новых подробностей, пока пару раз "носом не тыкнут" не получится . в общем всё в процессе Smile а разобраться я хочу сам, лично Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Чт Сен 08 2005 12:24    Заголовок сообщения: Ответить с цитатой

заработало, добавил два правила
Код:

...
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Lokkit-0-50-INPUT - [0:0]

-A OUTPUT -p all -d 192.168.100.58 -j ACCEPT
-A INPUT   -p all -s 192.168.100.58 -j ACCEPT

-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth1 -j ACCEPT
...

такой вопрос. мне нужно пустить чисто putty не с фикстированного IP
а с любого в диапазоне 192.168.100.1-255
если записать
-A OUTPUT -p all -j ACCEPT
то по моему это всёравно, что выключтить файрвол ввобще, следовательно нужно ограничивать по порту
службу ssh - iptables не знает по имени
в неастройках Putty указан 22 порт, но файрвол в винде, показывает,
что связь ведётся то по 2477, то 3994 ... портам, при каждом сеансе порт новый. на сколько я знаю, по идее, по 22-му порту прога договаривается через какой из не превелегированных портов она будет общаться.
как мне в таком случае правило составить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Чт Сен 08 2005 13:29    Заголовок сообщения: Ответить с цитатой

-A INPUT -s 192.168.100.0/255.255.255.0 -i eth0 -j RH-Lokkit-0-50-INPUT
все пакеты из подсети 192.168.100.0/24 пришедшие на eth0 отправляешь в цепочку RH-Lokkit-0-50-INPUT

Вот в этой цепочке ты и добавляй свои правила, т.е например открываешь определённые порты.

#открывваешь ssh
-A RH-Lokkit-0-50-INPUT -p all --dport 22 -j ACCEPT

#открываешь фтп
-A RH-Lokkit-0-50-INPUT -p all --dport 20:21 -j ACCEPT

#закрываешь прокси
-A RH-Lokkit-0-50-INPUT -p all --dport 8080 -j REJECT --reject-with icmp-port-unreachable

и т.д.
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Пн Сен 12 2005 12:25    Заголовок сообщения: Опять сложности Ответить с цитатой

Опять сложности.
Почитав документацию, я выяснил следующее:
сама программа должна быть расположенна в /sbin/iptables
настроки(правила) хранятся в /ect/sysconfig/iptables
скрипт, загружающий /etc/rc.d/init.d/iptables

во всех статьях говорят о rc.firewall. Каким местом он приходится к iptables? у меня в системе его нет!

в файле настроек я не могу писать такое:
EXT_INTERFACE = "eth0"
без этого очень неудобно. выходит нужно выносить в отдельный файл сценария.
как сделать так, чтобы после загрузки iptables вызывался мой файл со скриптом?
вообще, где прописанно какие службы зпускаются при загрузке системы? мне половину повырубать надо Smile

Зачем пишут
IPTABLES="/sbin/iptables" ?
когда iptables нормально вызывается независимо в каком каталоге вы бы ни находились. на всякий случай?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Пн Сен 12 2005 13:22    Заголовок сообщения: Ответить с цитатой

Цитата:
во всех статьях говорят о rc.firewall. Каким местом он приходится к iptables? у меня в системе его нет!


Этот файл по моему используется в BSD системах.. (могу ошибаться)


Поскольку править файл /etc/sysconfig/iptables не очень удобно, с точки зрения комментирования, то обычно пишут свой bash-скрипт, в котором выполняют сброс всех правил, а потом добавление нужных.
В скрипте можно всё прокомментировать, особенно если правил много.

Для того что бы этот скрипт выполнялся после перезагрузки системы автоматом - добавляют запуск скрипта в /etc/rc.d/rc.local

Этот же (написаный тобой) скрипт ты можешь использовать для перезагрузки правил, в случае их изменения..

Обрати внимание, что не рекомендуется править файл /etc/rc.d/init.d/iptables , так как при установке новой версии Iptables он заменится на новый.

Цитата:
Зачем пишут
IPTABLES="/sbin/iptables" ?


ну потому что не обязательно путь к /sbin может быть прописан в профиле..
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Пн Сен 12 2005 13:27    Заголовок сообщения: Ответить с цитатой

по поводу старта сервисов
man chkconfig

или запускаешь программу setup в ней выбираешь System services
Сервисы отмеченные звёздочкой стартуют при загрузке.
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Пн Сен 12 2005 22:37    Заголовок сообщения: Ответить с цитатой

господа, написал свой скрипт, для настройки iptables
так от него, Линкус исчезает из сети. вроде всё правильно Sad
гляньте что здесь ни так Sad
Код:
#!/bin/sh
######################################################################
#                                                                    #
#                                CONST                               #
#                                                                    #
######################################################################
EXT_IFS_0="eth0"
LOOPBACK_IFS="lo"

MY_IP="my.ip.address"
ANYWHERE="0/0"                   # anywhere ip address
MY_ISP="my.isp.address.range"    # range address of provider

#LOOPBACK ="127.0.0.0/8"          # сдесь ругается
CLASS_A="10.0.0.0/8"             # class A for inside use
CLASS_B="172.16.0.0/2"           # class B for inside use
CLASS_C="192.168.0.0/16"         # class C for inside use
CLASS_D_MULTICAST="224.0.0.0/4"  # class D for group(multicast)
CLASS_E_REZERVED="240.0.0.0/5"   # class E - rezerved address
BROADCAST_SCR="0.0.0.0"          # broadcasts addresses
BROADCAST_DEST="255.255.255.255" #

PRIV_PORTS="0:1023"
UNPRIV_PORTS="1024:65535"
####################################################################

# delete exsist rule
iptables -F
iptables -X

# default  politics
iptables -P INPUT   -j DROP
iptables -P OUTPUT  -j DROP
iptables -P FORWARD -j DROP

###################################################################
# my new chain
#
# 1              INPUT             OUTPUT
#                  |                  |
# 2         invaild_packets    invaild_packets
#              /   |   \           /  |  \
#             /    |    \         /   |   \
# 3         TCP   UDP  ICMP     TCP  UDP ICMP
#             \    |    /         \   |   /
#              \   |   /           \  |  /
# 4             allowed            allowed
#                      \          /
#                       \        /
# 5                     no rules
#                           |
# 6                  delete ALL other
####################################################################
#
#
iptables -N Input_invaild_tcp_chain  # for invaild packets
iptables -N Input_tcp_chain          #
iptables -N Input_udp_chain          #
iptables -N Input_icmp_chain         #

iptables -N Output_invaild_tcp_chain # for invaild packets
iptables -N Output_tcp_chain         #
iptables -N Output_udp_chain         #
iptables -N Output_icmp_chain        #

iptables -N Allowed_chain            # packets by  exsist connection
iptables -N No_rule_chain            # for all no rules packets - DROP

###################################################################
# redirect packets by special chan
# 1-2   from INPUT/OUTPUT to INVAILD
iptables -A INPUT  -j Input_invaild_tcp_chain
iptables -A OUTPUT -j Output_invaild_tcp_chain

# 2-3   from INVAILD to cpecial
iptables -A Input_invaild_tcp_chain   -p TCP  -j Input_tcp_chain
iptables -A Input_invaild_tcp_chain   -p UDP  -j Input_udp_chain
iptables -A Input_invaild_tcp_chain   -p ICMP -j Input_icmp_chain

iptables -A Output_invaild_tcp_chain  -p TCP  -j Output_tcp_chain
iptables -A Output_invaild_tcp_chain  -p UDP  -j Output_udp_chain
iptables -A Output_invaild_tcp_chain  -p ICMP -j Output_icmp_chain

# 3-4 redirect packet to  allowe
iptables -A Input_tcp_chain           -i Allowed_chain
iptables -A Input_udp_chain           -i Allowed_chain
iptables -A Input_icmp_chain          -i Allowed_chain

iptables -A Output_tcp_chain          -i Allowed_chain
iptables -A Output_udp_chain          -i Allowed_chain
iptables -A Output_icmp_chain         -i Allowed_chain

# 4-5 redirect allowed packets
iptables -A Allowed_chain             -i No_rule_chain
# 5-6 no rules
iptables -A No_rule_chain             -i DROP

#########################################################
#                                                       #
#                      RULES                            #
#                                                       #
#########################################################

#         loopback
iptables -A INPUT  -i $LOOPBACK_IFS -j ACCEPT
iptables -A OUTPUT -i $LOOPBACK_IFS -j ACCEPT

#         bad packets
#    bad flags
iptables -A Input_invaild_tcp_chain  -p TCP  \
         --tcp-flag SYN,ACK SYN,ACK \
         -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A Output_invaild_tcp_chain -p TCP !--syn \
         -m state --state NEW -j LOG --log-prefix "New not syn:"
iptables -A Output_invaild_tcp_chain -p TCP !--syn \
         -m state --state NEW -j DROP

#    bad address
#         end bad packets

#         allowed packets (for exsist connections)
iptables -A Allowed_chain   -p TCP --syn -j ACCEPT
iptables -A Allowed_chain   -p TCP -m state \
         --state ESTABLISHED, RELATED -j ACCEPT

#         SSH
iptables -A Input_tcp_chain -m TCP --dport 22    -j ACCEPT

#         FTP server
iptables -A Input_tcp_chain -m TCP --dport 20:21 -j ACCEPT

#         ICMP
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 0  -j ACCEPT
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 3  -j ACCEPT
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 4  -j ACCEPT
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 8  -j ACCEPT
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 11 -j ACCEPT
iptables -A  Input_icmp_chain   -s $ANYWHERE --icmp-type 12 -j ACCEPT

iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 0  -j ACCEPT
iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 3  -j ACCEPT
iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 4  -j ACCEPT
iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 8  -j ACCEPT
iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 11 -j ACCEPT
iptables -A  Output_icmp_chain  -d $ANYWHERE --icmp-type 12 -j ACCEPT

я там переменных понавставлял.
собираюсь модернизировать в будущем. это пока минимум правил
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Вт Сен 13 2005 06:30    Заголовок сообщения: Ответить с цитатой

ну и правильно, что исчезает..
У тебя ведь нигде не написано разрешать приём пакетов откуда нибудь, кроме как с loopback .. (да и то неверно)
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Вт Сен 13 2005 08:21    Заголовок сообщения: Ответить с цитатой

как нигде не написанно? а это что?
схемка показывает структуру цепочек, как они связанны между собой
в каждой цепочке можно втакать правила.
Код:

#         allowed packets (for exsist connections)
iptables -A Allowed_chain   -p TCP --syn -j ACCEPT
iptables -A Allowed_chain   -p TCP -m state \
         --state ESTABLISHED, RELATED -j ACCEPT

#         SSH
iptables -A Input_tcp_chain -m TCP --dport 22    -j ACCEPT


а с обратной петлёй правильно наверное так
Код:

#         loopback
iptables -A INPUT  -i $LOOPBACK_IFS -j ACCEPT
#iptables -A OUTPUT -i $LOOPBACK_IFS -j ACCEPT - ошибка
iptables -A OUTPUT -o $LOOPBACK_IFS -j ACCEPT

Я вот подумал, может ему не нравится то, что я в самом начале раскидываю по цепочкам, а потом правила.
Вообще так можно группировать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sol



Зарегистрирован: 05.12.2003
Сообщения: 427
Откуда: Томск

СообщениеДобавлено: Вт Сен 13 2005 09:24    Заголовок сообщения: Ответить с цитатой

ну так ты ещё не забывай про порядок правил..
Первое же действие Accept, Drop, Reject приводит к прекращению всех остальных проверок для пакета..

Для Output - для начала, лучше всё поубивать и сделать по умолчанию действие Accept..
Т.е. разрешаешь всем пакетам твоей машины уходить.. (предполагая, что с исходящим трафиком всё в порядке)..

И разбираться только с входящим трафиком..
Выведи правила пронумерованными, что бы увидеть порядок проверки правил:
iptables -L --line-numbers
_________________
In My Humble Opinion
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Вт Сен 13 2005 12:16    Заголовок сообщения: Ответить с цитатой

Цитата:
iptables -A Input_tcp_chain -i Allowed_chain
iptables -A Input_udp_chain -i Allowed_chain
iptables -A Input_icmp_chain -i Allowed_chain

iptables -A Output_tcp_chain -i Allowed_chain
iptables -A Output_udp_chain -i Allowed_chain
iptables -A Output_icmp_chain -i Allowed_chain


-i с -j не попутали часом?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Вт Сен 13 2005 13:43    Заголовок сообщения: Ответить с цитатой

and3008 писал(а):
-i с -j не попутали часом?

попутал Smile и не только это
В общем я понял одно. время от времени, надо поднимать свой зад, и немного расслабляться, отдыхать. иначе начинаешь туго соображать.
Притащил я монитор к компу с Linux, подремил всё, и стал по одной строчке добавлять и смотреть что выходит. Сейчас вроде как заставил работать по нужным мне цепочкам.При сканировании открыты только два порта, всё остальное закрыто "межсетевым экраном" Smile
Не намного хуже чем Outpost firewall Smile
Теперь, уважвемые, нужна ваша критика, как спецов. может что здесь криво?
Код:
#!/bin/sh
######################################################################
###                                                                ###
###                              MY IPTABLES CONFIG                ###
###                                                                ###
######################################################################
EXT_IFS_0="eth0"
LOOPBACK_IFS="lo"

MY_IP="my.ip.address"
ANYWHERE="0/0"                   #
MY_ISP="my.isp.address.range"    # range address of provider
MY_NET_ADDR="192.168.100.0/255.255.255.0"

PRIV_PORTS="0:1023"
UNPRIV_PORTS="1024:65535"

IPTABLES="/sbin/iptables"
####################################################################
# delete exsist rule
$IPTABLES -F
$IPTABLES -X

# default  politics
$IPTABLES -P INPUT    DROP
$IPTABLES -P OUTPUT   ACCEPT
$IPTABLES -P FORWARD  DROP
###################################################################
# my new chains
#
# 1              INPUT             OUTPUT
#                  |                  |
# 2         invaild_packets    invaild_packets
#              /   |   \           /  |  \
#             /    |    \         /   |   \
# 3         tcp   UDP  ICMP     tcp  UDP ICMP
#             \    |    /         \   |   /
#              \   |   /           \  |  /
# 4             allowed            allowed
#                      \          /
#                       \        /
# 5                     no rules
#                           |
#                    delete ALL other
####################################################################
$IPTABLES -N Input_invaild_tcp_chain  # for invaild packets
$IPTABLES -N Input_tcp_chain          #
$IPTABLES -N Input_udp_chain          #
$IPTABLES -N Input_icmp_chain         #

$IPTABLES -N Output_invaild_tcp_chain # for invaild packets
$IPTABLES -N Output_tcp_chain         #
$IPTABLES -N Output_udp_chain         #
$IPTABLES -N Output_icmp_chain        #

$IPTABLES -N Allowed_chain            # packets by  exsist connection
$IPTABLES -N No_rule_chain            # for all no rules packets - DROP
###################################################################
#
#                     BEGIN INPUT chain - 1
#         loopback
$IPTABLES -A INPUT  -i $LOOPBACK_IFS -j ACCEPT
$IPTABLES -A OUTPUT -o $LOOPBACK_IFS -j ACCEPT

# 1-2   from INPUT/OUTPUT to INVAILD
$IPTABLES -A INPUT  -s $MY_NET_ADDR -i $EXT_IFS_0 -j Input_invaild_tcp_chain
$IPTABLES -A OUTPUT -d $MY_NET_ADDR -o $EXT_IFS_0 -j Output_invaild_tcp_chain
#                   END INPUT chain - 1
#########################################################
#                   BEGIN INVAILD chain -2
#         bad packets
#    bad flags
$IPTABLES -A Input_invaild_tcp_chain  -p tcp  --tcp-flag SYN,ACK SYN,ACK \
          -m state --state NEW -j REJECT --reject-with tcp-reset
#$IPTABLES -A Output_invaild_tcp_chain -p tcp ! --syn \
#         -m state --state NEW -j LOG --log-prefix "New not syn:"
#-$IPTABLES -A Output_invaild_tcp_chain -p tcp ! --syn \
#-         -m state --state NEW -j DROP

#    bad address
#         end bad packets
# 2-3   from INVAILD to cpecial
$IPTABLES -A Input_invaild_tcp_chain   -p tcp  -j Input_tcp_chain
$IPTABLES -A Input_invaild_tcp_chain   -p UDP  -j Input_udp_chain
$IPTABLES -A Input_invaild_tcp_chain   -p ICMP -j Input_icmp_chain

$IPTABLES -A Output_invaild_tcp_chain  -p tcp  -j Output_tcp_chain
$IPTABLES -A Output_invaild_tcp_chain  -p UDP  -j Output_udp_chain
$IPTABLES -A Output_invaild_tcp_chain  -p ICMP -j Output_icmp_chain
#                  END INVAILD chain - 2
##################################################################
#                 BEGIN TCP(UDP,ICMP) chain - 3
#         SSH
$IPTABLES -A Input_tcp_chain -p tcp -s 0/0 --dport 22    -j ACCEPT

#         FTP server
$IPTABLES -A Input_tcp_chain -p tcp -s 0/0 --dport 20:21 -j ACCEPT

#         ICMP
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 0  -j ACCEPT
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 3  -j ACCEPT
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 4  -j ACCEPT
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 8  -j ACCEPT
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A  Input_icmp_chain   -p ICMP -s 0/0 --icmp-type 12 -j ACCEPT

$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 0  -j ACCEPT
$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 3  -j ACCEPT
$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 4  -j ACCEPT
$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 8  -j ACCEPT
$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A  Output_icmp_chain  -p ICMP -d 0/0 --icmp-type 12 -j ACCEPT

#         HTTP server

#         DHCP client

#         DHCP server

#         VPN server

#         VPN client

# 3-4 redirect packet to  allowed
$IPTABLES -A Input_tcp_chain           -j Allowed_chain
$IPTABLES -A Input_udp_chain           -j Allowed_chain
$IPTABLES -A Input_icmp_chain          -j Allowed_chain

$IPTABLES -A Output_tcp_chain          -j Allowed_chain
$IPTABLES -A Output_udp_chain          -j Allowed_chain
$IPTABLES -A Output_icmp_chain         -j Allowed_chain
#                   END TCP(UDP,ICMP) chain - 3
#########################################################
#                  BEGIN ALLOWED chain - 4

#         allowed packets (for exsist connections)
$IPTABLES -A Allowed_chain   -p tcp --syn -j ACCEPT
$IPTABLES -A Allowed_chain   -p tcp -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A Allowed_chain   -p tcp -m state --state RELATED     -j ACCEPT

# 4-5 redirect allowed packets
$IPTABLES -A Allowed_chain             -i No_rule_chain
#                  END ALLOWED chain - 4
#########################################################
#                 BEGIN NO RULES (other) chain - 5

$IPTABLES -A No_rule_chain             -i DROP
#-                    END NO RULES (other) chain - 5
#########################################################
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Вт Сен 13 2005 19:28    Заголовок сообщения: Ответить с цитатой

Предлагаю еще более ужесточать правила.
При использовании -s используй и -d. Тогда будешь точно знать как идет трафик. Кому что разрешено, куда и зачем.

И опять попутал. $IPTABLES -A No_rule_chain -i DROP

-j DROP наверно хотел сказать.

Подход в общем правильный. Одобрям-с. Smile
У самого все почти в таком стиле.

Советую еще с LOG и ULOG поиграться и сделать заготовки. Очень помогает при разборах полетов и быстрого включения/выключения логирования трафика.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Ср Сен 14 2005 14:51    Заголовок сообщения: Ответить с цитатой

А.... сперва пришлось изучать fsck, потом бэды, потом надпись при загрузке что винт в ауте. пришлось пересесть на другой комп. благо в форуме остался скрипт
Кстати между пнём 100 с 32 метрами RAM и дюрончиком 700(RAM 256) даже при работе в консоли, через терминал, чувствуется заметная разница Smile

and3008 писал(а):
Предлагаю еще более ужесточать правила.
При использовании -s используй и -d. Тогда будешь точно знать как идет трафик. Кому что разрешено, куда и зачем.

источник и назначение у меня обрабатываются сразу на входе.
Код:
$IPTABLES -A INPUT  -s $MY_NET_ADDR -i $EXT_IFS_0 -j Input_invaild_tcp_chain
$IPTABLES -A OUTPUT -d $MY_NET_ADDR -o $EXT_IFS_0 -j Output_invaild_tcp_chain

в первом правиле через -d я могу указать только свой IP
во втором -s также свой IP
А как я его получу?
MY_IP="my.ip.address" - нашёл в книжке, правда для ipchain
для iptables - не прокатывает
IP у меня динамический, через недели две уже другой будет.
Может можно к МАС привязать?

and3008 писал(а):
Советую еще с LOG и ULOG поиграться и сделать заготовки. Очень помогает при разборах полетов и быстрого включения/выключения логирования трафика.


Код:
#   hook NEW SSH
$IPTABLES -A Input_tcp_chain -p tcp -s 0/0 --dport 22 \
          -m state --state NEW -j LOG \
     --log-level info \
     --log-prefix "New SSH:"
...
# hook ICMP ping
$IPTABLES -A Input_icmp_chain -p ICMP -s 0/0 --icmp-type 8  -j LOG  \
          --log-level info  --log-prefix "Ping:"  --log-ip-options

теперь как будут пытаться логиниться или сканировать - сразу засеку Smile
А что можно(целесообразно) ещё ловить?
любопытно, а что мой провайдер логит? мой МАС наверное уже наизусть знает Smile

На счёт ULOG я прочитал, что можно писать в my sql.
ULOG - для этого что-то дополнительно надо устанавливать?
и наверное поднимать SQL сервер? базку данных создавать?
Так?
если да, то даже удобнее. Можно сделать самому прогу под винду для анализа логов!

ещё вопрос. допустим у меня в машинке две сетевушки.
и примерно такое соединение
local net ------- eth0(comp1-linux)eth1-------eth0(comp2)
в XP я врубаю режим моста между eth0 и eth1
эмулируется вот такое подключение
Код:

local net -----[switch]-----eth0(comp1-linux)
.                 |
.            eth0(comp2)

а как в линукс? догадываюсь, что средсвами iptables но как?
MASQ и NAT - вроде ничего подменять не надо.
eth1 не должен иметь своего IP. для второго компа первый должен быть как просто мост, повторитель
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Ср Сен 14 2005 18:18    Заголовок сообщения: Ответить с цитатой

В Линуксе можно сделать мост. Он это умел от рождения.
Найди Bridging HowTo и почитай.

Мост делать стрёмно. Безопасность может сильно пострадать. За 7 лет мне ни разу не потребовалось делать мост на базе ОС.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Чт Сен 15 2005 15:44    Заголовок сообщения: Ответить с цитатой

Стрёмно из-за угрозы безопасности? или просто так не принято делать, типа негласного табу на использование GOTO в программировании?
А если вот такое соединение, то по идее также, мостом?
Код:
local net ------- eth0(comp1-linux)modem-------modem(comp2)


эмулировать
Код:
local net -----[switch]-----eth0(comp1-linux)
.                 |
.            eth0(comp2)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Чт Сен 15 2005 20:08    Заголовок сообщения: Ответить с цитатой

Мост передает трафик на канальном уровне.
Маршрутизатор - на сетевом.

Разницу чуешь?

В свете того, что частенько Линукс выполняет роль маршрутизатора, делать на нем же еще и мост - это как-то... Неправильно в общем.

Там, где нужен мост - проще поставить китайскую мыльницу (хаб/свитч) за 10 баксов, чем целый комп.

Бывают редкие исключения, когда к примеру есть медь, карточка для оптики, а на медиаконвертор от D-Link денег нету (200 баксов, однако). Или нужно подружить две сети с разной топологией. Тут мост может пригодиться. Но эти случаи настолько редки, что больше представляют академический интерес, чем практический.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dimasm



Зарегистрирован: 25.04.2005
Сообщения: 454

СообщениеДобавлено: Вс Сен 18 2005 19:15    Заголовок сообщения: Ответить с цитатой

на счёт моста и маршрутизатора понял.

тут я смотрю мои вопросы уже не совсем по названию темы идут Smile
буду создавать отдельные темы

Всем огромная благодарность за ответы
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...