1

Здравствуйте) есть шлюз с белым ip.
1. Хочу)) все-все закрыть и пускать на шлюз только 2 хоста (и внутрь всякие винды по RDP форвардингом)
2. Выпускать всех только по разрешенному списку портов.

и Да, у меня ничего не работает (не могу войти через putty с ip: 192.168.0.65 на 192.168.0.254:22)

вот что я чудо наделал: root@gw5:~# cat /root/iptables.test.rules

+ открыть спойлер
#!/bin/bash
# ******************************************************** Define variables
#
# list of allowed hosts
IMEX="80.247.XX.XXX"            # allowed_machine1 (white_provider_IP)
AVANTEL="109.202.X.XXX"         # allowed_machine2 (white_provider_IP)
DEBUG="192.168.0.65"
# FG="79.122.XXX.XX"            # this_machine_white_provider_IP(WAN)
FG="192.168.0.254" #debug
#
EXT_PORTS="22,3333,3335,3336,5555,6666,8080,9998"                               # accesible WAN port
INT_PORTS="25,53,80,110,143,443,445,1024,2041,2042,5060,5190,11024"             # accessible LAN ports
T_PORT="3389"                   # target port for terminals RDP
#
IPT="/sbin/iptables"            # iptables location
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
# ******************************************************* End v. defenition
#
echo "\n\tIPTABLES MODIFICATION STARTED\n"
# flashing all rules (twice and separate - to be sure)
$IPT -F && $IPT -t mangle -F && $IPT -t nat -F && $IPT -t filter -F && $IPT -F && echo " - all rules was flushed"
#
# Allow loopback traffic
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT && echo " - local traffic allowed"
#
# Allow packets of established and  related connections
$IPT -A INPUT -i $EXT_IF -p all -m state --state ESTABLISHED,RELATED -j ACCEPT  # WAN
$IPT -A INPUT -i $INT_IF -p all -m state --state ESTABLISHED,RELATED -j ACCEPT  # LAN
echo " - inside initialized connections allowed"
#
# allow Internet access to DEFINED PORTS on external(WAN)interface for DIFENED hosts
$IPT -A INPUT -i $EXT_IF -p tcp -s $IMEX,$AVANTEL,$DEBUG -m multiport --dport $EXT_PORTS -j ACCEPT && echo " - hosts "$IMEX" and "$AVANTEL" added to TRUSTED"
#
# allow NAT (WAN > - - -GATEWAY- - - > LAN) RDP protocol
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3333 -j DNAT --to-destination  192.168.1.250:$T_PORT    # RTS
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3335 -j DNAT --to-destination  192.168.1.4:$T_PORT      # MAV
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3336 -j DNAT --to-destination  192.168.1.2:$T_PORT      # RDC1
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 5555 -j DNAT --to-destination  192.168.1.232:$T_PORT    # buh-sh
echo " - RDP NAT activated"
#
# Set default policy to DROP ALL
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP && echo " - polycy drop ALL(exclude upper rules) aplied"
#
# port forwarding ()
echo "\n\tIPTABLES MODIFICATION COMPLETED\n"
#

ЗЫ: не поможете, так хоть поржете )) ag

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

2 (15.03.2013 15:50:36 отредактировано marikk)

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP


А разрешающие правила только для ветки INPUT.

3 (15.03.2013 16:08:40 отредактировано kisil)

#!/bin/bash
# ******************************************************** Define variables
#
IMEX="80.247.XX.XXX"            # allowed_machine1 (white_provider_IP)
AVANTEL="109.202.X.XXX"         # allowed_machine2 (white_provider_IP)
DEBUG="192.168.0.65"
FG="192.168.0.254" #debug
#
EXT_PORTS="22,3333,3335,3336,5555,6666,8080,9998"                               # accesible WAN port
INT_PORTS="25,53,80,110,143,443,445,1024,2041,2042,5060,5190,11024"             # accessible LAN ports
T_PORT="3389"                   # target port for terminals RDP
#
IPT="/sbin/iptables"            # iptables location
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
# ******************************************************* End v. defenition
#
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

$IPT -t mangle -F 
$IPT -t nat -F 
$IPT -t filter -F 
$IPT -F 


$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT


# Allow packets of established and  related connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  # WAN
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT  # LAN


$IPT -A INPUT -i $INT_IF -p all -s $YOUR_NETWORK -j ACCEPT

$IPT -A INPUT -i $EXT_IF -p tcp -s $IMEX,$AVANTEL,$DEBUG -m multiport --dport $EXT_PORTS -j ACCEPT


$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3333 -j DNAT --to-destination  192.168.1.250:$T_PORT    # RTS
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3335 -j DNAT --to-destination  192.168.1.4:$T_PORT      # MAV
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3336 -j DNAT --to-destination  192.168.1.2:$T_PORT      # RDC1
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 5555 -j DNAT --to-destination  192.168.1.232:$T_PORT    # buh-sh

Вот так лучче выглядит. Ну и я добавил правило которое даёт доступ для всей вашей локальной сети к серваку. Такое же  нужно и на OUTPUT.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

4

marikk⇓ пишет:

А разрешающие правила только для ветки INPUT.

спасибо, добавлю OUTPUT и FORWARD. ab

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

5

kisil⇓ пишет:

Такое же  нужно и на OUTPUT.

Вот так?

MY_NW1="192.168.1.0/24"
#
$IPT -A INPUT -i $INT_IF -p $INT_PORTS -s $MY_NW1 -j ACCEPT
$IPT -A OUTPUT  -i $INT_IF -p $INT_PORTS -s $MY_NW1 -j ACCEPT
надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

6

Можете для начала поставить политику OUTPUT в ACCEPT. Для быстроты настройки. Видь если трафик попал к вам на сервак, то пускай и уходит куда надо. А INPUT настройте по всей строгости админских законов.  aq Так будет попроще. Если всё закрутитса как надо потом и OUTPUT поправите.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

7

Не

-p $INT_PORTS

а

-m multiport --destination-port $INT_PORTS
Trouble  in WINDOWS reboot, trouble in UNIX be root.

8

kisil⇓ пишет:

Можете для начала поставить политику OUTPUT в ACCEPT.

Да, наверное..)) По-хорошему бы в $MY_NW1 все завотачивать на  http_port 192.168.1.1:3128, в $MY_NW2 - http_port 192.168.2.1:3128 )) (Сквид не прозрачный)

И похоже это нормально что после $IPT -F все маршруты пропадают.(( Вост. только ребутом..

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

9

kisil, а ну да!)))

MY_NW1="192.168.1.0/24"
#
$IPT -A INPUT -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NW1 -j ACCEPT
$IPT -A OUTPUT  -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NW1 -j ACCEPT
надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

10

Так что то до конца не понятно. Так нужно пускать тока на squid'а или ещё на какието то порты. Опишыте нормально задание!

Trouble  in WINDOWS reboot, trouble in UNIX be root.

11 (15.03.2013 22:36:57 отредактировано Me_Shock)

kisil⇓ пишет:

Опишыте нормально задание!

На "Ты" pls.) Мое ТЗ звучало так:

Общие фичи:
1. На шлюзе должен считаться весь http трафик кроме почты" (т.к. сквид это не умеет - иные протоколы smtp / pop3)
2. Все что прокси может посчитать - завернуть принудительно, либо с пом. прозрачного проксирования - отпадает т.к. https:443 в режиме "intercept" не заведешь)
Как я понимаю, если принудительно не заворачивать на 3128 - юзеры ЛС поломятся напрямую и потратят неучтенный траф, если порты не прикрыть.. Тут у меня и вышл(о/а)  заморока недопонимание концепции прокси-сервера..
Теперь не пойму как лучше сделать..
3. Определенные "ViP ip" пускать ALL через NAT.

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

12

Так тебе нужно считать весь трафик кроме почты????И выстявлять лимиты или тока считать???
Ну для считалки Ulog, netams.
Но щас проблема в том что кто то не может попасть на сервак?? Верно?
Так что щас не работает?

Trouble  in WINDOWS reboot, trouble in UNIX be root.

13 (15.03.2013 22:51:47 отредактировано Me_Shock)

kisil⇓ пишет:

Так тебе нужно считать весь трафик кроме почты????

Весь какой возможно с пом. Сквида (исключая почту - она NAT)

kisil⇓ пишет:

И выстявлять лимиты или тока считать???

Биллинг и нарезка квот squid3 + sams2 + squidguard (связка слажена, отлажена и работает с авторизацией по IP)

kisil⇓ пишет:

Но щас проблема в том что кто то не может попасть на сервак?? Верно?

Нет - я бы уже тогда не жил)) В данный момент хилая железка с 1м винтом под управлением MS 2003 server + usergate - оно медлено начинает сдавать свои позиции, отказы участились.. DS: replace to nix на мощной железке с mdraid! в скрипте как раз DEBUG="192.168.0.65" временная мера текущего WAN, в последствии переезд и поменяю на "настоящий".

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

14

в том и трабл - замена в рабочей сети "на горячую" винды на никсы.. уже 2 мес. меняю, а еще почтовый релей поднимать (эт я умею)

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

15

Enzo_brn пишет:

в том и трабл - замена в рабочей сети "на горячую" винды на никсы.. уже 2 мес. меняю, а еще почтовый релей поднимать (эт я умею)

Это понятно.
А что щас не работает???
Конкретно.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

16 (15.03.2013 23:21:33 отредактировано Me_Shock)

Допилил до такого вида:

+ открыть спойлер
#!/bin/bash
# ******************************************************** Define variables
#
IMEX="80.247.XX.XXX"            # allowed_machine1 (white_provider1_IP)
AVANTEL="109.202.X.XXX"         # allowed_machine2 (white_provider2_IP)
#
DEBUG="192.168.0.65"            # Client_PC_betta_tester
#
MY_NW1="192.168.1.0/24"            # My NetWork1 on eth1 (add 2nd in future)
FG="192.168.0.254"                 #debug (replace with WHITE_ip_of_company_F.XX.Group in future)
D_GW="192.168.0.210"            # default gateway (edit in future)
#
#
EXT_PORTS="22,3333,3335,3336,5555,6666,8080,9998"                     # accesible WAN port
INT_PORTS="25,53,80,110,143,443,445,1024,2041,2042,5060,5190,11024" # accessible LAN ports
#
T_PORT="3389"                   # target Terminals RDP
P_PORT="3128"                    # target Proxy squid3
#
IPT="/sbin/iptables"            # iptables location
#
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
# ******************************************************* End v. defenition
#
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP                # DROP ALL
$IPT -P FORWARD DROP

$IPT -t mangle -F 
$IPT -t nat -F                     # CLEAR ALL
$IPT -t filter -F 
$IPT -F 


$IPT -A INPUT     -i lo -j ACCEPT    # ALLOW LOOPBACK TRAFFIC
$IPT -A OUTPUT     -o lo -j ACCEPT


# Allow packets of established and  related connections
$IPT -A INPUT     -m state --state ESTABLISHED,RELATED -j ACCEPT  # WAN
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT  # LAN


# Allow IN/OUT connections on trusted ports in LAN 
$IPT -A INPUT     -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NW1 -j ACCEPT
$IPT -A OUTPUT     -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NW1 -j ACCEPT


# Allow remote access fot trusted IP's
$IPT -A INPUT -i $EXT_IF -p tcp -s $IMEX,$AVANTEL,$DEBUG -m multiport --dport $EXT_PORTS -j ACCEPT        # DEBUG (temp var)

# RDP port map
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3333 -j DNAT --to-destination  192.168.1.250:$T_PORT    # RTS
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3335 -j DNAT --to-destination  192.168.1.4:$T_PORT      # MAV
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 3336 -j DNAT --to-destination  192.168.1.2:$T_PORT      # RDC1
$IPT -t nat -A PREROUTING -p tcp -d $FG --dport 5555 -j DNAT --to-destination  192.168.1.232:$T_PORT    # buh-sh

# FLUSHED ROUTE RECOVERY NEEDED HERE !!!!!!!!!!!!!!!
# ip r a default gw $D_GW
service networking stop && service networking start
kisil⇓ пишет:

Конкретно.

Щас не поднимаются маршруты. т.е. вывод route или ip r - пустая строка. После перезагрузки прописываются, а рестарт сети не помогал..
Нужно запилить в скрипт поднятие маршрутизации с пом. добавления дефолтного шлюза видимо.. $D_GW

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

17 (15.03.2013 23:34:46 отредактировано kisil)

Как нету стандартных маршрутов?  ai
После назначения интерфейсу айпи в статической таблице маршрутизацыи должны прописыватса маршруты на целую сеть. Тока дефолтный нужно добавлять ну и уже какието экзотические, когда нужно разрулить сложную топологию сети.
А

netstat -r

что говорит?

Trouble  in WINDOWS reboot, trouble in UNIX be root.

18

Enzo_brn, кстати ответ получил на пошту от меня?

Trouble  in WINDOWS reboot, trouble in UNIX be root.

19

Маршруты были, потом iptables -F и их нестало.. reboot и наместе!)

kisil⇓ пишет:

А
netstat -r
что говорит?

говорит: wait Monday - go work ((
2. нет ответа не получал

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

20

Послал ЛС.
Как такое правило как

iptables -F

может очистить таблицу маршрутизацыи.???
Я только что такое проделал у себя и у меня тока скинулись правила из цепочек. Причём тут iptables.
Мистика.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

21

kisil пишет:

Мистика.

в Пн.(25.03.13)  по результатам тщательной проверки отпишу. Спасибо огромное!

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

22

Лады. Будем ждать - будем посмотреть  bs

Trouble  in WINDOWS reboot, trouble in UNIX be root.

23 (18.03.2013 11:30:29 отредактировано Me_Shock)

kisil, перепутал даты(в этот Пн.), сегодня докопался до сути: Похоже что нельзя запускать выполнения этого скрипта удаленно (у меня через putty). т.е. он не весь выполняется. Запускаю непосредственно локально. Все норм.)

Попытался максимально упростить скрипт, сейчас он такой:

+ открыть спойлер

 Консоль:
#!/bin/bash
# ******************************************************************
#

TRUSTED_HOSTS="80.247.XX.XXX,109.202.X.XXX,192.168.0.65"        # 1.imex 2.avantel 3.debug
MY_NETWORK="192.168.1.0/24"     # My NetWork (eth1)
THIS_GW_IP="192.168.0.254"      # this GateWay IP
DEFAULT_GW="192.168.0.210"      # default gateway
EXT_PORTS="22,80,3389"          # accessible WAN port
INT_PORTS="80,3128"             # accessible LAN ports
IPT="/sbin/iptables"            # iptables location
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
#
# *****************************************************************

$IPT -F                         # CLEAR ALL RULES
$IPT -P INPUT   DROP
$IPT -P OUTPUT  DROP            # SET POLICY TO DROP ALL
$IPT -P FORWARD DROP

# Accepts ALL established inbound connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Accepts ALL outbound traffic
$IPT -A OUTPUT -j ACCEPT

# ALLOW REMOTE CONNECT FOR TRUSTED HOSTS TO ALLOWED PORTS
$IPT -A INPUT -i $EXT_IF -p tcp -s $TRUSTED_HOSTS -m multiport --dport $EXT_PORTS -j ACCEPT


# AllOW PING
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
ip r a default via $DEFAULT_GW                          # addin default route
service networking stop && service networking start     # restarting network

но проблемы еще остались: из ЛС не идет пинг на дефолтный шлюз и нет интернетов. Сношу все через iptables -F и пинги и интернеты появляются.. Не пойму что не так..

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

24 (18.03.2013 12:18:25 отредактировано kisil)

Всё верно локалка не имеет доступ к шлюзу. Нужно типа так, но я просто не уверен что верно понял что где!

$IPT -A INPUT -i $INT_IF -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT
Trouble  in WINDOWS reboot, trouble in UNIX be root.

25

kisil⇓ пишет:

Всё верно локална не имеет доступ к шлюзу. Нужно типа так, но я просто не уверен что верно понял что где!

Похоже Вы все правильно поняли. Добавил

$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT

и вдруг(думаю все-таки совпадение) появилась какая то странность: Ооооочень долгий отклик на команды пинг ~ 5 сек и отмена пинга ~ 3 сек. (сами задержки обычные), типа сеть стала тормозить, запускал утилиту top - проц. 99% idle. Не знаете что может быть?

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

26

Пробовал все -F и перезагружать, но тормоза остались.. fak! кажется я никуда не лез и все-равно что-то сломал.. bu

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

27

Отсутствие доступа к ДНС серверу.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

28

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

iptables -S
iptables -t nat -S
ifconfig
Trouble  in WINDOWS reboot, trouble in UNIX be root.

29 (18.03.2013 13:19:44 отредактировано Me_Shock)

kisil⇓ пишет:

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

/root/iptables.rotor.rules

+ открыть спойлер
#!/bin/bash
# ******************************************************************
#
TRUSTED_HOSTS="80.247.XX.XXX,109.202.X.XXX,192.168.0.65"        # 1.imex 2.avantel 3.debug
MY_NETWORK="192.168.1.0/24"     # My NetWork (eth1)
THIS_GW_IP="192.168.0.254"      # this GateWay IP
DEFAULT_GW="192.168.0.210"      # default gateway
EXT_PORTS="22,80,3389"          # accessible WAN port
INT_PORTS="80,3128"             # accessible LAN ports
IPT="/sbin/iptables"            # iptables location
EXT_IF="eth0"                   # external WAN interface
INT_IF="eth1"                   # internal LAN interface
#
# *****************************************************************
$IPT -F                         # CLEAR ALL RULES
#
$IPT -P INPUT   DROP
$IPT -P OUTPUT  DROP            # SET POLICY TO DROP ALL
$IPT -P FORWARD DROP
#
# Accepts ALL established inbound connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Accepts ALL outbound traffic
$IPT -A OUTPUT -j ACCEPT
#
# ALLOW REMOTE CONNECT FOR TRUSTED HOSTS TO ALLOWED PORTS
$IPT -A INPUT -i $EXT_IF -p tcp -s $TRUSTED_HOSTS -m multiport --dport $EXT_PORTS -j ACCEPT
#
# ALLOW LOCAL CONNECT FOR TO ALLOWED INTERNAL PORTS
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -s $MY_NETWORK -j ACCEPT
#
# AllOW PING
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
ip r a default via $DEFAULT_GW                          # addin default route
service networking stop && service networking start     # restarting network

вывод iptables (но я же сбросил на дефолтные..)

+ открыть спойлер

 Консоль:
root@gw5:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
root@gw5:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
root@gw5:~# iptables -t nat -S
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
root@gw5:~# cat /etc/network/interfaces
auto lo
        iface lo inet loopback
#
auto eth0
        iface eth0 inet static
        address 192.168.0.254
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.210
        dns-nameservers 192.168.0.5 192.168.0.6
        dns-search rotor.ru  # эм, это не настоящий ротор.ру, просто кто-то не в курсе про TLD и где их применяют..
#
auto eth1
        iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255

надпись на двери старого трамвая: "ВЫХОДА НЕТ!" | ❤windows 8 enterprise

30

И что при таком фаерволе, доступ к серваку из локалки есть

root@gw5:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Trouble  in WINDOWS reboot, trouble in UNIX be root.