Показаны сообщения с ярлыком шлюз. Показать все сообщения
Показаны сообщения с ярлыком шлюз. Показать все сообщения

среда, 4 июня 2014 г.

Сервер OpenVPN с аутентификацией через Radius

Настройка сервера OpenVPN с аутентификацией через Radius в Debian:
# aptitude install openvpn openvpn-auth-radius
# cat /etc/openvpn/radiusplugin.cnf
NAS-Identifier=openvpn
Service-Type=2
Framed-Protocol=1
NAS-Port-Type=5
NAS-IP-Address=10.100.10.85
OpenVPNConfig=/etc/openvpn/server.conf
subnet=255.255.255.0
overwriteccfiles=true
server
{
        # The UDP port for radius accounting.
        acctport=1815
        # The UDP port for radius authentication.
        authport=1812
        # The name or ip address of the radius server.
        name=10.100.4.100
        # How many times should the plugin send the if there is no response?
        retry=1
        # How long should the plugin wait for a response?
        wait=1
        # The shared secret.
        sharedsecret=mymegasecretkey
}
# cat /etc/openvpn/server.conf
local my_public_ip
port 443
proto tcp
dev tun
tun-mtu 1500
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key 
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
client-cert-not-required
username-as-common-name
ifconfig-pool-persist ipp.txt
push "route 10.100.0.0 255.255.0.0"
push "route 10.102.0.0 255.255.0.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/status.log 1
plugin /usr/lib/openvpn/radiusplugin.so
log-append  /var/log/openvpn/openvpn.log
verb 3

пятница, 27 декабря 2013 г.

NAT через IPIP-туннель.

Понадобилось для определенного теста сымитировать выход в интернет из другого города. В том городе имеется небольшой сервер, доступный по внутренней сети (предположим, некие VPN от провайдера, сервер и тестовая машина находятся в локальных маршрутизируемых сетях).

У сервера есть белый ip-адрес и выход в интернет, у клиента такой роскоши нет.

Сервер
IP-адрес локалки: 192.168.1.1/24
IP-адрес белый: 1.2.3.4

Клиент
IP-адрес локалки: 192.168.2.2/24
Шлюз 192.168.2.1

Решение состоит из двух шагов: Поднятие туннеля между клиентом и сервером и настройка NAT на сервере.

На сервере:
ip tun add tun0 mode ipip local 192.168.1.1 remote 192.168.2.2 ttl 255
ip l s dev tun0 up
iptables -I INPUT -p 4 -s 192.168.2.2 -j ACCEPT
iptables -I FORWARD -s 192.168.2.2 -j ACCEPT
iptables -I FORWARD -d 192.168.2.2 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.2.2 -j MASQUERADE

На клиенте:
ip tun add tun0 mode ipip local 192.168.2.2 remote 192.168.1.1 ttl 255
ip l s dev tun0 up
ip r a 192.168.1.1 via 192.168.2.1
ip r d default
ip r a default dev tun0
Надо помнить, что здесь не используется шифрование.
Forwarding должен быть включен, а rp_filter на всякий случай выключен.

понедельник, 22 апреля 2013 г.

NAT, диапазон белых адресов и ICQ

При создании NAT-сервера для большого числа пользователей естественно используется диапазон "белых" адресов. Делается просто
iptables -t nat -A POSTROUTING -s 172.16.0.0/12 -j SNAT --to-source 192.0.32.1-192.0.47.254
Но появляется проблема -- netfilter выдаёт псевдослучайный новый адрес для каждого потока, т.е. соединения типа RELATED получают адрес, отличный от адреса, который получило основное соединение. Например ICQ использует два подключения и в такой схеме не работает. Решение:
iptables -t nat -A POSTROUTING -s 172.16.0.0/12 -j SNAT --to-source 192.0.32.1-192.0.47.254 --persistent

среда, 14 сентября 2011 г.

Компьютер с двумя выходами в интернет

Компьютер с двумя выходами в интернет. На моей рабочей машине две сетевые карты - каждая смотрит в свою сеть. Сети абсолютно независымые друг от друга и в каждой сети есть шлюз с выходом в интернет. Условно назовём их 192.168.1.0/24 и 192.168.2.0/24. Маршрут по умолчанию на моей машине по ряду причин указывает на шлюз первой сети, 192.168.1.1. Однако полномочиями администратора я обладаю только во второй сети. Мне понадобилось пробросить определенный порт до моей машины. На шлюзе это сделать не сложно, однако ответ на пакет, пришедший из интернета на 192.168.2.2 уходит по маршруту по умолчанию на 192.168.1.1, где его, конечно же, не ждут.
Значит нужно заставить ядро отправлять такие пакеты туда же, откуда они и пришли. Нужно добавить новую таблицу маршрутизации (номер и название) в файл /etc/iproute2/rt_tables :
10      T1
И дать в консоли эти две команды:
# ip r a default via 192.168.2.1 table T1
# ip rule add from 192.168.2.2 table T1
Первая добавит правило в новую таблицу, а вторая заставит пакеты, пришедшие на интерфейс второй сети подчиняться этому правилу.

вторник, 29 июня 2010 г.

Обратный туннель SSH

Памятка о том, как поднять обратный туннель ssh.

Обратный туннель применяется в том случае, когда нужно попасть на машину, защищенную межсетевым экраном или находящуюся за NAT.

пятница, 11 июня 2010 г.

Аутентификация в Squid через OpenLDAP

Достаточно внести следующие изменения в /etc/squid/squid.conf
auth_param basic program /usr/lib/squid/squid_ldap_auth -v 3 -b "dc=yourcompany,dc=com" -D uid=some-user,ou=People,dc=yourcompany,dc=com  -w password -f uid=%s ldap.yourcompany.com
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
acl ldap-auth proxy_auth REQUIRED
http_access allow ldap-auth
http_access allow localhost
http_access deny all

Squid, конечно же, должен быть собран с USE-флагом ldap.

понедельник, 17 мая 2010 г.

Ограничение скорости с помощью iptables

Несмотря на наличие специальных утилит для разграничения скорости передаваемых пакетов, ограничивать скорость можно и с помощью iptables.

Для этой цели используется модуль limit. Пакеты, проходящие через правило с этим критерием будут соответствовать такому условию до тех пор, пока лимит не исчерпается.

Например:
iptables -I FORWARD -i eth0 -p tcp -s 192.0.2.12 -m limit --limit 3/hour --limit-burst 5 -j ACCEPT

Такому правилу будут соответствовать первые 5 пакетов, пришедшие из интерфейса eth0 с адреса 192.0.2.12. Каждый проходящий пакет увеличивает счетчик на единицу, пока тот не достигнет значения параметра --limit-burst. Последующие пакеты такому правилу соответствовать не будут, а перейдут к следующему в таблице правил iptables (что с ними будет потом - наше правило не волнует).

В течение следующих 20 минут (это задает параметр --limit 3/hour, что значит три раза за час уменьшить значение счетчика на единицу) ни один пакет через это правило не пройдет (не прошедшие пакеты передаются следующим правилам). По истечении заданного интервала счетчик уменьшается на единицу. Теперь правило может принять еще один пакет. Если пакет придет - счетчик снова достигнет значения limit-burst. А если не придет в течение еще 20 минут, то в дальнейшем правило сможет принять сразу два пакета, и т.д.

среда, 24 марта 2010 г.

Информация о сетевой карте

Как узнать, в каком режиме работает сетевая карта?
# mii-tool   
eth0: negotiated 1000baseT-FD flow-control, link ok
eth1: negotiated 100baseTx-FD, link ok
eth2: no autonegotiation, 10baseT-HD, link ok
eth3: no link

Можно и более подробно:
# mii-tool -v
eth0: negotiated 1000baseT-FD flow-control, link ok
product info: Yukon 88E1011 rev 3
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
eth1: negotiated 100baseTx-FD, link ok
product info: Yukon 88E1011 rev 3
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
eth2: no autonegotiation, 10baseT-HD, link ok
product info: Intel 82555 rev 4
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 10baseT-HD
eth3: no link
product info: Intel 82555 rev 4
basic mode: autonegotiation enabled
basic status: no link
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

четверг, 6 августа 2009 г.

Скрипты со шлюза

Да-да, это не gentoo и даже не linux. Так надо.
rasdial unlim login password

и вот еще:
:loop
ping -n 10 127.0.0.1
ipconfig| grep "Wireless"
if ERRORLEVEL 1 netsh interface set interface "Wireless Network Connection 2" ENABLED
goto:loop

четверг, 9 апреля 2009 г.

Скрипт на perl

Некий мой скрипт:

четверг, 2 апреля 2009 г.