Есть комп FreeBSD_8+3g modem(работает) Нужно открыть доступ в инет для 3 WinXP.
ppp.conf:
Код: Выделить всё
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
enable dns
megafon:
set device /dev/cuaU0.0
set speed 460800
set dial "\"\" \
AT OK \
AT OK \
ATS0=0 OK \
AT OK \
AT&FE0V1X1&D2&C1S0=0 OK \
AT OK \
AT+CGDCONT=1,\\\"IP\\\",\\\"internet\\\" OK \
ATDT*99# CONNECT"
set login
set authname "mobile"
set authkey "internet"
disable ipv6cp
disable pap
disable chap
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR
Собрал ядро:
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
Код: Выделить всё
hostname=bsd.ooo.loc
ifconfig_sk0 = " inet 192.168.0.6 netmask 255.255.255.0"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="providername"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/natd.conf"
firewall_enable="YES"
firewall_script="/etc/my.firewall"
Код: Выделить всё
#!/bin/sh
#########################
# FreeBSD firewall script
#########################
# Основные переменные
# -------------------
# Путь к команде ipfw в системе
# Обычно всегда без изменений
# Совет: не убирайте "-q", если
# работаете удаленно по ssh
fw="/sbin/ipfw -q"
# Внутренний сетевой интерфейс
inif="sk0"
# Внешний сетевой интерфейс
outif="tun0"
# Локальный IP адрес сервера
inip="192.168.0.6"
# IP адрес, получаемый от провайдера
# после иннициализации PPP соединения
outip="10.0.0.2"
# Адресация локальной сети
innet="192.168.0.0/24"
# IP адрес в локальной, на который
# проброшен порт RDP
admin="192.168.0.1"
#
##### Начнем-с... #####
# Сброс всех правил
${fw} -f flush
# Описываем таблицы (предварительно,
# сбрасывая их, чтобы не повторялись),
# в которых задаем список хостов/сетей:
# - для доступа по SSH
${fw} -f table 0 flush
${fw} table 0 add 193.391.193.391
${fw} table 0 add 193.391.193.394
${fw} table 0 add 193.391.193.396
# - для доступа по FTP
${fw} -f table 1 flush
${fw} table 1 add 154.451.154.451
${fw} table 1 add 154.451.154.452
${fw} table 1 add 154.451.154.453
# - для доступа по RDP к той машине,
# на которую проброшен порт RDP
${fw} -f table 2 flush
${fw} table 2 add 142.241.143.341
${fw} table 2 add 142.241.143.343
#
##### Установки для localhost'а ####
${fw} add allow all from any to any via lo0
# Два нижеследующих правила - классика.
# Потому я тоже их сюда вставляю.
# Работают может быть только в одном случае:
# "ping -S 127.0.0.1 XXX.XXX.XXX.XXX".
# При каких условиях еще можно увидеть их
# срабатывание, я, честно говоря, не представляю.
${fw} add deny log all from any to 127.0.0.0/8
${fw} add deny log all from 127.0.0.0/8 to any
# Далее, создаем похожие классические запреты,
# при этом фиксируем все совпадения в лог-файле:
# - запрещаем автоконфигуренную сеть
# (адрес которой, обычно присваивает машина
# сама себе, если ей не задать настройки вручную,
# и не включить в сети DHCP сервер)
${fw} add deny log ip from any to 169.254.0.0/16 in via ${outif}
# - запрещаем частные сети на внешнем интерфейсе
${fw} add deny log ip from any to 0.0.0.0/8 in via ${outif}
${fw} add deny log ip from any to 192.168.0.0/16 in via ${outif}
${fw} add deny log ip from any to 172.16.0.0/12 in via ${outif}
${fw} add deny log ip from any to 10.0.0.0/8 in via ${outif}
# - запрещаем мультикаст запросы на внешнем интерфейсе
${fw} add deny log ip from any to 240.0.0.0/4 in via ${outif}
# - запрещаем фрагментированные ICMP запросы -
# иногда выручает от некоторых видов атак
${fw} add deny log icmp from any to any frag
# - запрещаем мультикастовые ICMP запросы на внешнем интерфейсе
${fw} add deny log icmp from any to 255.255.255.255 in via ${outif}
${fw} add deny log icmp from any to 255.255.255.255 out via ${outif}
#
##### Запускаем NAT ####
${fw} add divert natd all from ${innet} to any out via ${outif}
${fw} add divert natd all from any to ${outip} in via ${outif}
#
# Разрешаем первым делом все уже установленные соединения
${fw} add allow tcp from any to any via ${outif} established
# Разрешаем нашему серверу устанавливать
# tcp соединения в любом направлении
${fw} add allow tcp from ${inip},${outip} to any out xmit ${outif} setup
# Разрешаем трафик из локальной сети на
# внутреннем интерфейсе
${fw} add allow all from ${innet} to any out via ${inif}
${fw} add allow all from any to ${innet} in via ${inif}
# Разрешаем только правильные ICMP запросы
${fw} add allow icmp from any to any icmptypes 0,3,8,11
# Посылаем ответ RESET на попытку получить информацию
# от сервиса идентификации
${fw} add reset log tcp from any to any 113 in recv ${outif}
#
##### Правила для UDP протокола ####
#
# - для сервера
# Разрешаем все исходящие UDP запросы с самого сервера
# Без этого не работают такие команды как traceroute
# Хотя, как вариант, можно обойтись и без этого если
# использовать traceroute -P icmp
${fw} add allow udp from ${outip} to any out via ${outif}
# Разрешаем входящие DNS запросы к нашему DNS серверу
# если конечно таковой испольуется на этой машине.
${fw} add allow udp from any to ${outip} 53 in via ${outif}
# Разрешаем ответы от DNS серверов на запросы
# от нашего хоста.
${fw} add allow udp from any 53 to ${outip} in via ${outif}
# Разрешаем ответы от серверов времени на запросы
# от нашего хоста
${fw} add allow udp from any 123 to ${outip} in via ${outif}
#
# - для локальной сети
# Разрешаем DNS запросы/ответы для всей сети
${fw} add allow udp from ${innet} to any 53
${fw} add allow udp from any 53 to ${innet}
# Разрешаем запросы/ответы к серверам времени для всей сети
${fw} add allow udp from ${innet} to any 123
${fw} add allow udp from any 123 to ${innet}
#
# Если у нас на маршрутизаторе запущены
# определенные сервисы, прописываем правила
# для доступа к ним с внешнего мира
# - разрешаем tcp соединения к DNS серверу -
# данное правило добавлять не нужно, если на
# Вашем DNS сервере нет какой-либо зоны, которую
# он должен отдавать другим (вторичным) DNS.
# Другими словами, данное правило необходимо,
# для того, чтобы не было проблем с запросом dig AXFR
${fw} add allow tcp from any to ${outip} 53 in via ${outif} setup
# - разрешаем доступ к WWW серверу (если он конечно есть)
${fw} add allow tcp from any to ${outip} 80 in via ${outif} setup
# - разрешаем "активный" FTP доступ к серверу,
# но только для хостов, внесенных в table(1)
${fw} add allow tcp from table\(1\) to ${outip} 20,21 in via ${outif} setup
# - разрешаем "пассивный" FTP доступ
# но только для хостов, внесенных в table(1)
${fw} add allow tcp from table\(1\) to ${outip} 49152-65535 via ${outif}
# - разрешаем доступ к SMTP серверу,
# естественно, если он у нас используется
${fw} add allow tcp from any to ${outip} 25 in via ${outif} setup
# - разрешаем SSH доступ к серверу, но
# только для хостов, внесенных в table(0)
${fw} add allow tcp from table\(0\) to ${outip} 555 in via ${outif} setup
#
##### Правила для проброшенных портов ####
# Разрешаем доступ по RDP на машину 192.168.0.100,
# но только для хостов, внесенных к table(2)
${fw} add allow tcp from table\(2\) 1024-65535 to ${admin} 3389 in via ${outip}
${fw} add allow tcp from table\(2\) 1024-65535 to ${admin} 3389 out via ${inif}
${fw} add allow tcp from ${admin} 3389 to table\(2\) 1024-65535 in via ${inif}
${fw} add allow tcp from ${admin} 3389 to table\(2\) 1024-65535 out via ${outif}
#
##### И наконец, пропускаем в Интернет локальную сеть #####
${fw} add allow tcp from ${innet} to any in via ${inif}
${fw} add allow tcp from any to ${innet} out via ${inif}
# Правило, для работы "активного" FTP доступа из локальной сети
${fw} add allow tcp from any 20 to ${innet} in via ${outif}
##### Последнее правило, для занесения в журнал
##### всех остальных (обычно запрещенных) пакетов.
${fw} add 65534 deny log all from any to any
##### END #####
Код: Выделить всё
/home/nrv/>>ping ya.ru
ping: cannot resolve ya.ru: Host name lookup failure
Код: Выделить всё
/home/nrv/>>natd
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
natd: instance default: aliasing address not given
Код: Выделить всё
/home/nrv/>>netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGS 0 212 tun0
10.0.0.2 link#4 UHS 0 0 tun0
10.211.208.81 link#4 UHS 0 0 lo0
127.0.0.1 link#3 UH 0 8 lo0
192.168.0.0/24 link#1 U 1 2917 sk0
192.168.0.6 link#1 UHS 0 8 lo0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#3 U lo0
fe80::1%lo0 link#3 UHS lo0
ff01:3::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
Код: Выделить всё
/etc/ppp/>>ifconfig
sk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
ether 00:11:2f:2b:29:f8
inet 192.168.0.6 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
rl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:a0:00:05:aa:7e
media: Ethernet autoselect
status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
inet 10.211.208.81 --> 10.0.0.2 netmask 0xffffff00
Opened by PID 357
Код: Выделить всё
domain otpo.loc
nameserver 10.78.72.44
nameserver 10.78.72.20
Подскажите чайнику, в чем тут может быть дело и как заставить работать?
P.S. Неодходим ли параметр default_router и какой ip указывать в my_firewall в качестве адреса получаемого от провайдера- он ведь постоянно меняется