ppp-соединения в Slackware

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

ppp-соединения в Slackware

Сообщение sunny1983 »

Впервые у меня такая ситуация, что к Интернету нужно подключаться через PPPoE-соединение. ppp на Slackware я ни разу не настраивал, настроил - работает, но вопрос - не слишком ли я перемудрил, может можно проще.
Я создал файл /etc/ppp/peers/rostelecom:

Код: Выделить всё

pty "/usr/sbin/pppoe -I eth0 -T 80 -U -m 1420"
defaultroute
usepeerdns
noproxyarp
mtu 1492
mru 1492
persist
hide-password
maxfail 99
name ????????

И записал пароль в /etc/ppp/chap-secrets
Затем создал симплинк /etc/ppp/peers/ppp0 на /etc/ppp/peers/rostelecom.
Затем я нашёл в скрипте /etc/rc.d/rc.M строки:

Код: Выделить всё

# Initialize the networking hardware.
if [ -x /etc/rc.d/rc.inet1 ]; then
  . /etc/rc.d/rc.inet1
fi

И заменил их на:

Код: Выделить всё

# Initialize the networking hardware.
if [ -x /etc/rc.d/rc.inet1 ]; then
  . /etc/rc.d/rc.inet1
  /usr/sbin/pppd call ppp0
  cat /etc/ppp/resolv.conf > /etc/resolv.conf
fi

Не знаю как сделать, чтобы выполнение инициализационного скрипта приостанавливалось до момента пока ppp-соединение не поднимется или пока не будет 5 неудачных попыток.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: ppp-соединения в Slackware

Сообщение Hephaestus »

sunny1983 писал(а):
27.09.2015 23:27
вопрос - не слишком ли я перемудрил, может можно проще.
Можно проще.
Есть такая штука как pppoe-setup.
Запускаете, отвечаете на вопросы.
Пропишет куда надо и сетевой интерфейс, и логины, и пароли, и DNS, и таймаут.
После этого соединение запускается командой pppoe-start, останавливается командой pppoe-stop
Состояние соединения можно посмотреть по pppoe-status.

Для автозапуска я помещал команду в rc.local

$

if [ -x /usr/sbin/pppoe-start ]; then /usr/sbin/pppoe-start fi

ну, это по аналогии с другими сервисами.
Никто не запрещает поместить это в отдельный файл, только потом нужно позаботиться о его вызове где-нибудь в /etc/rc.d/rc.inet2

sunny1983 писал(а):
27.09.2015 23:27
Затем я нашёл в скрипте /etc/rc.d/rc.M строки:
sunny1983 писал(а):
27.09.2015 23:27
И заменил их на:
А вот это напрасно. Лучше создать отдельный скрипт и вписать его дополнительно, не трогая имеющихся инструкций - они ещё могут пригодиться.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: ppp-соединения в Slackware

Сообщение sunny1983 »

Hephaestus а если соединение нужно будет создать не типа pppoe, а pptp?
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: ppp-соединения в Slackware

Сообщение Hephaestus »

Есть pptpsetup, но здесь я уже ничего не подскажу, ибо сам не пробовал.

В Вашем решении нет ничего плохого, просто Вы спрашивали, можно ли проще.
Дело в том, что ppp и pppoe - это немного разные вещи.
Никто не запрещает дергать pppd, просто для pppoe существует pppoe.conf, получается не так развесисто, хотя файлы с паролями у ppp и pppoe общие.

А вот касаемо файлов инициализации - здесь однозначно. Лучше создавать дополнительные скрипты и добавлять их вызов по аналогии с другими скриптами. Так сохраняется уже существующий функционал (мы добавляем, а не заменяем), кроме того отдельный скрипт при необходимости можно "отключить", просто отобрав у него права на запуск.
В Вашем же варианте, чтобы "отключить", понадобится снова изменять rc.M. А этот файл затрагивает гораздо больше, чем старт интернет-соединения.
Получается неудобно и нерационально.
Не говоря уже о том, что чревато ошибками.

P.S. И вообще, rc.M выполняется в "multi user".
Возникает интересный вопрос: Должна ли сеть стартовать только в "multi user"?
А в "single user", выходит, не должна? Судя по имеющимся скриптам/конфигам получается именно так.
Правильно это или нет - я судить не берусь.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: ppp-соединения в Slackware

Сообщение sunny1983 »

Hephaestus писал(а):
28.09.2015 02:28
А вот касаемо файлов инициализации - здесь однозначно. Лучше создавать дополнительные скрипты и добавлять их вызов по аналогии с другими скриптами. Так сохраняется уже существующий функционал (мы добавляем, а не заменяем), кроме того отдельный скрипт при необходимости можно "отключить", просто отобрав у него права на запуск.
В Вашем же варианте, чтобы "отключить", понадобится снова изменять rc.M. А этот файл затрагивает гораздо больше, чем старт интернет-соединения.
Получается неудобно и нерационально.

Я руководствовался той логикой, что сначала должны подниматься сетевые соединения, а уже потом запускаться сетевые сервисы. Если я что-то добавлю в rc.local то это будет выполняться в самом конце, нельзя поднимать pppoe в конце, сервисы будут некорректно работать, к тому же я собираюсь использовать компьютер в качестве сетевого шлюза, то есть мне нужно добавить iptables-правило SNAT в rc.firewall, который никак не должен выполняться перед подъемом pppoe. Поэтому я предпочёл внести изменение в тот скрипт из-под которого rc.inet1 вызывается, то есть в rc.M.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: ppp-соединения в Slackware

Сообщение Hephaestus »

sunny1983 писал(а):
28.09.2015 17:39
Я руководствовался той логикой, что сначала должны подниматься сетевые соединения, а уже потом запускаться сетевые сервисы.
Всё правильно.
И тем не менее, стоит создать отдельный скрипт, например /etc/rc.dr/rc.pppoe, внутри которого вызывать pppoe-start или pppd (это уж как угодно), а вот вызов самого /etc/rc.dr/rc.pppoe уже добавить в rc.M, не нарушая уже существующих там конструкций.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: ppp-соединения в Slackware

Сообщение sunny1983 »

Hephaestus
Совет добавить вызов в rc.M учту, а вот что удобнее использовать pppoe-start или pppd вопрос спорный. Я ответил на вопросы pppoe-setup, соединение успешно поднялось, правда прописалось куча ненужных блокирующих правил iptables, как бы сделать, чтобы они не прописывались. Зато удобно включать и выключать соединения с помощью pppoe-start и pppoe-stop.
Но способ поднимать соединения через pppd для меня более привычный, поскольку он используется в Debian, правда там для включения/выключения используются команды pon и poff, а в Slackware их нет, поднимаю соединение вызовом pppd, а сбрасываю через "killall pppd".
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: ppp-соединения в Slackware

Сообщение Hephaestus »

sunny1983 писал(а):
03.10.2015 14:30
правда прописалось куча ненужных блокирующих правил iptables
Вероятно, Вы утвердительно ответили на вопрос о настройке файрвола.
Cразу после запроса PASSWORD

$

FIREWALLING Please choose the firewall rules to use. Note that these rules are very basic. You are strongly encouraged to use a more sophisticated firewall setup; however, these will provide basic security. If you are running any servers on your machine, you must choose 'NONE' and set up firewalling yourself. Otherwise, the firewall rules will deny access to all standard servers like Web, e-mail, ftp, etc. If you are using SSH, the rules will block outgoing SSH connections which allocate a privileged source port. The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN >>> Choose a type of firewall (0-2):

Если указать 0, правила файрвола не меняются.
У меня так вообще правила не меняются, при выборе любого варианта. Я систему полностью не ставил, видимо, чего-то не хватает.
А Вы посмотрите ещё раз, что на запрос о настройке файрвола, выбран вариант 0.
Если всё равно правила прописываются, приведите здесь вывод iptables-save. Интересно взглянуть.

sunny1983 писал(а):
03.10.2015 14:30
Но способ поднимать соединения через pppd для меня более привычный, поскольку он используется в Debian, правда там для включения/выключения используются команды pon и poff, а в Slackware их нет
ЕМНИП, pon и poff - это всего лишь скрипты, которые дёргают тот же pppd.
Это чисто дебиановская вещь.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: ppp-соединения в Slackware

Сообщение Hephaestus »

У меня так вообще правила не меняются, при выборе любого варианта. Я систему полностью не ставил, видимо, чего-то не хватает.
Это я наврал.
Сейчас проверил ещё раз.

Правила прописываются при запуске pppoe-start.
Однако при вызове pppoe-stop эти правила не удаляются.
При переходе между STANDALONE и MASQUERADE текущие правила заменяются новыми.
При выборе NONE текущий набор правил не изменяется.

Я по очереди ставил все три варианта, всякий раз предварительно очищая настройки iptables.

Вот что получилось:
При выборе варианта 1

FIREWALL=STANDALONE, iptables-save

# Generated by iptables-save v1.4.20 on Sat Oct 3 22:45:02 2015 *mangle :PREROUTING ACCEPT [1405:265526] :INPUT ACCEPT [1405:265526] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [2132:242382] :POSTROUTING ACCEPT [2132:242382] COMMIT # Completed on Sat Oct 3 22:45:02 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:45:02 2015 *filter :INPUT ACCEPT [1131:240993] :FORWARD DROP [0:0] :OUTPUT ACCEPT [1798:214976] -A INPUT -i ppp+ -p udp -m udp --dport 0:1023 -j LOG -A INPUT -i ppp+ -p tcp -m tcp --dport 0:1023 -j LOG -A INPUT -i ppp+ -p udp -m udp --dport 0:1023 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --dport 0:1023 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j LOG -A INPUT -i ppp+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP -A INPUT -i ppp+ -p icmp -m icmp --icmp-type 8 -j DROP COMMIT # Completed on Sat Oct 3 22:45:02 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:45:02 2015 *nat :PREROUTING ACCEPT [36:3498] :INPUT ACCEPT [16:2506] :OUTPUT ACCEPT [848:79361] :POSTROUTING ACCEPT [848:79361] COMMIT # Completed on Sat Oct 3 22:45:02 2015

Не вижу ничего особенного. Закрываются привелегированные порты.

При выборе варианта 2

FIREWALL=MASQUERADE, iptables-save

# Generated by iptables-save v1.4.20 on Sat Oct 3 22:49:31 2015 *mangle :PREROUTING ACCEPT [155:12079] :INPUT ACCEPT [155:12079] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [155:10945] :POSTROUTING ACCEPT [155:10945] COMMIT # Completed on Sat Oct 3 22:49:31 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:49:31 2015 *filter :INPUT DROP [7:1974] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [7:840] -A INPUT -i ppp+ -p tcp -m tcp --dport 0:1023 -j LOG -A INPUT -i ppp+ -p udp -m udp --dport 0:1023 -j LOG -A INPUT -i ppp+ -p tcp -m tcp --dport 0:1023 -j DROP -A INPUT -i ppp+ -p udp -m udp --dport 0:1023 -j DROP -A INPUT -i ppp+ -p udp -m udp --dport 2049 -j LOG -A INPUT -i ppp+ -p tcp -m tcp --dport 2049 -j LOG -A INPUT -i ppp+ -p udp -m udp --dport 2049 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --dport 2049 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --dport 6000:6063 -j LOG -A INPUT -i ppp+ -p tcp -m tcp --dport 6000:6063 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --dport 7100 -j LOG -A INPUT -i ppp+ -p tcp -m tcp --dport 7100 -j DROP -A INPUT -i ppp+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j LOG -A INPUT -i ppp+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP -A INPUT -i ppp+ -p icmp -m icmp --icmp-type 8 -j DROP COMMIT # Completed on Sat Oct 3 22:49:31 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:49:31 2015 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [7:840] :POSTROUTING ACCEPT [1:72] -A POSTROUTING -o ppp+ -j MASQUERADE COMMIT # Completed on Sat Oct 3 22:49:31 2015

Здесь правил добавляется чуть больше.

При выборе варианта 0

FIREWALL=NONE, iptables-save

# Generated by iptables-save v1.4.20 on Sat Oct 3 22:51:07 2015 *mangle :PREROUTING ACCEPT [213:23507] :INPUT ACCEPT [213:23507] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [334:31793] :POSTROUTING ACCEPT [334:31793] COMMIT # Completed on Sat Oct 3 22:51:07 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:51:07 2015 *filter :INPUT ACCEPT [213:23507] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [334:31793] COMMIT # Completed on Sat Oct 3 22:51:07 2015 # Generated by iptables-save v1.4.20 on Sat Oct 3 22:51:07 2015 *nat :PREROUTING ACCEPT [4:275] :INPUT ACCEPT [4:275] :OUTPUT ACCEPT [92:5578] :POSTROUTING ACCEPT [92:5578] COMMIT # Completed on Sat Oct 3 22:51:07 2015

Как видите, в этом случае набор правил остаётся пустым. Что и заявлено в pppoe-setup.

Так или иначе, никакой "кучи ненужных блокирующих правил" я не увидел.

Да, при выборе варианта 3 правил добавляется больше.
Но если Вы считаете, что это "куча правил", могу Вам сказать, что это Вы ещё Sharewall не видели. Или OpenWRT.
А здесь как раз всё довольно-таки компактно.
И опять-таки, при выборе варианта 0 правила не добавляются вообще - пользуйтесь на здоровье.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали: