В данной заметке пойдет речь о частном случае настройки PPPoE - когда необходимо установить соединение на определенный PPPoE концентратор (в том случае когда в сети имеется несколько концентраторов), без использования графических утилит. Для начала установим необходимые пакеты: sudo aptitude install pppoe ppp Далее выполним поиск имеющихся PPPoE концентраторов в сети: sudo pppoe-discovery Access-Concentrator: ac1 Got a cookie: 00 b0 f3 f8 77 fb 26 64 c8 5e 48 80 42 2e 5b a3 AC-Ethernet-Address: 88:43:e1:36:d9:00 Access-Concentrator: ac2 Got a cookie: c2 9c 3c db 26 06 89 f6 06 7e a0 06 ff 8a f8 17 9a 07 00 00 AC-Ethernet-Address: d8:d3:85:e3:85:75 ... В моем случае видим два концентратора с именами ac1 и ac2. Предположим, что необходимо постоянно подключаться к концентратору ac2. Как это сделать? Создаем файл /etc/ppp/peers/pppoe, следующего содержания: ipcp-accept-local ipcp-accept-remote lcp-echo-interval 30 lcp-echo-failure 5 noipdefault usepeerdns defaultroute replacedefaultroute noccp noaccomp noauth persist mtu 1492 hide-password connect /bin/true pty "pppoe -I eth0 -C ac2" # <-- Тут имя вашего концентратора user ПОЛЬЗОВАТЕЛЬ # <-- Тут ваш логин password ПАРОЛЬ # <-- Тут ваш пароль После создания файла можно пробовать устанавливать соединение, выполнив в командной строке: sudo pon pppoe Смотрим наличие интерфейса ppp0 в выводе команды ifconfig. Вывод команды приблизительно такой: sudo ifconfig ppp0 Link encap:Point-to-Point Protocol inet addr:172.22.51.19 P-t-P:94.70.254.21 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1472 Metric:1 RX packets:29890 errors:0 dropped:0 overruns:0 frame:0 TX packets:26304 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:17850149 (17.0 MiB) TX bytes:1835091 (1.7 MiB) ... Если интерфейса ppp0 в выводе команды ifconfig нет, смотрим логи: sudo plog или sudo grep ppp /var/log/syslog Для автоматического создания PPPoE подключения при загрузке компьютера можно прописать следующие строки в /etc/network/interfaces: auto ppp0 iface ppp0 inet ppp pre-up /sbin/ifconfig eth0 up provider pppoe Для отключения соединения PPPoE достаточно выполнить следующую команду: sudo poff pppoe Если PPPoE соединение используется для организации сервиса NAT в сети, то машины за этим NATом должны иметь MTU равный 1412. Иначе возможна ситуация когда, например, некоторые www ресурсы будут недоступны пользователям за NATом. Чтобы этого избежать можно "выравнивать" MTU при помощи iptables. Загрузку правила для iptables сделаем автоматически, при установке PPPoE соединения. А при отключении соединения будем удалять это правило из iptables. Для этого создадим два файла. Для загрузки правила создадим файл /etc/ppp/ip-up.d/pppoemtu следующего содержания: #! /bin/sh PATH=/sbin:/bin:/usr/bin set -e if [ -n "$PPP_IFACE" ]; then iptables -t mangle -o "$PPP_IFACE" --insert FORWARD 1 -p tcp \ --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu fi Для удаления правила создадим файл /etc/ppp/ip-down.d/pppoemtu следующего содержания: #! /bin/sh PATH=/sbin:/bin:/usr/bin set -e if [ -n "$PPP_IFACE" ]; then iptables -t mangle -L -n -v --line-numbers | \ grep "TCPMSS.*$PPP_IFACE.*clamp" | cut -f1 -d " " | sort -r | xargs -n1 -r iptables -t mangle -D FORWARD fi Чтобы правила работали надо сделать файлы исполняемыми: sudo chmod 755 /etc/ppp/ip-up.d/pppoemtu /etc/ppp/ip-down.d/pppoemtu Проверить наличие правила в iptables после установки соединения можно выполнив следующую команду: sudo iptables -L -n -v -t mangle Если нет необходимости использовать определенный PPPoE концентратор, то надо просто в файле /etc/ppp/peers/pppoe заменить строку pty "pppoe -I eth0 -C ac2" на pty "pppoe -I eth0".
не в любой инсталляции есть то, во что мышкой можно тыкать
Почему просто не удалить тоже правило? - скрипт будет отличаться практически одним символом (-I vs -D)
а по остальному: $ ls -l /usr/sbin/pppd -rwsr-xr-- 1 root dip 277352 2009-02-20 20:25 /usr/sbin/pppd $ grep dip /etc/group dip:x:30:username $ а про plog вообще в мане написано:
Note: the plog script can only be used by root or another system admin‐istrator in group "adm", due to security reasons
Ага, и кроме того "просто добавь путь":
$ /sbin/ifconfig ppp0 ppp0: error fetching interface information: Device not found $ /sbin/ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2341306 errors:0 dropped:0 overruns:0 frame:0 TX packets:2341306 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2061096919 (1.9 GiB) TX bytes:2061096919 (1.9 GiB) $ _
>-rwsr-xr-- 1 root dip 277352 2009-02-20 20:25 /usr/sbin/pppd >dip:x:30:username >system admin‐istrator in group "adm", due to security reasons
Да-да-да, помню дома для pppoe какие-то группы "давал" пользователям... Но :( не помню, какие.
И вообще: sudo на каждый чих -- это явный Убунту-вэй и буквы "Debian" в заголовке как-то лишние, сдаётся мне. So much for "пишут правильно Debian-way инструкции"---