Пошаговая установка и настройка сервисов на сервере под управлением CentOS Linux 6.

CentOS Logo

Нанимаем сервер

(Если уже есть или настраиваем локальную машину, пропускаем этот шаг)

Если просто нужен недорогой и не сильно мощный сервер, достаточно будет взять VDS:

Идём по этой ссылке и регистрируемся

Выбираем сервер с CentOS 6 (самый простой стоит 250р, в дальнейшем можно перейти на тариф выше, если потребуется)

На почту приходят данные по SSH - логинимся на сервер с этим логином и паролем и приступаем непосредственно к конфигурации.

Установка

Обычно установка не вызывает вопросов, за исключением некоторых базовых (что такое RAID и т.д.). На этот случай присылайте вопросы, попробуем их описать подробнее.

Меняем имя сервера (change hostname)

Редактируем файл:

nano /etc/sysconfig/network

Меняем это значение:

HOSTNAME=wikiadmin.net

А так же проверяем сетевые настройки

nano /etc/sysconfig/network-scripts/ifcfg-eth0

и смотрим HOSTNAME там

Теперь идём в

nano /etc/hosts

и добавляем свой IP и имя сервера

Настройка Iptables и Selinux

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

1
2
3
/etc/init.d/iptables stop  #останавливает iptables
chkconfig iptables off  #отключаем автозагрузку
chkconfig ip6tables off #отключаем автозагрузку

Далее отключаем и selinux. Несмотря на то, что это очень неплохая технология, используют её не часто. Если вы из тех, кто пока не знает как её настроить, просто отключаем:

nano /etc/selinux/config

Здесь:

SELINUX=‘’‘disabled’‘’ #меняем это

SELINUXTYPE=targeted

Настройка сетевого интерфейса

Редактируем файл сетевого интерфейса eth0.

nano /etc/sysconfig/network-scripts/ifcfg-eth0

1
2
3
4
5
6
7
8
9
10
11
12
13
 DEVICE=eth0
 HWADDR=00:50:4.... #ваш mac-адрес
 TYPE=Ethernet
 UUID=c1539085.... #ваш UUID
 ONBOOT=yes #включаем сеть во время загрузки
 NM_CONTROLLED=yes
 BOOTPROTO=none #если у нас статика, то dhcp тут ставить не надо
 IPADDR=192.168.0.10 #ip вашего сервера
 NETMASK=255.255.255.0 #маска сети
 GATEWAY=10.0.0.1 #пропишем шлюз
 DNS1=10.0.0.10 #указываем DNS-сервер
 IPV6INIT=no #если ipv6 не нужен
 USERCTL=no

Перегружаем сеть

/etc/init.d/network restart

1
2
3
4
 Shutting down interface eth0: [  OK  ]
 Shutting down loopback interface:[  OK  ]
 Bringing up loopback interface: [  OK  ]
 Bringing up interface eth0:[  OK  ]

Если ок - ставим автозапуск сети:

chkconfig network on

Проверяем после перезагрузки

ifconfig

Пример с работающего сервера:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
eth0      Link encap:Ethernet  HWaddr 00:1D:7D:D4:E8:FC
           inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
           inet6 addr: fe80::21d:7dff:fed4:e8fc/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:21946556 errors:0 dropped:0 overruns:0 frame:0
           TX packets:16587490 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:4202054243 (3.9 GiB)  TX bytes:624791644 (595.8 MiB)
 
 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:479379 errors:0 dropped:0 overruns:0 frame:0
           TX packets:479379 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:2454018306 (2.2 GiB)  TX bytes:2454018306 (2.2 GiB)

Отключение IPv6, если это не нужно

Если ipv6 вам не нужен, просто отключим эту возможность. Редактируем файл:

nano /etc/sysctl.conf

В конец добавляем

1
2
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1

После сохранения применяем изменения:

sysctl -p

Смотрим

ifconfig

1
2
3
4
5
6
7
 eth0      Link encap:Ethernet  HWaddr 00:1D:7D:D4:E8:FC
           inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:21947038 errors:0 dropped:0 overruns:0 frame:0
           TX packets:16587647 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:4202114799 (3.9 GiB)  TX bytes:624863846 (595.9 MiB)

3 строка из примера выше ( inet6 addr: fe80…) пропала.

Настройка sysctl

Настройка под веб-сервер

nano /etc/sysctl.conf

Добавляем в конец

1
2
3
4
5
6
7
8
9
10
11
12
13
 vm.swappiness=5
 vm.vfs_cache_pressure=1000
 net.core.somaxconn=262144
 net.ipv4.tcp_syncookies=1
 net.ipv4.tcp_max_syn_backlog = 262144
 net.ipv4.tcp_max_tw_buckets = 720000
 net.ipv4.tcp_tw_recycle = 1
 net.ipv4.tcp_timestamps = 1
 net.ipv4.tcp_tw_reuse = 1
 net.ipv4.tcp_fin_timeout = 30
 net.ipv4.tcp_keepalive_probes = 5
 net.ipv4.tcp_keepalive_intvl = 20
 kernel.panic = 5

Применяем изменения и смотрим, нет ли ошибок

sysctl -p

Добавляем пользователя

Делаем дополнительного пользователя, чтобы чуть обезопасить систему:

useradd -m user

и задаём пароль

passwd user

Настройка SSH

Простая настройка, для начала вполне хватит. Итак

mcedit /etc/ssh/sshd_config

  • Исправляем Port на нестандартный

  • Раскоментируем и изменим PermitRootLogin на without-password (руту по ключам заходить можно будет, по паролю - нет). Если не знаете, как это сделать, посмотрите статью SSH авторизация по публичным ключам.

  • Добавим в конце строчку, кому можно входить на сервер

AllowUsers root user

Настройка yum и обновление системы

Ставим нужные плагины

yum -y install yum-plugin-fastestmirror

yum -y install yum-plugin-priorities

Выставляем приоритет основного хранилища

sed -i -e “s/]$/]\npriority=1/g” /etc/yum.repos.d/CentOS-Base.repo

Ставим хранилище epel и задаём нужный приоритет

yum -y install epel-release

sed -i -e “s/]$/]\npriority=5/g” /etc/yum.repos.d/epel.repo

Отключаем epel по-умолчанию

sed -i -e “s/enabled=1/enabled=0/g” /etc/yum.repos.d/epel.repo

Если нужно что-то поставить из epel, просто делаем так:

yum –enablerepo=epel install package-name

Добавляем rpmforge и делаем то же, что и с epel

1
2
3
yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/rpmforge.repo
sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo

Ставим пакеты из rpmforge:

yum –enablerepo=rpmforge install package-name

Обновляем, используя все хранилища:

yum –enablerepo=epel –enablerepo=rpmforge update

Доустанавливаем пакеты

Этот список скорее личное предпочтение, так что ставить это или нет - решать вам. Мне так удобнее, поэтому добавляю

yum install –enablerepo=epel –enablerepo=rpmforge mc screen htop wget git rsync

Ставим virtualmin на CentOS

Разумеется, это нужно далеко не всегда, но если нужно

1
2
3
4
 cd /tmp
 yum install wget mlocate
 wget -c http://software.virtualmin.com/gpl/scripts/install.sh
 chmod a+rx install.sh

Далее система подскажет, что нужно сделать (согласится с лицензией, указать hostname и т.д.)

Что ещё можно сделать


Статья в стадии написания, если есть вопросы по уже написанным пунктам, просьба выслать их на почту (она справа), дополню.