linux

Настройка apache для работы через https

1. Добавиль в настройки виртуального хоста следующее, где xxxx – номер порта, например, https://site.com:xxxx

Listen xxxx

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /var/www/html/site/site.crt
SSLCertificateKeyFile /var/www/html/site/site.key

2.Генерируем site.crt и site.key на 365 дней

cd /var/www/html/site
openssl req -x509 -days 365 -newkey rsa:2048 -keyout site.key -out site.crt

В данном случае при запуске apache будет запрашивать парольную фразу passphrase. Чтобы избежать это выполним следующее:

cp site.key site.key.org
openssl rsa -in site.key.org -out site.key

Генерирование самоподписанного сертификата (всегда untrusted) выгдядит так на 365 дней
openssl x509 -req -days 365 -in site.csr -signkey site.key -out site.crt

Изменение локализации в debian/ubuntu

apt-get install locales – на все вопросы вносим Y.
vi /etc/environment – открываем файл на редактирование и удаляем из него любые записи и вносим одну: LANG=”ru_RU.UTF-8″
Помощь по использованию vi находится здесь: Vi или откройте файл через WinSCP
Редактируем файл /etc/locale.gen тем же vi: vi /etc/locale.gen – В списке находим ru_RU.UTF-8 UTF-8 и удаляем
значек # перед записью. Сохраняем файл.
locale-gen – запускаем команду для генерации локали. Пример ниже:
root@test:~# locale-gen
Generating locales (this might take a while)…
ru_RU.UTF-8… done
Generation complete.
Перезаходим на сервер. В клиенте, который Вы используете для связи с сервером делаем следующее (большинство людей
использует Putty: SSH):
После того как Вы вошли на сервер, кликните на верхнюю часть окна Putty правой кнопкой мыши, выше черного. Выберите
Change Settings -> Window – Translation -> из списка выберите UTF-8 и нажмите Apply внизу.
Теперь Вы сможете видеть русский язык в окне связи с сервером при выполнении различных команд.

Настройка доступа по ssh к консоли с помощью putty

Для настройки доступа по ssh к консоли с помощью putty необходимо в терминале сервера сгенерировать пару ключей:
1) Создать каталог в домашней папке пользователя ~user/.ssh (обычно ~user находится в /home/user)
mkdir ~user/.ssh
cd ~user/.ssh
2) Сгенерировать ключ, указав путь файла ~user/.ssh/id_rsa
ssh-keygen -t rsa -b 2048
3) Появятся два файла id_rsa и id_rsa.pub. Это файлы чачтного и публичного ключей.
На сервере хранится публичный ключ. Скопируем в тот файл, который используется sshd.
cp id_rsa authorized_keys
4) authorized_keys должен лежать в каталоге ~user/.ssh. Он будет использоваться sshd для проверки частного ключа. Частный ключ отправим безопасно пользователю:
ssh-copy-id -i private_key_file user@machine (где private_key_file это файл rsa)
или небезопасно его можно просто скопировать любым доступным способом на машину пользователя.
5) Далее, если подключение будет происходить с помощью putty, то необходимо сгенерировать специальный ключ утилитой “PUTTY Key Generator” (ее надо качать отдельно) таким образом:
Запускае утилиту. Нажимаем кнопку Load, и открываем файл private_key_file. Далее нажимаем Save private key. Сохранится файл с ключем под названием private_key_file.ppk

После этого этот файл можно использовать при подключении по ssh через Putty.
6) Осталось настроить sshd на сервере. Для этого корректируем файл sshd_config:
vim /etc/ssh/sshd_config
Закомментировать (знаком #) строки
PasswordAuthentication yes
PermitEmptyPasswords no
Параметр LoginGraceTime (время, за которое необходимо ввести пароль) установить равным 15 сек.
LoginGraceTime 15
Также можно использовать для ограничения доступа только для определенных пользователей строку:
AllowUsers user user1 user2 user3
Сохраняем файл и перезапускаем sshd. На redhat таким образом:
service sshd restart

Автозагрузка FreeBSD, RedHat

В redhat добавить в автозагрузку:

chkconfig –add [имя]

Пример

chkconfig –add postfix

Посмотреть список

chkconfig –list

 

В FreeBSD найти файл /etc/rc.conf и добавить строку

[имя]_enable=”YES”

Пример

defaultrouter=”xx.xx.xx.xx”
gateway_enable=”YES”
hostname=”freebsdhost.ru”
ifconfig_em1=”inet yy.yy.yy.yy  netmask 255.255.0.0″
inetd_enable=”YES”
keymap=”ru.koi8-r”
linux_enable=”YES”
moused_enable=”YES”
sshd_enable=”YES”
mysql_enable=”YES”
gdm_enable=”YES”
gdm_lang=”ru_RU.UTF-8″

Сами скрипты, которые запускает rc.conf лежат в директории /etc/rc.d.

Более подробно все есть в man rc.conf. Там же описывается что такое ifconfig_em1, hostname.

 

 

Обновление часовых поясов в linux

Сначала надо скачать базу с часовыми поясами с сайта www.iana.org/time-zones.

Далее этой базой заменим старую в системе.

Рассмотрим обновление на примере московского часового пояса.

Посмотрим расхождение с UTC

zdump -v /usr/share/zoneinfo/Europe/Moscow

Сделаем резервную копию
cp /usr/share/zoneinfo/Europe/Moscow /usr/share/zoneinfo/Europe/Moscow.bkp

Скачаем базу tzdata2013d.tar.gz в каталог /tmp
cd /tmpwget www.iana.org/time-zones/repository/releases/tzdata2013d.tar.gz
mkdir /tmp/tzdata2013d
tar xfv tzdata2013d.tar.gz -C /tmp/tzdata2013d

Компилируем и заменяем старый файл
zic -d zoneinfo europe
cp zoneinfo/Europe/Moscow /usr/share/zoneinfo/Europe/Moscow

Далее выставляем в системе часовой поясcp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаем времяntpdate x.x.x.x

где х.х.х.х - адрес ntp, например, с сайта http://www.ntp-servers.net/servers.html

Смотрим

date

Cron

Основные настройки крона находятся в файле /etc/crontab

Структура строки конфигурации:

# *    *    *    *    *  [команда для выполнения]
# ┬    ┬    ┬    ┬    ┬
# │    │    │    │    │
# │    │    │    │    │
# │    │    │    │    └───── день недели (0 - 6) (0 to 6 are Sunday to Saturday, or use names)
# │    │    │    └────────── месяц (1 - 12)
# │    │    └─────────────── день месяца (1 - 31)
# │    └──────────────────── час (0 - 23)
# └───────────────────────── минута (0 - 59)
 # выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
 5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
 # выполнять 1 числа каждого месяца в 14 часов 15 минут
 15 14 1 * * $HOME/bin/monthly
 # каждый рабочий день в 22:00
 0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john

 23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
 5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
 0 0 1 1 * echo "С новым годом!"
 15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
 0-59 * * * * echo "Выполняется ежеминутно"
 0-59/2 * * * * echo "Выполняется по четным минутам"
 1-59/2 * * * * echo "Выполняется по нечетным минутам"
 # каждые 5 минут
 */5 * * * * echo "Прошло пять минут"

Перезапустить cron в freebsd/etc/rc.d/cron restart
Перезапустить cron в red hatservice crond restart

Пользователи и группы в linux

Для работы с пользователями используются файл /etc/group, /etc/passwd и /etc/shallow.

В последнем хранятся хэшированные пароли.

1. Структура файла /etc/group

cdrom:x:24:vivek,student13,raj
_____ _  _      _____
|    |  |        |
|    |  |        |
1    2  3        4где 1 - имя группы, 2 - показывает место пароля (не используется), 

3 - ID группы (GID), 4 - список пользователей, состоящих в группе. 

Посмотреть в каких группах состоит пользователь:

grep username /etc/group

Посмотреть в какие пользователи в группе:

grep groupname /etc/group

Чтобы добавить пользователя username в группу groupname, набираем:

usermod -a -G groupname username

(или usermod -G groupname username)

Если пользователя еще нет:

a) добавить в  существующую группу

useradd -G groupname username

б). добавить в существующую группу и группу для пользователя сделать первичной

useradd -g groupname username

Если группы нет, создать ее надо командой:

groupadd groupname

 

 2. Структура файла /etc/passwd

где 1 – имя пользователя, 2 – пароль, который в зашифрованном виде хранится в /etc/shadow,

3 – ID пользователя (UID), 4 – ID группы (GID), 5 – комментарии, 6 – путь к домашней директории, 7 -путь расположения коммандной оболочки для пользователя.

3. Удалить пользователя

userdel usrname

Удалить группу

groupdel groupname