mmaxsim.ucoz.ua
Меню сайта
Категории раздела
Ubuntu [69]
Ubuntu
DLE [7]
баги. фиксы и тд
Windows [6]
eyeOS [3]
FreeBSD [5]
FreeBSD
Linux [0]
VMware ESXi [7]
Amazon kindle [0]
Debian [4]
Trimax TR-2012HD [1]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2010 » Август » 27 » Настройка Ubuntu Server в качестве шлюза в интернет
13:39
Настройка Ubuntu Server в качестве шлюза в интернет
В данном мануале используется уже установленная система 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 соединение
Цитата:
~$ pppoeconf
далее делаем все пошагово вроде нечего сложного нет, вводим логин и пароль вашего интернет соединеия, а в конце нажимаем yes.

3) Перезагружем сервер
Цитата:
~$ reboot
4) Проверяем наличие интернета
Цитата:
~$ ping google.com -c 5
Если ответы идут как написано ниже, значит интернет есть.
Цитата:
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) Щитаем что у нас уже интернет работает, обновляем список репозитарий
Цитата:
~$ apt-get update
6) Устанавливаем DNS сервер
Цитата:
~$ apt-get install dnsmasq
после установки он тут-же запустится

7) Настраиваем firewall, создадим скрипт
Цитата:
~$ nano /etc/firewall.sh
туда вписываем правила со своими настройками, оно представлено ниже,

Код:
#!/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) Добавляем наш фаервол в автозагрузку
Цитата:
~$ nano /etc/rc.local
вписываем выше слова "exit 0"
Цитата:
/etc/firewall.sh
Сохраняем и выходим из редактора

Перезагружаем сервер.

Вроде все должно работать, если есть ошибки то поправьте меня.

Настройки сети для клиентских компьютеров

Ваш диапазон 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.
так и клиент не надо перенастраивать.



Категория: Ubuntu | Просмотров: 2738 | Добавил: Maxs | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Календарь
«  Август 2010  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024