Нужна помощь, совет специалистов в работе с iptables

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
solDier
Junior member
Сообщения: 11
Зарегистрирован: 13 июн 2005, 09:44
Откуда: Украина, Желтые Воды
Контактная информация:

Нужна помощь, совет специалистов в работе с iptables

Сообщение solDier » 12 сен 2006, 18:17

Добрый день!

Прошу пересмотреть правила iptables, на выявление ошибок и бреши в защите, просьба при выявлении ошибки помочь с решением..

eth0 [192.168.16.xx] - локалка
eth2 [192.168.15.xx] - локалка
ppp0 [82.207.xxx.xxx] - инет + реальный IP

И нужна помощь еще в реализации проброса инета в локальную сеть: чтобы внешние пользователи в броузере набирали http://82.207.xxx.xxx/site и открывался site с локального веб сервера [192.168.16.248] Я написал правила DNAT, но неуверен что правильно, если можно то помогите с решение и этой ситуации.

iptables-save прилагается...

Код: Выделить всё

[root@server ~]# iptables-save
# Generated by iptables-save v1.3.5 on Thu Sep 14 10:39:04 2006
*nat
:PREROUTING ACCEPT [6056:767050]
:POSTROUTING ACCEPT [7:539]
:OUTPUT ACCEPT [47:3747]
-A PREROUTING -d 82.207.xxx.xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.16.248:80
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -d 192.168.15.0/255.255.255.0 -j SNAT --to-source 192.168.15.69
-A POSTROUTING -d 192.168.1.2 -j SNAT --to-source 192.168.1.2
-A POSTROUTING -d 192.168.16.248 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.16.1
-A OUTPUT -d 82.207.xxx.xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.16.248:80
COMMIT
# Completed on Thu Sep 14 10:39:04 2006
# Generated by iptables-save v1.3.5 on Thu Sep 14 10:39:04 2006
*mangle
:PREROUTING ACCEPT [19801:2046974]
:INPUT ACCEPT [1090858:116555843]
:FORWARD ACCEPT [2984737:1750829521]
:OUTPUT ACCEPT [472:84792]
:POSTROUTING ACCEPT [3389399:1842522221]
COMMIT
# Completed on Thu Sep 14 10:39:04 2006
# Generated by iptables-save v1.3.5 on Thu Sep 14 10:39:04 2006
*filter
:INPUT DROP [849:180501]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:allowed - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_packets - [0:0]
:udp_packets - [0:0]
-A INPUT -p tcp -j bad_tcp_packets
-A INPUT -s 192.168.16.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -s 192.168.15.0/255.255.255.0 -i eth2 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -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_packets
-A INPUT -i ppp0 -p udp -j udp_packets
-A INPUT -i ppp0 -p icmp -j icmp_packets
-A FORWARD -p tcp -j bad_tcp_packets
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -o eth2 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
-A FORWARD -i ppp0 -o eth0 -p tcp -m state --state RELATED,ESTABLISHED -m tcp --dport 80 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -j bad_tcp_packets
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.16.1 -j ACCEPT
-A OUTPUT -s 82.207.xxx.xxx -j ACCEPT
-A OUTPUT -s 192.168.1.2 -j ACCEPT
-A OUTPUT -s 192.168.15.69 -j ACCEPT
-A allowed -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A allowed -p tcp -j DROP
-A bad_tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-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 icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A tcp_packets -p tcp -m tcp --dport 22 -j allowed
-A udp_packets -p udp -m udp --sport 53 -j ACCEPT
COMMIT
# Completed on Thu Sep 14 10:39:04 2006


Заранее огромное спасибо...
Последний раз редактировалось solDier 14 сен 2006, 10:51, всего редактировалось 1 раз.

Аватара пользователя
apelsin
Advanced member
Сообщения: 470
Зарегистрирован: 09 окт 2004, 12:32

Сообщение apelsin » 12 сен 2006, 20:02

И нужна помощь еще в реализации проброса инета в локальную сеть: чтобы внешние пользователи в броузере набирали http://82.207.xxx.xxx/site и открывался site с локального веб сервера [192.168.16.248]
:ups:

это ерунда какая-то и работать оно не будет ...   поднимите прокси-сервер, если есть желание можно и transpearent proxy настроить.  

По поводу ваших правил:  там какое-то нагромождение, надо определится с задачей и потом написать все заного.

solDier
Junior member
Сообщения: 11
Зарегистрирован: 13 июн 2005, 09:44
Откуда: Украина, Желтые Воды
Контактная информация:

Сообщение solDier » 13 сен 2006, 08:22

apelsin писал(а): это ерунда какая-то и работать оно не будет ...   поднимите прокси-сервер, если есть желание можно и transpearent proxy настроить.  
Мне нужно чтобы пользователи при обращении на 80 порт внешнего IPшника (82.207.xxx.xxx) попадали на веб сервер в локальной сети с ipшником 192.168.16.xxx
apelsin писал(а): По поводу ваших правил:  там какое-то нагромождение, надо определится с задачей и потом написать все заного.
Моя задача была защитить локальную 192.168.16.0/24 сеть от проникновения с внешнего интерфейса [82.207.ххх.ххх] ну и открыть нужные порты в локалке [8, 11, 22, 21, 53, 67, 68 ну и т.д.]. Я почитал всем известную доку по iptables и взял оттуда уже написаный список правил rc.DHCP... ну и подкоректировал под свои нужды.

Вот теперь стала задача для проброса инета и вроде написал:
iptables -A PREROUTING -d 82.207.ххх.ххх -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.16.ххх:80

iptables -A FORWARD -i ppp0 -o eth0 -p tcp -m state --state RELATED,ESTABLISHED -m tcp --dport 80 -j ACCEPT

и хочу посоветоваться с людьми которые всё это делали не раз..

Заранее спасибо...

Аватара пользователя
apelsin
Advanced member
Сообщения: 470
Зарегистрирован: 09 окт 2004, 12:32

Сообщение apelsin » 13 сен 2006, 18:13

составьте схему, вроде

[сеть1 192.168.15.0/24]<--->[eth0 gateway/firewall ай.пи.ад.рес eth1]<--->[сеть2 add/range]
инет-провайдер-------------------------------ppp0-----/\

откуда/куда должны ходить пакеты?  

*должны-ли юзеры сети1 и сети2 связываться между собой?
*должны-ли юзеры сети1 сети2 связыватся с инетом?
*какие сервисы из ваших сетей должны быть доступны из инета?

без этих данных тяжело что-либо посоветовать.

ПС:
Мне нужно чтобы пользователи при обращении на 80 порт внешнего IPшника (82.207.xxx.xxx) попадали на веб сервер в локальной сети с ipшником 192.168.16.xxx
   

зачем  :confused:      у вас что, на "внешнем IPшнике" веб-сервер работает?  
клиет из сети набирает хттп://google.ru,  при этом его компутер отсылает пакет содержащий "GET / HTTP/1.0" на 66.102.9.104    ... советую подумать что происходит далее.

solDier
Junior member
Сообщения: 11
Зарегистрирован: 13 июн 2005, 09:44
Откуда: Украина, Желтые Воды
Контактная информация:

Сообщение solDier » 14 сен 2006, 09:00

apelsin писал(а):
составьте схему
         ___ [eth0: 192.168.16.0/24]
        |
        |
{SERVER} - [eth1: 192.168.1.2 ] - [ADSL: 1.1]  - [ppp0: 82.207.xxx.xxx]
        |
        |___ [eth2: 192.168.15.0/24]
apelsin писал(а): откуда/куда должны ходить пакеты?  
- из сети 192.168.15.0/24 можно было: только пинговать сервер и подключаться на 22 порт..
- из сети 192.168.16.0/24 можно было: пинговать сервер, подлючаться на 22 порт, заходить на веб-интерфейс девайса 192.168.1.1, а также пиноговать хосты из сети 192.168.15.0/24, заходить на FTP на сервере, выходить в инет (возможность посещения сайтов и фтп серверов)
- c самого сервера: пинговать хосты в двух локалках, пинговать в инет, заходить на веб-интерфейс девайса 192.168.1.1, заходить на ftp сервера в инете


ПС:
   
зачем  :confused:      у вас что, на "внешнем IPшнике" веб-сервер работает?  
клиет из сети набирает хттп://google.ru,  при этом его компутер отсылает пакет содержащий "GET / HTTP/1.0" на 66.102.9.104    ... советую подумать что происходит далее.
Нет веб-сервер у меня в локалке на 192.168.16.248...
И я эту ситуацию решил, с правильной настройкой ДНАТ :)

Аватара пользователя
apelsin
Advanced member
Сообщения: 470
Зарегистрирован: 09 окт 2004, 12:32

Сообщение apelsin » 15 сен 2006, 13:45

писать все правила для вашей ситуации не буд, т.к. времени на это нет и это собственно ваша работа :-), но:

1.  установить net.ipv4.ip_forward = 1
2.  прописать routes для всех сетей команндой `route'
3.  начать с 'чистого' листа, т.е. с дефолтных настроек файервола для редхат-федора

добавить сл. код:
#  принять пакеты из  192.168.15.0/24  на порт 22  и icmp-type  8 и 11
#  принять пакеты из  192.168.16.0/24
#  принять пакеты для <ваш внешний ип>:80
## nat
# DNAT  <ваш внешний ип>:80   на <ип вашего веб сервера во вн. сети
#  MASQUERADE все пакеты с инрефейса ppp0, исходящие из 192.168.16.0/24
#  MASQUERADE все пакеты с инрефейса ppp0, исходящие из <ип вашего сервера во вн. сети>

вот как-то так.    Правила ACCEPT  добавляются в RH-Firewall-1-INPUT, DNAT в PREROUTING,   MASQUERADE соответственно в POSTROUTING.
конкретный синтакс -- см. iptables how-to.

ВАЖНО:  все правила добавлять с помощью команды iptables, далее сохранять
iptables-save > /еtc/sysconfig/iptables.    Новые правила вступают в действие после перезапуска сервиса 'iptables'

могут быть тонкие моменты с active/passive FTP,  если будут  с этим проблемы -- пишите.

solDier
Junior member
Сообщения: 11
Зарегистрирован: 13 июн 2005, 09:44
Откуда: Украина, Желтые Воды
Контактная информация:

Сообщение solDier » 15 сен 2006, 16:30

Большое спасибо за ответ и помощь. Если будут проблемы с ftp обязательно отпишусь  :D

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей