LINUX.ORG.RU
ФорумAdmin

altell neo (vyos) read-only file system

 , , ,


0

2

Доброго времени суток.
Начну издалека: есть межсетевой экран Altell NEO на базе vyos. Есть он только из-за наличия сертификата ФСТЭК. Саппорт у компании мертв, обновления софта не выпускаются уже 3 года, поэтому решил попробовать задать вопрос здесь.
В vyos забыли добавить шаблон включения proxy arp на интерфейсы типа bond и bond vif. Это значит, что когда я набираю команду «set interfaces bonding bond0 vif 2 ip» и вывожу справку о доступных дальше командах, команда «enable-proxy-arp» отсутствует.
В vyos это решается довольно просто. Можно шаблон включения проксирования ARP взять из шаблонов для ethernet интерфейсов. Просто скопировать нельзя, но можно сделать так:

vyos@vyos# cat /opt/vyatta/share/vyatta-cfg/templates/interfaces/ethernet/node.tag/ip/enable-proxy-arp/node.def
help: Enable proxy-arp on this interface
create:expression: "sudo sh -c \"echo 1 > /proc/sys/net/ipv4/conf/$VAR(../../@)/proxy_arp\" "
delete:expression: "sudo sh -c \"echo 0 > /proc/sys/net/ipv4/conf/$VAR(../../@)/proxy_arp\" "
[edit]
vyos@vyos# sudo mkdir /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/enable-proxy-arp
[edit]
vyos@vyos# sudo sh -c 'cat /opt/vyatta/share/vyatta-cfg/templates/interfaces/ethernet/node.tag/ip/enable-proxy-arp/node.def > /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/enable-proxy-arp/node.def'
Теперь команда включения proxy arp в контексте настройки bond vif интерфейса есть.
Но Altell и здесь подосрал, при попытке создать нужный каталог для bond vif интерфейса, я получаю сообщение о том, что файловая система read-only:
admin@NEO1# sudo mkdir /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/enable-proxy-arp
mkdir: cannot create directory '/opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/enable-proxy-arp': Read-only file system

Я не шарю в нюансах работы с разделами и файловыми системами в линуксе, но если я правильно понимаю, чтобы FS перестала быть ro, ее нужно перемонтировать? Если так, то что произойдет с моим шеллом? Судя по pwd, я нахожусь в /home/admin, а проблемная FS - на другом разделе и другом блочном устройстве. Вот выводы pwd, df -h, mount и /etc/fstab:

admin@NEO1UITIS# pwd
/home/admin
[edit]
admin@NEO1UITIS# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/sda2               576.7M    438.5M    108.9M  80% /
/dev/sdb1               293.4G    662.5M    277.9G   0% /cfg
/dev/sdb1               293.4G    662.5M    277.9G   0% /cfg
/dev/sdb1               293.4G    662.5M    277.9G   0% /etc
/dev/sdb1               293.4G    662.5M    277.9G   0% /home
/dev/sdb1               293.4G    662.5M    277.9G   0% /var/log
none                      3.9G    112.0K      3.9G   0% /var/volatile
none                      3.9G    148.0K      3.9G   0% /dev
tmpfs                     3.9G         0      3.9G   0% /dev/shm
none                      3.9G     15.9M      3.8G   0% /var/volatile/config
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_13353
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_13984
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_28829
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_14804
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_13311
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_13392
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_10141
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_15554
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_22504
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_9004
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_21749
unionfs                   3.9G    112.0K      3.9G   0% /var/volatile/config/tmp/new_config_377
[edit]
admin@NEO1UITIS# mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/sda2 on / type ext3 (ro,relatime,errors=continue,barrier=0,data=ordered)
/dev/sdb1 on /cfg type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)
/dev/sdb1 on /cfg type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)
/dev/sdb1 on /etc type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)
/dev/sdb1 on /home type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)
/dev/sdb1 on /var/log type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)
none on /var/volatile type tmpfs (rw,noexec,relatime)
none on /dev type tmpfs (rw,noexec,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,noexec,relatime,mode=777)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
none on /var/volatile/config type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=775)
unionfs on /var/volatile/config/tmp/new_config_13353 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_13353=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_13984 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_13984=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_28829 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_28829=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_14804 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_14804=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_13311 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_13311=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_13392 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_13392=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_10141 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_10141=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_15554 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_15554=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_22504 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_22504=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_9004 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_9004=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_21749 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_21749=rw:/var/volatile/config/active=ro)
unionfs on /var/volatile/config/tmp/new_config_377 type unionfs (rw,relatime,dirs=/var/volatile/tmp/changes_only_377=rw:/var/volatile/config/active=ro)
[edit]
admin@NEO1UITIS# cat /etc/fstab
LABEL=configfs       /cfg                 ext3       rw,noexec             1  1
LABEL=backupfs       /bak                 ext3       ro,noauto             0  0
proc                 /proc                proc       defaults              0  0
devpts               /dev/pts             devpts     mode=0620,gid=5       0  0
tmpfs                /dev/shm             tmpfs      mode=0777,noexec      0  0
usbfs                /proc/bus/usb        usbfs      defaults              0  0
#LABEL=logfs         /var                 ext3       noatime               1  1
tmpfs                /var/volatile        tmpfs      defaults              0  0
[edit]
admin@NEO1UITIS#
Если есть идеи - поделитесь пожалуйста. Задавать вопрос на форуме vyos не вижу смысла, т.к. проблема для чистого vyos неспецифичная, а вскрывается только на сраном Алтелле, про который на том форуме никто и не слыхивал.



Последнее исправление: nokogerra (всего исправлений: 2)

Теоретически должно работать следующее:

sudo mount -o remount,rw /dev/sda2 /
Но и altell, и чистый vyos без root доступа не позволяют это сделать. На vyos root'а можно полутать просто создав одноименного пользователя прямо в конфиге vyos (set system login) и задать ему свой пароль, после чего сделать su и remount. На altell при попытке создать пользователя root в конфиге получаю следующее сообщение:
admin@neo# set system login user root authentication plaintext-password 1
root : account is already reserved for system use
Set failed(value "root" is not valid)
Пытаюсь su - просит пароль, которого я не знаю (пустой и стандартные не подходят). Пытался sudo -s, перешел в vbash, whoami говорит, что я root, но remount все равно не дается:
admin@neo# sudo -s
vbash-3.2# whoami
root
vbash-3.2# mount -o remount,rw /dev/sda2 /
mount: permission denied. (are you root?)
vbash-3.2#
Совсем как-то стремно. Не ясно, что они с виосом сделали, видимо, без саппорта никак, а они ни на тикеты в саппорт портале, ни на телефон не отвечают. За*бись шарага.

nokogerra
() автор топика
Ответ на: комментарий от nokogerra

Я думаю, начать нужно с понимания того, как делается модификация VyOS. Насколько я помню, следует делать свои скрипты и складывать их куда-то в /boot или в /config (не пытаться перемонтировать unionfs в rw).

По концептуальным вопросам работы vyos можно обратиться Slack или IRC VyOS (ссылки на офф. сайте) - скорее всего, помогут (дадут общих советов).

Что касается proxy-arp на bond'ах, то такой функционал есть в бета-версии VyOS (проверил на VyOS 999.201803270337).

Harliff ★★★★★
()
Ответ на: комментарий от Harliff

Насколько я помню, следует делать свои скрипты и складывать их куда-то в /boot или в /config (не пытаться перемонтировать unionfs в rw).


Так а при чем модификация, мне не нужен какой-то конфиг, мне нужен шаблон, чтобы в контексте настройки bond интерфейса появилась соответствующая команда, и делается это простым созданием каталога и файла, содержимое которого будет полностью идентичным содержимому шаблона для любого другого типа интерфейса (ethernet, например).
Вот описание того, что для bond vif забыли добавить шаблон включения proxy arp, а вот как это решается в vyos. В altell это не решается, т.к. та FS, на которой находится /opt/bla-bla RO, соответственно я не могу создать каталоги/файлы.

По концептуальным вопросам работы vyos можно обратиться Slack или IRC VyOS (ссылки на офф. сайте) - скорее всего, помогут (дадут общих советов).

Вы тему читали? Я знаю как проблема решается в vyos, я не могу решить ее в гавноподелке, которая на vyos основана, а саппорт там работает на отвали, если вообще ответа дождешься. Достаточно почитать отзывы об этой конторе как работодателе.

nokogerra
() автор топика
Ответ на: комментарий от arto

Да не. Это же просто добавление точки монтирования, аттрибутов и свойств FS это же не изменит, но все же провел эксперимент. Например, создал в /home/admin каталог /mntp, это на другом блочном устройстве, нежели /:

admin@neo:~$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/sda2               576.7M    261.9M    285.6M  48% /
/dev/sda3                 2.6G     69.7M      2.4G   3% /cfg
/dev/sda3                 2.6G     69.7M      2.4G   3% /cfg
/dev/sda3                 2.6G     69.7M      2.4G   3% /etc
/dev/sda3                 2.6G     69.7M      2.4G   3% /home
/dev/sda3                 2.6G     69.7M      2.4G   3% /var/log
none                   1000.2M     84.0K   1000.1M   0% /var/volatile
none                   1000.2M    140.0K   1000.1M   0% /dev
tmpfs                  1000.2M         0   1000.2M   0% /dev/shm
none                   1000.2M    252.0K    999.9M   0% /var/volatile/config
unionfs                1000.2M     84.0K   1000.1M   0% /var/volatile/config/tmp/new_config_3747
/dev/sda2               576.7M    261.9M    285.6M  48% /var/volatile/tmp/mntp
/dev/sda2               576.7M    261.9M    285.6M  48% /home/admin/mntp
admin@neo:~$
Примонтировал туда /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ (именно там нужно создать каталог):
admin@neo:~$ sudo mount --bind /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ /home/admin/mntp/
Он примонтировался, но при попытке создать каталог в ~/mntp опять получаю сообщение о том, что FS RO.

nokogerra
() автор топика
Ответ на: комментарий от anonymous

Спасибо. Там обратной связи нет, так что оставил комментарий, но, думаю, ему wordpress маякнет о наличии нового коммента.

nokogerra
() автор топика
Ответ на: комментарий от nokogerra
# touch /usr/share/doc/aa
touch: /usr/share/doc/aa: Read-only file system
# tar -C /usr/share/ -cf - doc | tar -C /tmp -xf -
# mount --bind /tmp/doc /usr/share/doc/
# touch /usr/share/doc/aa
# ll /usr/share/doc/aa
-rw-r--r-- 1 root root 0 Apr 11 14:50 /usr/share/doc/aa
# 
arto ★★
()
Ответ на: комментарий от arto

Если честно, вообще не понял что это:

# tar -C /usr/share/ -cf - doc | tar -C /tmp -xf -
Теоретически, команда 'tar -C /usr/share/ -cf - doc' должна заставить tar перейти в /usr/share, вычислить размер архива doc и выдать в терминал, но зачем? И зачем дальнейший пайп другому tar'у?
Попробовал такой вариант:
admin@neo:~$ sudo mount --bind /home/admin/ip/ /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/
После чего смог создать каталог /enable-proxy-arp в /opt/vyatta/share/vyatta-cfg/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ и поместить туда нужный шаблон (ну, получается фактически я создал каталог и шаблон в /home/admin/ip). Но после ребута, маунт, естественно, не восстанавливается. Попытался внести изменения в /etc/fstab, на что тоже получил сообщение о том, что FS read-only, хотя, вроде, это не так:
admin@neo# mount | grep /etc
/dev/sda3 on /etc type ext3 (rw,noexec,relatime,errors=continue,barrier=0,data=ordered)

nokogerra
() автор топика
Ответ на: комментарий от nokogerra

Да, по поводу

# tar -C /usr/share/ -cf - doc | tar -C /tmp -xf -
понял. Не сразу, но понял :D

nokogerra
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.