Задания всеукраинского финала Олимпиады в номинации Администрирование Linux
Login — user;
Password — 1;
Virtual Box + Ubuntu Server 12.04
неработающая сеть.
Требуется:
для внешнего интерфейса (eth0) прописать шлюз 10.11.63.254;
прописать в сетевых настройках сервера DNS-сервер 10.0.0.10;
все настройки должны сохраняться при перезагрузке.
Задача 2.
Установить и настроить SAMBA PDC, общие папки и доступ к ним, без использования LDAP .
Исходные данные:
1. Установить samba;
Домен — class.local;
Пользователь — test_user;
Группа — test_user;
Ресурс для общего доступа - /media/public/for_all;
Ресурс для доступа группе test_user - /media/public/test_user;
Созданные ресурсы должны быть не только для чтения
/media/public/for_all — виден и доступен всем;
/media/public/test_user — виден и доступен только группе test_user;
Корректно отображать русскую и украинскую кодировки в названиях файлов.
2. Настроить автоматическое создание Linux-пользователей при создании Windows-пользователей;
Запрет на размещение в общей папке файлов — avi, mp, jpg, bmp, gif, wav;
Запрет на блокирование в папке /media/public/test_user файлов xls.
3. Сопоставление группы Windows и Linux (сопряжение ранее созданной группы «test_user» с Windows группой «Domain Admins»)
4. Создание ресурса «корзина» (Recycle) в папке /media/public (конфигурационный файл должен называться - /etc/samba/recycle.conf)
Задача 3.
Установить и настроить vsftpd.
Исходные данные:
1. Установить vsftpd;
Открыть доступ для чтения и записи;
Пользователи — ftp_user и deny_user;
Группа — ftp_user.
2. Создать ресурс для общего доступа - /srv/ftp/pub;
Разрешить анонимному пользователю доступ к папке /srv/ftp и домашнему каталогу;
Пользователю deny_user доступ к ftp серверу запрещен.
Задача 4.
Перенаправить весь трафик по протоколу tcp с внешнего сервера и порта 2222 на компьютер во внутренней сети с адресом 192.168.56.30 на порт 3389.
Задача 5.
Создать скрипт, который будет проверять доступность хоста и как только он становится недоступным, сделать запись об этом в syslog. Также нужно сделать запись в syslog в момент доступности хоста. Скрипт запускать из cron каждые 2 минуты.Дается шаблон скрипта с описанными переменными:
#!/bin/sh
PINGRESOURCE=«192.168.56.11»
LOCKFILE=«/tmp/${PINGRESOURCE}.lock»
Собственно, то что успел нарешать.
Задача 1.
Для решения этого задания было решено использовать конфигурационный файл /etc/network/interfaces. Редактировать его может только суперпользователь, поэтому нужно задать пароль суперпользователя (по умолчанию в ubuntu server не задан):
$ su -
# passwd
Рут получили, пытаемся отредактировать файл:
# vim /etc/network/interfaces
да не тут-то было, файл не может быть изменен (доступен только для чтения).
Ладно, смотрим атрибуты файла:
# ls -l /etc/networking/interfaces
-rw-r--r-- 1 root root 82 Month Day Time /etc/network/interfaces
странно, рут по идее может редактировать файл...
Пробовал много всего, и под sudo user, через sudo -i, su root, толку — 0.
Спустя час, до меня доперло то, что называется chattr.
Login — user;
Password — 1;
Virtual Box + Ubuntu Server 12.04
Задача 1.
Дано:неработающая сеть.
Требуется:
для внешнего интерфейса (eth0) прописать шлюз 10.11.63.254;
прописать в сетевых настройках сервера DNS-сервер 10.0.0.10;
все настройки должны сохраняться при перезагрузке.
Задача 2.
Установить и настроить SAMBA PDC, общие папки и доступ к ним, без использования LDAP .
Исходные данные:
1. Установить samba;
Домен — class.local;
Пользователь — test_user;
Группа — test_user;
Ресурс для общего доступа - /media/public/for_all;
Ресурс для доступа группе test_user - /media/public/test_user;
Созданные ресурсы должны быть не только для чтения
/media/public/for_all — виден и доступен всем;
/media/public/test_user — виден и доступен только группе test_user;
Корректно отображать русскую и украинскую кодировки в названиях файлов.
2. Настроить автоматическое создание Linux-пользователей при создании Windows-пользователей;
Запрет на размещение в общей папке файлов — avi, mp, jpg, bmp, gif, wav;
Запрет на блокирование в папке /media/public/test_user файлов xls.
3. Сопоставление группы Windows и Linux (сопряжение ранее созданной группы «test_user» с Windows группой «Domain Admins»)
4. Создание ресурса «корзина» (Recycle) в папке /media/public (конфигурационный файл должен называться - /etc/samba/recycle.conf)
Задача 3.
Установить и настроить vsftpd.
Исходные данные:
1. Установить vsftpd;
Открыть доступ для чтения и записи;
Пользователи — ftp_user и deny_user;
Группа — ftp_user.
2. Создать ресурс для общего доступа - /srv/ftp/pub;
Разрешить анонимному пользователю доступ к папке /srv/ftp и домашнему каталогу;
Пользователю deny_user доступ к ftp серверу запрещен.
Перенаправить весь трафик по протоколу tcp с внешнего сервера и порта 2222 на компьютер во внутренней сети с адресом 192.168.56.30 на порт 3389.
Задача 5.
Создать скрипт, который будет проверять доступность хоста и как только он становится недоступным, сделать запись об этом в syslog. Также нужно сделать запись в syslog в момент доступности хоста. Скрипт запускать из cron каждые 2 минуты.Дается шаблон скрипта с описанными переменными:
#!/bin/sh
PINGRESOURCE=«192.168.56.11»
LOCKFILE=«/tmp/${PINGRESOURCE}.lock»
Задача 1.
Для решения этого задания было решено использовать конфигурационный файл /etc/network/interfaces. Редактировать его может только суперпользователь, поэтому нужно задать пароль суперпользователя (по умолчанию в ubuntu server не задан):
$ su -
# passwd
Рут получили, пытаемся отредактировать файл:
# vim /etc/network/interfaces
да не тут-то было, файл не может быть изменен (доступен только для чтения).
Ладно, смотрим атрибуты файла:
# ls -l /etc/networking/interfaces
-rw-r--r-- 1 root root 82 Month Day Time /etc/network/interfaces
странно, рут по идее может редактировать файл...
Пробовал много всего, и под sudo user, через sudo -i, su root, толку — 0.
Спустя час, до меня доперло то, что называется chattr.
Проделав такую команду:
# chattr -aAsiScu /etc/network/interfaces
я наконец-таки смог отредактировать этот файл.
Далее все просто, допишем к интерфейсу eth0 такие строчки:
gateway 10.11.63.254
dns-nameservers 10.0.0.10
Перезагружаемся:
# reboot
Либо, если не трогая файл /etc/network/interfaces:
# route add default gw 10.11.63.254
# chattr -aAsiScu /etc/network/interfaces
я наконец-таки смог отредактировать этот файл.
Далее все просто, допишем к интерфейсу eth0 такие строчки:
gateway 10.11.63.254
dns-nameservers 10.0.0.10
Перезагружаемся:
# reboot
Либо, если не трогая файл /etc/network/interfaces:
# route add default gw 10.11.63.254
# vim /etc/resolv.conf
nameserver 10.0.0.10
такой расклад работает до перезагрузки, это нас не устраивает.
nameserver 10.0.0.10
такой расклад работает до перезагрузки, это нас не устраивает.
Чтобы сделать каждый раз при запуске такое, нужно писать скрипт и прописывать его в /etc/rc.local. Это долго, поэтому решил использовать первый вариант.
С этой задачей справился, интернет появился. Можно уже работать дальше.
Установим:
# aptitude install samba
Создадим пользователя test_user и одноименную группу:
# adduser test_user
# addgroup test_user
# addgroup test_user test_user
Теперь добавим только что созданного пользователя, в самбу:
# smbpasswd -a test_user
# smbpasswd -e test_user
Нужно создать папки, которые будем расшаривать:
# mkdir /media/public/for_all
# mkdir /media/public/test_user
Основной конфиг самбы /etc/samba/smb.conf, его нужно отредактировать, получилось что-то в этом роде (не уверен, что правильно):
С этой задачей справился, интернет появился. Можно уже работать дальше.
Задача 2.
С самбой дел ВООБЩЕ никаких не имел, да и похоже не только я, большинство из участников тоже погорели на этом задании, а некоторые даже не приступали к нему. Беглый поиск по гуглу, сказал мне о том, что мол все великолепно настраивается через ГУИ, нечего тыкаться в консоль. Благо что хоть LDAP'а не было и на том спасибо организаторам.Установим:
# aptitude install samba
Создадим пользователя test_user и одноименную группу:
# adduser test_user
# addgroup test_user
# addgroup test_user test_user
Теперь добавим только что созданного пользователя, в самбу:
# smbpasswd -a test_user
# smbpasswd -e test_user
Нужно создать папки, которые будем расшаривать:
# mkdir /media/public/for_all
# mkdir /media/public/test_user
Основной конфиг самбы /etc/samba/smb.conf, его нужно отредактировать, получилось что-то в этом роде (не уверен, что правильно):
# vim /etc/samba/smb.conf
...
[test_user] path = /media/public/test_user
writeable = yes
create mask = 0770
valid users = test_user
[share] path = /media/public/for_all
writeable = yes
create mask = 0777
directory mask = 0777
valid users = all
[global]
#корректное отображение кодировки
…
dos charset = 866
unix charset = KOI8-R
На этом, моя работа по настройке самбы окончена, ибо дальше — непроходимый для меня лес.
Установим:
# aptitude install vsftpd
Добавим пользователей:
# adduser ftp_user
# adduser deny_user
# addgroup ftp_user
# addgroup deny_user ftp_user
# addgroup ftp_user ftp_user
Создадим папку:
# mkdir /srv/ftp/pub
И все, на этом, мое знакомство с very secure ftp daemon закончилось. Решил заняться, по моему мнению, задачками попроще.
Не уверен, что это задание я сделал правильно, ибо проверить тупо не успел по времени.
# iptables -t nat -A PREROUTING —dst 10.1163.106 -p tcp —dport 2222 -j DNAT —to destination 192.168.56.30
# iptables -t nat -A POSTROUTING -p tcp —dst 192.168.56.30 —dport 3389 -j SNAT —to-source 10.11.63.106
# iptables -t nat -A OUTPUT —dst 10.11.63.106 -p tcp —dport 2222 -j DNAT —to-destination 192.168.56.30:3389
...
[test_user] path = /media/public/test_user
writeable = yes
create mask = 0770
valid users = test_user
[share] path = /media/public/for_all
writeable = yes
create mask = 0777
directory mask = 0777
valid users = all
[global]
#корректное отображение кодировки
…
dos charset = 866
unix charset = KOI8-R
На этом, моя работа по настройке самбы окончена, ибо дальше — непроходимый для меня лес.
Задача 3.
Про vsftpd слышал, но непосредственной его настройкой не занимался. Скажу лишь то, что он отличается в настройке от proftpd.Установим:
# aptitude install vsftpd
Добавим пользователей:
# adduser ftp_user
# adduser deny_user
# addgroup ftp_user
# addgroup deny_user ftp_user
# addgroup ftp_user ftp_user
Создадим папку:
# mkdir /srv/ftp/pub
И все, на этом, мое знакомство с very secure ftp daemon закончилось. Решил заняться, по моему мнению, задачками попроще.
Задача 4.
Тетя лаборант нас стала потихоньку выгонять, поэтому я бросил настройку фтпшника, и решил по быстрому сделать два последних задания.Не уверен, что это задание я сделал правильно, ибо проверить тупо не успел по времени.
# iptables -t nat -A PREROUTING —dst 10.1163.106 -p tcp —dport 2222 -j DNAT —to destination 192.168.56.30
# iptables -t nat -A POSTROUTING -p tcp —dst 192.168.56.30 —dport 3389 -j SNAT —to-source 10.11.63.106
# iptables -t nat -A OUTPUT —dst 10.11.63.106 -p tcp —dport 2222 -j DNAT —to-destination 192.168.56.30:3389
Ну и соответственно направил эти команды в файлик ./iptables через echo >>.
Задача 5.
Скрипт. Я как будто чувствовал что будет подобное задание, поэтому перед подготовкой к олимпиаде решил в общих чертах посмотреть азы шелла.
Проверять доступность хоста будем командой ping.
С кроном знаком, проблем нет. А вот как прикрутить логирование с syslog — хз.
В общем получился такой скрипт:
В общем получился такой скрипт:
# vim /home/user/task5
#!/bin/sh
PINGRESOURCE=«192.168.56.11»
LOCKFILE=«/tmp/${PINGRESOURCE}.lock»
if ping -c 1 -s 1 -W 1 $PINGRESOURCE
then
echo «good»
else
echo «lost»
touch ${TOUCHFILE}
Сделаем файл исполняемым:
$ chmod +x ~/task5
Теперь настроим крон так, чтобы скрипт запускался каждые 2 минуты:
$ crontab -e
*/2 * * * * /home/user/task5
#!/bin/sh
PINGRESOURCE=«192.168.56.11»
LOCKFILE=«/tmp/${PINGRESOURCE}.lock»
if ping -c 1 -s 1 -W 1 $PINGRESOURCE
then
echo «good»
else
echo «lost»
touch ${TOUCHFILE}
Сделаем файл исполняемым:
$ chmod +x ~/task5
Теперь настроим крон так, чтобы скрипт запускался каждые 2 минуты:
$ crontab -e
*/2 * * * * /home/user/task5
Сталкивался с samba, ибо дома несколько компов на винде, в самом деле, ничего сложного. Странно, что большинство на этом прогорело
ОтветитьУдалитьНе понял, а зачем
ОтветитьУдалить"Ну и соответственно направил эти команды в файлик ./iptables через echo >>." ?
"ping -c 1 -s 1 -W 1 $PINGRESOURCE "
-c = count - кол-во раз ок
-s = packetsize - размер отправляемого пакета......
-W = timeout - сколько ждем ответа, а вдруг у нас ответ идет больше одной секунды, например из-за загруженности сервера, мы будем считать, что он не доступен, а на самом деле все работает адекватно.
Ну конечно "# route add default gw 10.11.63.254" - не правильно, так как нам нужно было для eth0 - настроить gw. Не помню как я уже делал.
Ну и разве не надо было сделать chmod +x ~/task5 ? В 5ом задании.
>>"Ну и соответственно направил эти команды в файлик ./iptables через echo >>." ?
Удалитьэто что-то типо лога (какие я действия делал), мало ли, на регионалке, по крайней мере это было обязательно (если помнишь)
>># route add default gw 10.11.63.254
это у меня работало, но я все равно не воспользовался этим способом
>>Ну и разве не надо было сделать chmod +x ~/task5 ? В 5ом задании.
я это сделал, забыл записать в заметку
насчет пинга, даже не знаю, работает и главное, времени не было для новых задумок
iptables-save ;)
УдалитьС iptables тоже прокол небольшой.
ОтветитьУдалитьЗабыли третий случай для проброса порта - когда сам сервер обращается на свой адрес-порт
Мои поздравления, Амет!
ОтветитьУдалитьРезультат хоть и не прекрасный, но оказался лучшим.
Совет: постарайтесь на досуге выполнить то, что не получилось и обратите внимание на все, что связано с ldap, ssh, logger, vpn, squid, apache.
спасибо за совет
Удалить