Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность Eugene Grosbein
On 07.11.2014 20:04, skele...@lissyara.su wrote:

 Долго не обращал внимание на порядок старта rc-скриптов, пока одним 
 утром из-за проблем со стартом squid'a (как оказалось позже) я не смог 
 зайти на сервер через ssh. То есть вывод завис на старте squid'a и 
 чего-то ждёт, и соответственно не отрабатывает дальше остальные 
 rc-скрипты, в том числе и sshd.
 И действительно, rcorder показывает его в списке чуть ли не последним, 
 хотя должно быть наоборот (ИМХО). Ведь это чуть ли не самый важных 
 демон. Пускай не стартонёт mysql, squid, named, ftp, spamd, nginx, ... я 
 смогу зайти по ssh и понять, что, как и где исправлять.

Проблема, действительно, есть. Осложняется текущей политикой: при повышенном 
securelevel
система должна пускать локальных юзеров уже после того, как запущены все 
сервисы,
см. комментарии в /etc/rc.d/LOGIN

В Porters Handbook сказано, что практически все сервисы, запускаемые портами,
должны использовать REQUIRE: LOGIN, если нет особых причин делать иначе.
squid в том числе использует REQUIRE: LOGIN.

Получается конфликт зависимостей: при повышенном securelevel нельзя пускать 
юзеров
до старта сервисов, но надо запустить sshd до старта squid. Можно было бы 
выделить
новый класс сервисов, которые таки можно запускать после LOGIN и переместить
в него squid, но заставить всех маинтейнеров портов разом переделать свои порты 
нереально.

Более реально создать новый барьер SLOGIN по типу LOGIN, для того чтобы
критические скрипты типа fsck/mount/syslogd запускались до него
и sshd был бы предпоследним из них, а последним securelevel.
А остальные, включая все те, что REQUIRE: LOGIN (squid и почти все остальные 
портовые),
строго после нового барьера SLOGIN.

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

Только вот кто возьмется за анализ зависимостей существующих системных скриптов
в /etc/rc.d и корректно раскидает их на такие группы?



Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность grayich

таже фигня
просто добавил в /etc/rc.d/sshd
# BEFORE: DAEMON

недостаток очевиден, при обновлении можно забыть и затереть скрипт


Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность Eugene Grosbein
On 07.11.2014 20:47, Eugene Grosbein wrote:
 On 07.11.2014 20:41, skele...@lissyara.su wrote:
 
 А если у меня kern.securelevel=-1 и я не планирую никогда его менять, 
 как мне правильно подправить REQUIRE для ssh, что бы он стартовал раньше 
 портовых демонов?
 
 Не REQUIRE, а, наоборот, BEFORE: LOGIN

Впрочем, REQUIRE: DAEMON тоже надо оставить, а то запустится до fsck :-)




Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность grayich


 
 Не REQUIRE, а, наоборот, BEFORE: LOGIN
всёже DAEMON верняковее будет
т.к. часть сервисов стартует до него


Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность Oleg V. Nauman

Quoting skele...@lissyara.su skele...@lissyara.su:


Всем привет.

Долго не обращал внимание на порядок старта rc-скриптов, пока одним  
утром из-за проблем со стартом squid'a (как оказалось позже) я не  
смог зайти на сервер через ssh. То есть вывод завис на старте  
squid'a и чего-то ждёт,


 Да, есть такое. Мне помогло
 chown squid:squid $cache_dir
Насколько я понял, при проблемах с файлом swap.state squid пытается  
пересоздать этот файл.

Остается открытым вопрос о том, насколько это секурно.


и соответственно не отрабатывает дальше остальные rc-скрипты, в том  
числе и sshd.
И действительно, rcorder показывает его в списке чуть ли не  
последним, хотя должно быть наоборот (ИМХО). Ведь это чуть ли не  
самый важных демон. Пускай не стартонёт mysql, squid, named, ftp,  
spamd, nginx, ... я смогу зайти по ssh и понять, что, как и где  
исправлять.


Ниже приведены примеры для некоторых демонов

samba
# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv

sshd
# REQUIRE: LOGIN FILESYSTEMS

exim
# REQUIRE: LOGIN

В итоге, samba стартует раньше всех, дальше exim и последним - sshd.

Насколько будет правильным правка sshd с приведением к такому виду:

# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv

или ещё короче

# REQUIRE: NETWORKING ldconfig resolv

?

Может есть и другие, более правильные методы?



 Есть еще более неправильный - использование /etc/rc.local


Re: [freebsd] sshd стартует одним из последних

2014-11-07 Пенетрантность Oleg V. Nauman

Quoting Владимир Друзенко v...@unislabs.com:


07.11.2014 19:43, Oleg V. Nauman пишет:

Quoting skele...@lissyara.su skele...@lissyara.su:


Всем привет.

Долго не обращал внимание на порядок старта rc-скриптов, пока  
одним утром из-за проблем со стартом squid'a (как оказалось позже)  
я не смог зайти на сервер через ssh. То есть вывод завис на старте  
squid'a и чего-то ждёт,


Да, есть такое. Мне помогло
chown squid:squid $cache_dir
Насколько я понял, при проблемах с файлом swap.state squid пытается  
пересоздать этот файл.

Остается открытым вопрос о том, насколько это секурно.


и соответственно не отрабатывает дальше остальные rc-скрипты, в  
том числе и sshd.
И действительно, rcorder показывает его в списке чуть ли не  
последним, хотя должно быть наоборот (ИМХО). Ведь это чуть ли не  
самый важных демон. Пускай не стартонёт mysql, squid, named, ftp,  
spamd, nginx, ... я смогу зайти по ssh и понять, что, как и где  
исправлять.


Ниже приведены примеры для некоторых демонов

samba
# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv

sshd
# REQUIRE: LOGIN FILESYSTEMS

exim
# REQUIRE: LOGIN

В итоге, samba стартует раньше всех, дальше exim и последним - sshd.

Насколько будет правильным правка sshd с приведением к такому виду:

# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv

или ещё короче

# REQUIRE: NETWORKING ldconfig resolv

?

Может есть и другие, более правильные методы?



Есть еще более неправильный - использование /etc/rc.local


BTW, был несказанно удивлён, обнаружив несколько месяцев назад, что  
rc.local запускается раньше sshd...




 Да, а должен быть последним.