Различия

Показаны различия между двумя версиями страницы.


wiki:articles:3g141 [14/01/2014 16:56] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +^**3G в SlackWare 14.1 при помощи vwdial**^
  
 +[[http://wiki.slackware.su/wiki:articles:smini | В одной из прошлых статей]] я описывал минимальную конфигурацию //SlackWare 14.1// для работы в качестве серверной системы. Сегодня изложу свой опыт настройки //3G// интернета от Мегафон с передачей его в локальную сеть. И, как правило, нам будет необходим автозапуск всего этого дела.
 +
 +=====Установка зависимостей=====
 +
 +Для функционирования системы нам понадобятся следующие пакеты из дистрибутива //SlackWare 14.1// и зависимости к ним:
 +
 +<code>a/usb_modeswitch
 +l/libnl3
 +l/libpcap
 +l/libusb
 +l/libusb-compat
 +n/iptables
 +n/ppp
 +</code>
 +Следующие пакеты необходимо будет собрать самостоятельно, я делал это на отдельной машине:
 +
 +[[http://slackbuilds.org/repository/14.1/libraries/wvstreams/ | wvstreams]]
 +[[http://slackbuilds.org/repository/14.1/network/wvdial/ | wvdial]]
 +
 +Устанавливаем все в следующей последовательности:
 +
 +  - l/*
 +  - a/usb_modeswitch
 +  - n/iptables
 +  - n/ppp
 +  - wvstreams
 +  - wvdial
 +
 +
 +=====Настройка системы=====
 +
 +====Запуск wvdial====
 +
 +===Конфигурация wvdial===
 +<code>
 +[Dialer Defaults]
 +Modem = /dev/ttyUSB0
 +Init1 = ATZ
 +Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
 +Stupid Mode = yes
 +Modem Type = Analog Modem
 +Phone = *99#
 +New PPPD = yes
 +ISDN = 0
 +Username = gdata
 +Password = gdata
 +Baud = 9600
 +</code>
 +<note tip>Конфигурация для сети Мегафон</note>
 +===Сценарий запуска /etc/rc.d/rc.wvdial===
 +<code>
 +#! /bin/sh
 +### BEGIN INIT INFO
 +# Required-Start:
 +# Required-Stop:
 +# Default-Start: 2 3 4 5
 +# Default-Stop: 0 1 6
 +# Provides:          wvdial
 +# Short-Description: wvdial boot-script
 +# Description:       This script establish ppp-connection via wvdial
 +### END INIT INFO
 + 
 +# PATH should only include /usr/* if it runs after the mountnfs.sh script
 +PATH=/usr/bin
 +DESC="wvdial daemon connection"
 +NAME=wvdial
 +DAEMON=/usr/bin/$NAME
 +DAEMON_ARGS="--options args"
 +PIDFILE=/var/run/$NAME.pid
 +SCRIPTNAME=/etc/rc.d/rc.$NAME
 + 
 +# Exit if the package is not installed
 +[ -x "$DAEMON" ] || exit 0
 + 
 +case "$1" in
 +  start)
 +   /usr/bin/wvdial > /dev/null 2>&1 &
 +   ;;
 +  stop)
 +   killall wvdial
 +   killall pppd
 +   ;;
 +  *)
 +   echo "Usage: $SCRIPTNAME {start|stop}" >&2
 +   exit 3
 +   ;;
 +esac
 + 
 +exit 0
 +</code>
 +
 +===Делаем сценарий исполняемым===
 +
 +<code>chmod 755 /etc/rc.d/rc.wvdial</code>
 +
 +===Прописываем скрипт в автозапуск. Для этого в /etc/rc.d/rc.inet2 добавляем строки===
 +<code>
 +if [ -x /etc/rc.d/rc.wvdial ]; then
 +  . /etc/rc.d/rc.wvdial start
 +fi</code>
 +====Включение маршрутизации====
 +
 +===Включаем проброс пакетов между интерфейсами===
 +<code>
 +сhmod 775 /etc/rc.d/rc.ip_forward
 +</code>
 +
 +====Настройка ppp====
 +
 +Задача: после поднятия интерфейса //ppp0// (мегафоновское подключение) активировать правила //iptables// и организовать настройки ДНС.
 +
 +===Создаем сценарий /etc/ppp/ip-up следующего содержания===
 +
 +<code>
 +#!/bin/sh
 + 
 +/usr/sbin/iptables -F
 +/usr/sbin/iptables -X
 +/usr/sbin/iptables -t nat -F
 +/usr/sbin/iptables -t nat -X
 +/usr/sbin/iptables -t mangle -F
 +/usr/sbin/iptables -t mangle -X
 + 
 +/usr/sbin/iptables -P INPUT DROP
 +/usr/sbin/iptables -P FORWARD DROP
 +/usr/sbin/iptables -P OUTPUT DROP
 + 
 +/usr/sbin/iptables -A INPUT -i lo -j ACCEPT
 +/usr/sbin/iptables -A INPUT -i eth0 -j ACCEPT
 +/usr/sbin/iptables -A OUTPUT -o lo -j ACCEPT
 +/usr/sbin/iptables -A OUTPUT -o eth0 -j ACCEPT
 + 
 +/usr/sbin/iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
 +/usr/sbin/iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 +/usr/sbin/iptables -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 +/usr/sbin/iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
 +/usr/sbin/iptables -A INPUT -m state --state INVALID -j DROP
 +/usr/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
 +/usr/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
 +/usr/sbin/iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
 +/usr/sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
 +/usr/sbin/iptables -A FORWARD -i ppp0 -o eth0 -j REJECT
 + 
 +/usr/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
 + 
 +if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
 +    rm -f /etc/ppp/resolv.prev
 +    if [ -f /etc/resolv.conf ]; then
 +        cp /etc/resolv.conf /etc/ppp/resolv.prev
 +        grep domain /etc/ppp/resolv.prev > /etc/resolv.conf
 +        grep search /etc/ppp/resolv.prev >> /etc/resolv.conf
 +        cat /etc/ppp/resolv.conf >> /etc/resolv.conf
 +    else
 +        cp /etc/ppp/resolv.conf /etc
 +    fi
 +fi
 + 
 +echo "Done!"
 +</code>
 +<note tip>192.168.0.0/24 - адреса локальной сети, куда будет раздаваться интернет. ppp0 - интерфейс модема, eth0 - локальный интерфейс сервера</note>
 +
 +===Делаем сценарий исполняемым===
 +<code>
 +chmod 755 /etc/ppp/ip-up
 +</code>
 +На клиентских машинах: IP-адрес из сети 192.168.0.0/24, шлюз - IP-адрес сервера, где работает данная система. В качестве DNS-серверов - либо Мегафоновские (берем из /etc/resolv.conf во время поднятого ppp0) либо - от Яндекса или Гугля.
 +\\
 +\\
 +Автор: [[http://wiki.slackware.su/wiki:user:pilgrim| pilgrim]]
Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:3g141 (generated for current page)