вопрос по форвардингу определенных портов (iptables)

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

Модераторы: SLEDopit, Модераторы разделов

MvBrain
Сообщения: 16
ОС: Debian

вопрос по форвардингу определенных портов

Сообщение MvBrain »

Ребята есть вот сервер debian он же DNS, MAIL и шлюз, есть конфиг iptales все работает, но не устраевает одна вещь я жочу пользователям своей сети запретить все порты кроме 80го

#!/bin/sh
#Аргумнты
#Internet
WAN="eth0"
WANIP="77.222.151.22"
#Local Network
LAN="eth1"
LANIP="192.168.2.8"
VBK="192.168.2.0/24"
#Local interface
LO="lo"
LOIP="127.0.0.1"
####################
# OPENNET iptables #
####################

#Запрет всего
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Создание цепочки для прохих ТСР пакетов
iptables -N bad_tcp_packets

#Создание отдельных цепочек для ICMP, TCP и UDP
iptables -N allowed
iptables -N tcp_packets
iptables -N udp_packets
iptables -N icmp_packets

# bad_tcp_packets цепочка
iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

# allowed цепочка
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP

# TCP правила
iptables -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 53 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 143 -j allowed
iptables -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed

# UDP порты
iptables -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT

#
# In Microsoft Networks you will be swamped by broadcasts. These lines
# will prevent them from showing up in the logs.
#
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST --destination-port 135:139 -j DROP
#
# If we get DHCP requests from the Outside of our network, our logs will
# be swamped as well. This rule will block them from getting logged.
#
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP
#

# ICMP правила
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

#################
# цепочка INPUT #
#################

# Плохие TCP пакеты нам не нужны
iptables -A INPUT -p tcp -j bad_tcp_packets

#Правила для специальных сетей не часть Intrnet
iptables -A INPUT -p ALL -i $LAN -s $VBK -j ACCEPT
iptables -A INPUT -p ALL -i $LO -s $LOIP -j ACCEPT
iptables -A INPUT -p ALL -i $LO -s $LANIP -j ACCEPT
iptables -A INPUT -p ALL -i $LO -s $WANIP -j ACCEPT

#
# Special rule for DHCP requests from LAN, which are not caught properly otherwise.
#
#$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT

# Правила для входящих пакетов с Internet
iptables -A INPUT -p ALL -d $WANIP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p TCP -i $WAN -j tcp_packets
iptables -A INPUT -p UDP -i $WAN -j udp_packets
iptables -A INPUT -p ICMP -i $WAN -j icmp_packets

#
# If you have a Microsoft Network on the outside of your firewall, you may
# also get flooded by Multicasts. We drop them so we do not get flooded by
# logs
#

#$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP

#Записывать странные пакеты, которые не соответствуют вышеупомянутым
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "

###################
# цепочка FORWARD #
###################

#Плохие TCP пакеты которые нам не нужны
iptables -A FORWARD -p tcp -j bad_tcp_packets

#Прием пакетов которые нужно форвардить
iptables -A FORWARD -p ALL -s 192.168.2.11 -j ACCEPT
#iptables -A FORWARD -p TCP -i $LAN -m multiport --port 53,80 -j ACCEPT
iptables -A FORWARD -i $LAN -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Записывать странные пакеты, которые не соответствуют вышеупомянутым
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "

##################
# цепочка OUTPUT #
##################

#Плохие TCP пакеты которые нам не нужны
iptables -A OUTPUT -p tcp -j bad_tcp_packets

#Специальные OUTPUT правила чтобы решить какой IP разрешить
iptables -A OUTPUT -p ALL -s $LOIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LANIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $WANIP -j ACCEPT

#Записывать странные пакеты, которые не соответствуют вышеупомянутым
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "

#######
# NAT #
#######
iptables -t nat -A POSTROUTING -o $WAN -j SNAT --to-source $WANIP

...так вот с нижним красным правилом все работает и пользователили могут пользоваться любыми исходящими портами,
а когда его закоментировать и задействовать верхнее тогда... в браузере пишет что не может преобразовать DNS сервера
Подскажите пожайлуста что мне надо подправить.
Спасибо.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: вопрос по форвардингу определенных портов

Сообщение KiWi »

Потому что DNS работает в основном по UDP?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: вопрос по форвардингу определенных портов

Сообщение serzh-z »

MvBrain писал(а):
01.12.2011 15:37
Подскажите пожайлуста что мне надо подправить.
Добавить "iptables -A FORWARD -i $LAN --port 53 -j ACCEPT".
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: вопрос по форвардингу определенных портов

Сообщение KiWi »

serzh-z писал(а):
02.12.2011 04:12
Добавить "iptables -A FORWARD -i $LAN --port 53 -j ACCEPT".

Старый ты стал.
Порт в отрыве от протокола не существует.
Спасибо сказали:
MvBrain
Сообщения: 16
ОС: Debian

Re: вопрос по форвардингу определенных портов

Сообщение MvBrain »

Да ребята СПАСИБО!
помогло правило:
iptables -A FORWARD -i $LAN -p UDP --dport 53 -j ACCEPT
Спасибо сказали:
MvBrain
Сообщения: 16
ОС: Debian

Re: вопрос по форвардингу определенных портов

Сообщение MvBrain »

Доброе время суток всем!
Мужики не знаю стоит ли новую тему заводить. Вопрос такой...
Есть хостинг с зарегестрированым доменом vbk.com.ua регистратор он же хостер - prohosting.com.ua
я решил убрать с хостинга почту на свой сервер и поднял свой Mail и DNS сервер. на своём DNS сервере я тоже сделал локальный домен vbk.com.ua
вообщем проблема в том что с моей корпоративной сети наш сайт www.vbk.com.ua который находится на хостинге не работает, а с других сетей он пашет.
А с нашей сети пишет:
К сожалению, Google Chrome не может открыть страницу www.vbk.com.ua.
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: вопрос по форвардингу определенных портов

Сообщение sash-kan »

MvBrain
1.
www.vbk.com.ua. 228 IN CNAME vbk.com.ua.
я бы лично сделал www не cname-записью, а нормальной a-записью·
2. начните с того, что посмотрите, во что у вас из локальной сети резолвится vbk.com.ua и www.vbk.com.ua
$ dig vbk.com.ua
$ dig www.vbk.com.ua
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: вопрос по форвардингу определенных портов

Сообщение KiWi »

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

sysctl -a | grep -F .rp_filter

?
Спасибо сказали:
MvBrain
Сообщения: 16
ОС: Debian

Re: вопрос по форвардингу определенных портов

Сообщение MvBrain »

вот пожалуйста:

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

mel:/home/mel# dig vbk.com.ua

; <<>> DiG 9.7.3 <<>> vbk.com.ua
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 694
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4

;; QUESTION SECTION:
;vbk.com.ua.            IN    A

;; ANSWER SECTION:
vbk.com.ua.        300    IN    A    91.207.94.32

;; AUTHORITY SECTION:
vbk.com.ua.        300    IN    NS    server.vbk.com.ua.
vbk.com.ua.        300    IN    NS    vbkrdmail.vbk.com.ua.
vbk.com.ua.        300    IN    NS    h8.prohosting.com.ua.

;; ADDITIONAL SECTION:
h8.prohosting.com.ua.    3268    IN    A    91.207.44.32
server.vbk.com.ua.    300    IN    A    192.168.2.7
vbkrdmail.vbk.com.ua.    300    IN    A    77.222.151.22
vbkrdmail.vbk.com.ua.    300    IN    A    192.168.2.8

;; Query time: 0 msec
;; SERVER: 192.168.2.8#53(192.168.2.8)
;; WHEN: Fri Dec 23 11:23:17 2011
;; MSG SIZE  rcvd: 181

mel:/home/mel# dig www.vbk.com.ua

; <<>> DiG 9.7.3 <<>> www.vbk.com.ua
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2130
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 4

;; QUESTION SECTION:
;www.vbk.com.ua.            IN    A

;; ANSWER SECTION:
www.vbk.com.ua.        300    IN    CNAME    vbk.com.ua.
vbk.com.ua.        300    IN    A    91.207.94.32

;; AUTHORITY SECTION:
vbk.com.ua.        300    IN    NS    server.vbk.com.ua.
vbk.com.ua.        300    IN    NS    vbkrdmail.vbk.com.ua.
vbk.com.ua.        300    IN    NS    h8.prohosting.com.ua.

;; ADDITIONAL SECTION:
h8.prohosting.com.ua.    3266    IN    A    91.207.44.32
server.vbk.com.ua.    300    IN    A    192.168.2.7
vbkrdmail.vbk.com.ua.    300    IN    A    192.168.2.8
vbkrdmail.vbk.com.ua.    300    IN    A    77.222.151.22

;; Query time: 1 msec
;; SERVER: 192.168.2.8#53(192.168.2.8)
;; WHEN: Fri Dec 23 11:23:19 2011
;; MSG SIZE  rcvd: 199


Ой пардон ребята не с того компа сделал "sysctl"
вот:

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

error: "Invalid argument" reading key "fs.binfmt_misc.register"
error: permission denied on key 'net.ipv4.route.flush'
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.pan0.rp_filter = 0
error: permission denied on key 'net.ipv6.route.flush'
Спасибо сказали: