Пользователь |
Сообщение: Debian+squid+shaper+nat+firewall (Тема#28272) |
-SImoN-
капитан
С нами с 26.04.07
Посты: 854
|
Вопрос к знатокам.
Нужно настроить на стареньком компе роутер для раздачи инета в локалку.
В сети пока 12 компов, для разных компов нужно раздавать разную скорость инета.
Еще нужен кеширующий прокси и перенаправление портов. Ну и конечно фаервол ))
На компе две сетевые, установлен Debian и Suiqd. Как это все реализовать?
Если кто-то может помочь, можно связаться через аську, так будет быстрее ))
ICQ # 445339402
|
|
|
Tester_1
генералиссимус
Возраст: 48
: Kovel,Ukraine
С нами с 10.11.03
Посты: 13415
|
mikrotik
пошагового хэлпа первоначальной настройки в инете навалом
|
|
|
Slotos
подполковник
Возраст: 38
: nirvana
С нами с 17.10.02
Посты: 4025
|
|
|
Tester_1
генералиссимус
Возраст: 48
: Kovel,Ukraine
С нами с 10.11.03
Посты: 13415
|
Ну кагбэ микротик у меня пашет на п-133 128рам, режет полосы для 30 машин, и настраивается при достаточной сноровке за 10-15 минут.
|
|
|
Slotos
подполковник
Возраст: 38
: nirvana
С нами с 17.10.02
Посты: 4025
|
Ну какгбэ это не эксклюзивная его особенность.
|
|
|
Tester_1
генералиссимус
Возраст: 48
: Kovel,Ukraine
С нами с 10.11.03
Посты: 13415
|
бэбэбэ
Отредактировано Tester_1 17.06.09 23:08. Причина редактирования: Причина не указана.
|
|
|
t0rik
майор
Возраст: 45
: /etc/passwd
С нами с 07.03.03
Посты: 1291
|
есчо езь: http://pfsense.org/
управляется вебмордой или ssh, все вышеперечисленное умеет + VPN/PPTP/IpSec, могёт жить на флешке
Отредактировано t0rik 18.06.09 09:13. Причина редактирования: Причина не указана.
|
|
|
-SImoN-
капитан
С нами с 26.04.07
Посты: 854
|
ща посмотрю все ссылочки, а потом скажу, подходит мне что то или нет
|
|
|
Tester_1
генералиссимус
Возраст: 48
: Kovel,Ukraine
С нами с 10.11.03
Посты: 13415
|
Не ждал, не гадал - вот и мне приспичило.
Настройка дебиана,
раздача инета
1. ставим дебиан, когда надо выбирать пакеты - ничего не отмечаем.
2. Прописываем в процессе настройки сетевой, смотрящей в инет. После настройки проверяем работу
ping google.com
если есть отзыв - всьо гут, если нет - ковыряем нижеследующее пока инет не появится
nano /etc/network/interfaces
Code:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.10.242
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.111.111 192.168.10.1
allow-hotplug eth1
iface eth1 inet static
address 172.16.200.1
netmask 255.255.255.0
network 172.16.200.0
broadcast 172.16.200.255
nano /etc/resolv.conf # днс провайдера
Code:
nameserver 192.168.111.111
nameserver 192.168.10.1
3. Если в процессе установки накосячили с настройками сетевой и после первого запуска (шаг 2) инета не было - настраиваем необходимые репозитарии:
nano /etc/apt/sources.list
apt-get update
4. ставим пакеты:
apt-get install mc dnsmasq iproute less openssh-server openssh-client
5. настраиваем NAT:
nano /root/nat_onlyCode:
#!/bin/sh
INET_IP="192.168.10.242" # ip адрес инетовского интерфейса
INET_IFACE="eth0" # имя инетовского интерфейса
LAN_IP="172.16.200.1"
LAN_IP_RANGE="172.16.200.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 ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -t nat -F
$IPTABLES -F
$IPTABLES -X
# раскоментируйте след. строки если применяется squid
#$IPTABLES -A INPUT -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 3128 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -s $LAN_IP_RANGE -d $LAN_IP -p tcp --destination-port 80 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -s $LAN_IP_RANGE -p tcp --destination-port 80 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP #при статическом IP
#$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE # при динамbческом ip (оставьте расскоментированной только одну строку из двух)
# Проброс сетевого трафика с $LAN_IFACE на интернет-интерфейс $INET_IFACE
$IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -m state --state NEW,ESTABLISHED -j ACCEPT
# Разрешаем доступ к SSH серверу
$IPTABLES -A INPUT --protocol tcp --dport 22 -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT --protocol tcp --dport 22 -j DROP
# Разрешаем доступ к HTTP серверу на роутере
#$IPTABLES -A INPUT --protocol tcp --dport 80 -s $LAN_IP_RANGE -j ACCEPT
#$IPTABLES -A INPUT --protocol tcp --dport 80 -j DROP
# Блокируем все прочие попытки доступа на $ INET_IFACE
$IPTABLES -A INPUT -i $INET_IFACE -m state --state NEW,INVALID -j DROP
$IPTABLES -A FORWARD -i $INET_IFACE -m state --state NEW,INVALID -j DROP
7. правим rc.local
nano /etc/rc.local
найти
exit 0
и перед ним добавить строчку
/root/nat_only
8. если надо назначать локальные адреса через dhcp, правим /etc/dnsmasq.conf:
nano /etc/dnsmasq.conf
interface=eth1
dhcp-range=172.16.200.10,172.16.200.150,255.255.255.0,12h
Перегружаем.
|
|
|
Slotos
подполковник
Возраст: 38
: nirvana
С нами с 17.10.02
Посты: 4025
|
7. правим rc.local
Это, кстати, то, чем меня Дебиан просто угнетает. Есть куда более качественные механизмы менеджмента автозапуска сервисов, но тут выбрали тупой путь.
И iptables лучше настраивать понимая что делаешь, посему http://www.opennet.ru/docs/RUS/iptables/
Ну и лучше писать полноценные скрипты остановки/запуска, а то ещё намучаешься с iptables -F по спешке.
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
И получаем премию идиота года, no offence. Даже OUTPUT не всегда следует на ACCEPT ставить. А форвард и инпут вобще надо в отдельную цепочку с проверкой на валидность пакетов, блокировкой спама на ssh и подобные сервисы и т.д.
Default Allow работало в 80-х, и то едва. Сейчас список правил на запрет будет длиннее списка правил на разрешение на порядки. Так зачем идти по стопам антивирусов там, где этого можно избежать?
Пример скрипта, который я юзаю на одном серваке. С комментах NAT, настроенный под гостевую систему XEN с lighttpd и ftp сервером:
Code:
#!/bin/sh
IPTABLES="/sbin/iptables"
INET_IFACE="eth0"
# Иногда xen при ручно перезагрузке гостевого домена даёт лувые именя интерфейсов - предусматриваем.
#if [ $# == 1 ]; then
# LAN_IFACE="$1";
# else
# LAN_IFACE="vif1.0";
#fi
#LAN_IP=`ifconfig $LAN_IFACE |grep 'inet addr:'| sed 's/addr://' |awk '{print $2}'`
#LAN_NET="192.168.1.0/24"
INET_IP=`ifconfig $INET_IFACE |grep 'inet addr:'| sed 's/addr://' |awk '{print $2}'`
# Себе доверяем, остальных проверяем.
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Сброс правил
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F
# Удаление кастомных цепочек
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -X
# Дропаем "весёлые" пакеты.
$IPTABLES -A INPUT -m conntrack --ctstate INVALID -j DROP
$IPTABLES -A FORWARD -m conntrack --ctstate INVALID -j DROP
$IPTABLES -A OUTPUT -m conntrack --ctstate INVALID -j DROP
# Пакеты установленного соединения оставляем на совести софта, который их получает.
$IPTABLES -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# По два логина за 10 секунд с китайских и русских прокси - зло. Попросим ботов добавить нас в список тормозных серверов. Главное самому не зайти на сервак более двух раз за 2 минуты.
$IPTABLES -N SSH_RECENT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 22 -j SSH_RECENT
$IPTABLES -A SSH_RECENT -m recent --set --name SSH
$IPTABLES -A SSH_RECENT -m recent --update --seconds 120 --hitcount 3 --name SSH -j DROP
$IPTABLES -A SSH_RECENT -j ACCEPT
# Локалхост локалхосту друг товарищ и брат.
$IPTABLES -A INPUT -i lo -d 127.0.0.0/8 -j ACCEPT
# Нат, разрешение пакетам выдадим позже. Пока в FORWARD с маскировкой источника.
#$IPTABLES -t nat -A POSTROUTING -s $LAN_NET -j SNAT --to-source $INET_IP
# XEN домену мы тоже верим. Пускай балуется.
#$IPTABLES -A FORWARD -p all -i $LAN_IFACE -o $INET_IFACE -j ACCEPT
# Почта и подобные радости
$IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 143 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 995 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT
# mySQL у нас один, гостевому домену надо с ним общаться
#$IPTABLES -A INPUT -p tcp -s $LAN_NET --dport 3306 -j ACCEPT
# Разрешаем ftp доступ (passive, since active sucks by design)
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 60000:62000 -j ACCEPT
# Прокидываем фтп гостувому домену
#$IPTABLES -A PREROUTING -t nat -i eth0 -p tcp --dport 221 -j DNAT --to-destination 192.168.1.101
#$IPTABLES -A FORWARD -i eth0 -p tcp --dport 221 -j LOG --log-prefix "FTPFWD:"
#$IPTABLES -A FORWARD -i eth0 -p tcp --dport 221 -j ACCEPT
#$IPTABLES -A PREROUTING -t nat -i eth0 -p tcp --dport 6000:7000 -j DNAT --to-destination 192.168.1.101
#$IPTABLES -A FORWARD -i eth0 -p tcp --dport 6000:7000 -j LOG --log-prefix "FTPFWD:"
#$IPTABLES -A FORWARD -i eth0 -p tcp --dport 6000:7000 -j ACCEPT
И т.д.
PS: http://www.ranum.com/security/computer_security/ed...
|
|
|
Slotos
подполковник
Возраст: 38
: nirvana
С нами с 17.10.02
Посты: 4025
|
В добавок к SSH_RECENT желательно использовать screen, чтобы выполнять много задач в одном терминале. Моя строка визуализации "окон":
Добавить в /etc/screenrc (или ~/.screenrc)
Code:
caption always "%{= bw} %-Lw%{+b wK}%L> %n%f %t %{-}%+Lw %-35=%{= kw} %D %d.%m.%Y %0c %=[%H]%<"
Добавить в /etc/bash/bashrc (или ~/.bashrc)
Code:
if [ $TERM = 'screen' ] ; then
PROMPT_COMMAND='echo -ne "\033k\033\\"'
fi
Результат
|
|
|