LINUX.ORG.RU
ФорумAdmin

как nat настроить на прокси-сервене???


0

0

чтобы компы из локальной сети ходили по именам на сервера(щас в инет
ходят только по ip-шникам)? для этого надо сам nat скомпилировать 
и установить? Нужно ли поднимать на сервере DNS на 
прокси-сервере, держащем локалку в 1 компьютер? 

Вобщем есть у меня скрипт для настройки правил iptables:

#!/bin/sh

INET_IP="214.193.251.152"
INET_IFACE="eth0"
INET_BROADCAST="255.255.255.248"
LAN_IP="10.0.0.1"
LAN_IP_RANGE="10.0.0.0/24"
LAN_IFACE="eth1"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
/sbin/depmod -a
/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

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_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
$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
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed

$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

$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

$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "

$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -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: "

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -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 table

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


но собсно в чем трабл, если я на виндовой машине скажу 
http://www.linux.org.ru то я на лор не попаду. но если я 
скажу http://217.76.32.61 то любимый ЛОР увижу... что мне 
надо дописать в этот конфиг iptables чтобы ходить по 
именам на интернет-сайты?

может мне надо прогу еще nat поставить... ваще-то это мой 
первый файрвол, конфиг взят из iptables tutorial потому не 
пинать за то что я чайник.

конфиг сети такой:
http://www.linux.org.ru/view-message.jsp?msgid=376643&scroll=group&back=
view-group.jsp%3Fgroup%3D1340

потом еще вопрос, что значит INET_BROADCAST="255.255.255.248", 
это нетмаска прокси-сервера, какую мне провайде дал?

А LAN_IP="10.0.0.1" это верно? или должно быть LAN_IP="10.0.0.0"?

спасибо!
anonymous

Вообще-то, (если это конечно не прикол :)) ). Для разрешения имен, конечно-же надо поднять ДНС, либо указать ДНС провайдера. INET_BROADCAST= (255.255.255.248- это маска подсетки, вообще-то), а броадкаст должен быть другой, что нибудь типа 213.180.194.31, к примеру. Броадкаст это адрес для широковещательных пакетов для твоей подсетки. LAN_IP=10.0.0.1 в общем-то верно, если у тебя такой адрес на твоей серверной машине. А вообще-то NAT- это файрволл и к разрешению имен не имеет ни какого отношения, ну разве что если не будет пропускать пакеты на 53 порт :))

Epetruk
()

УРРРА!!! ЗАРАБОТАЛА!!! При этих правилах можно в настройке виндовой машины указывать внешний DNS... УРЯЯЯ!! гыгыгыгыыг первая локалка настроилась!!! еу... тыц тыдыц

anonymous
()

Dns-провайдера культурнее указывать на linux-сервере. В /etc/resolv.conf пишешь

nameserver 214.193.251.151
domain domen.ru
search domen.ru

Предполагается, что 214.193.251.151 - ip-адрес dns-провайдера (судя по строке GATEWAY=214.193.251.151 в /etc/sysconfig/network-scripts/ifcfg-eth0).

josephson ★★
()

угу, вписал, народ, а надо ли DNS сервер отдельно на моем "прокси" настраивать?

кстати, очень даже ничего прокси получился на одних iptables, nmap  с другой машины всего 4-ре порта нашел :))

[root@www /root]# nmap tv.domen.ru

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on tv.domen.ru (214.193.251.152):
(The 1519 ports scanned but not shown below are in state: filtered)
Port       State       Service
21/tcp     open        ftp
22/tcp     open        ssh
80/tcp     open        http
113/tcp    closed      auth

Nmap run completed -- 1 IP address (1 host up) scanned in 151 seconds
[root@www /root]#

еу, я теперь линухадмин умеющий поддерживать локалку и 
многие сетевые службы ЙЕС!!! фсе, теперь фсе просто круто :)))

anonymous
()

2josephson thanks, вписал... у меня там до твоего постиннга были только такие строчки:

search domen.ru nameserver 214.193.251.151

кстати, когда в настройках виндовой тачки пишешь внешний dns провайдера, то картинки в эксплорере вообще не загружаются, странички по имени грузятся, но без единой картинки. если только укажешь мышкой на картинке "показать изображение" - тогда отобразится. Это что, фича html такая, что методом GET только страницы передаются? А когда в странице картинки еще есть, то они не GET а как-то еще доставляются? Ведь яж картинки то не вызывал... йо-хо...

И еще, из всего этого получается, что локальную сеть можно настроить, используя только одни iptables ??? гыгыгыгы :o)))))))))))))))

anonymous
()

:))))))))))) Не знаю, как там у тебя с гы-гы, но у всех, кто это читал, гы-гы наверное было ничего-так :)

На твоем месте я бы свой IP не светил. Тут столько отморозков, что может и плохо потом быть.

Нельзя настроить локальную сеть, используя одну iptables.

Для того, чтобы твои юзеры ходили в инет нужно, чтобы у них имелся шлюз и они знали свой DNS. Сам шлюз должен уметь маршрутизировать пакеты локальным пользователям, обычно для этого подримают нат, но это не программа, на способ маршрутизации, что-ли - Network Address Transtalion. Это когда шлюз преобразует запросы клиентов так, как еслы бы они исходили от него и посылает в Инет. А потом перенаправляет пришедшие ему ответы клиенту. Из ната у тебя в конфиге, только последняя строчка.

DNS нужно настроить или у себя на сервере, или прописать в /etc/resolv.conf DNS провайдера.

И не называй свой шлюз прокси-сервером. Это не совсем точно - почитай на squid.opennet.ru

fagot ★★★★★
()

А ты на других тачках пропиши свой сервак как шлюз - глядишь и картинки появятся.

jackill ★★★★★
()

Кратко говоря, товарисчь анонимус, почитайте how-to под названием "кэширующий ДНС" и жить станет намного легче.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.