В данном мануале используется уже установленная система Ubuntu Server 10.04 LTS.
Используются 2 сетевые карты eth0 и eth1, нулевая смотрит в провайдера, а первая в нашу подсеть.
Используемый фаервол: iptables.
Для новичков: заходим в систему под root и делаем все.
1) Нстаиваем сеть, eth0 и eth1.
Открываем файл настройки сети
Цитата:
~$ nano /etc/network/interfaces
|
ниже текста который там есть, вписываем:
Цитата:
# Local TeNeT
auto eth0
iface eth0 inet dhcp
# Local Home
auto eth1
iface eth1 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
|
Сохраняем и выходим из редактора
2) Настраиваем PPPoE соединение
далее делаем все пошагово вроде нечего сложного нет, вводим логин и пароль вашего интернет соединеия, а в конце нажимаем yes.
3) Перезагружем сервер
4) Проверяем наличие интернета
Если ответы идут как написано ниже, значит интернет есть.
Цитата:
PING google.com (74.125.87.105) 56(84) bytes of data.
64 bytes from hb-in-f105.1e100.net (74.125.87.105): icmp_seq=1 ttl=54 time=35.8 ms
64 bytes from hb-in-f105.1e100.net (74.125.87.105): icmp_seq=2 ttl=54 time=35.2 ms
64 bytes from hb-in-f105.1e100.net (74.125.87.105): icmp_seq=3 ttl=54 time=35.4 ms
64 bytes from hb-in-f105.1e100.net (74.125.87.105): icmp_seq=4 ttl=54 time=35.9 ms
64 bytes from hb-in-f105.1e100.net (74.125.87.105): icmp_seq=5 ttl=54 time=35.2 ms
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 35.247/35.554/35.979/0.298 ms
|
5) Щитаем что у нас уже интернет работает, обновляем список репозитарий
6) Устанавливаем DNS сервер
Цитата:
~$ apt-get install dnsmasq
|
после установки он тут-же запустится
7) Настраиваем firewall, создадим скрипт
туда вписываем правила со своими настройками, оно представлено ниже,
Код:
#!/bin/sh
## Для удобства объявим переменные ##
# Переменные инетрнет
INET_IFACE="ppp0"
# Переменные сети eth1
LAN_IFACE_1="eth1"
LAN_IP_RANGE="192.168.0.0/24"
LAN_BROADCAST="192.168.0.255"
# Переменные lo интерфейса
LO_IFACE="lo"
LO_IP="127.0.0.1"
# Переменная чтоб постоянно не писать iptables ))
cmd="/sbin/iptables"
# Разрешаем делать транзацию между сервером
echo "1" > /proc/sys/net/ipv4/ip_forward
# Удаляем все правила
$cmd -F
$cmd -t nat -F
# Устанавливаем стндартные политики для фильтра
$cmd -P INPUT DROP
$cmd -P OUTPUT ACCEPT
$cmd -P FORWARD ACCEPT
# Устанавливаем стндартные политики для таблицы NAT
$cmd -t nat -P PREROUTING ACCEPT
$cmd -t nat -P POSTROUTING ACCEPT
$cmd -t nat -P OUTPUT ACCEPT
# Разрешаем ходить свободно пакетам на и с интерфейса lo
$cmd -A INPUT -i lo -p ALL -j ACCEPT
$cmd -A OUTPUT -o lo -p ALL -j ACCEPT
# Точно не скажу что делают эти правила, но по ходу отбрасывает все ошибочные пакеты
$cmd -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$cmd -A INPUT -m state --state INVALID -j DROP
# Правила хождения пакетов между интерфейсами
$cmd -A FORWARD -p ALL -i $LAN_IFACE_1 -j ACCEPT
$cmd -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$cmd -A FORWARD -s $LAN_IP_RANGE -i $LAN_IFACE_1 -o $INET_IFACE -j ACCEPT
# Основное правило NAT, для доступа в интернет сетевым компьютерам
$cmd -t nat -A POSTROUTING -s $LAN_IP_RANGE -j MASQUERADE
# Для того чтоб можно быо раздавать в торренте
$cmd -t nat -A PREROUTING -p tcp --dport 6888 -j DNAT --to 192.168.0.2:6888
# Разрешаем ходить пакетам между интерфесом ppp0
$cmd -A FORWARD -i ppp0 -j ACCEPT
# На всякий пожарный случай откроем 53 порт DNS сервера для нашей подсети eth1
$cmd -A INPUT -i eth1 -p UDP --dport 53 -j ACCEPT
# Также откроем все соединения с нашей подсетью
$cmd -A INPUT -p ALL -i eth1 -j ACCEPT
$cmd -A OUTPUT -p ALL -o eth1 -j ACCEPT
## Внутрение ресурсы TeNeT, прокидываем на сеть чтоб не грузить внешний трафик ##
# Сайт статистики (stats.tenet.ua)
$cmd -t nat -A POSTROUTING -o eth0 -s $LAN_IP_RANGE -d 195.138.80.24 -j MASQUERADE
# Сайт тенета (tenet.ua)
$cmd -t nat -A POSTROUTING -o eth0 -s $LAN_IP_RANGE -d 195.138.80.40 -j MASQUERADE
# Фтп архив тенета (fp.tenet.ua)
$cmd -t nat -A POSTROUTING -o eth0 -s $LAN_IP_RANGE -d 195.138.78.69 -j MASQUERADE
# Разрешаем ходить трафику между интерфейсом eth0
$cmd -A FORWARD -i eth0 -j ACCEPT
# END Сохраняем и выходим из редактора
Фаервол был написан по типу закрыто все, открыто то что нужно, для постоянно внешнего ip и для динамического.
8) Даем право на запуск в системе файла firewall.sh
Цитата:
~$ chmod +x /etc/firewall.sh
|
9) Добавляем наш фаервол в автозагрузку
вписываем выше слова "exit 0"
Сохраняем и выходим из редактора
Перезагружаем сервер.
Вроде все должно работать, если есть ошибки то поправьте меня.
Настройки сети для клиентских компьютеров
Ваш диапазон ip от 192.168.0.2 до 192.168.0.254
Маска сети: 255.255.255.0
Основной шлюз: 192.168.0.1
Основной DNS сервер: 192.168.0.1
К сведению если вы планируете подключиь более 100 компьютеров то в
качестве DNS сервера лучше использовать BIND9 или PowerDNS по ним
документации в интернете полным полно.
Хотите смотреть TeNeT IP-TV тогда гугл в руки, и ключь для поиска
"igmpproxy" его надо установить и настроить, на форуме это уже
обсуждалось и не раз.
P/s
Русская документация по iptables _http://www.opennet.ru/docs/RUS/iptables/
*********************************************************
про настройку dhcp в dnsmasq пару слов напиши, так вроде кошерно.
только INET_IP="ваш внешний ip" не совсем гуд.
я бы сразу заменил чтобы сделать универсальный скрипт для тех у кого постоянный и динамический.
разницы никакой, ни по удобству, ни по секурности, ни по кошерности.
меняем
$cmd -t nat -A POSTROUTING -s $LAN_IP_RANGE -o $INET_IFACE -j SNAT --to-source $INET_IP
на
$cmd -t nat -A POSTROUTING -s $LAN_IP_RANGE -j MASQUERADE
и
$cmd -t nat -A PREROUTING -p tcp -d $INET_IP --dport 6888 -j DNAT --to-destination 192.168.0.2:6888
на
$cmd -t nat -A PREROUTING -p tcp --dport 6888 -j DNAT --to 192.168.0.2:6888
и убираем $INET_IP нафиг с пляжа
ЗЫ
Цитата:
## Внутрение ресурсы TeNeT, прокидываем на сеть чтоб не грузить внешний трафик ##
|
лишнее, они и так по дефолту на eth0 ходят.
смотри route -n
ЗЫЫ
порт торрента оставил бы по умолчанию 6881.
так и клиент не надо перенастраивать.
|