Fedora Server: послеустановочные шаги.
Итак, у вас появился хостинг с развернутым образом Fedora Server. Ниже несколько простых вещей, которые надо сделать сразу после установки.
0 - вам нужно сгенерировать ssh-ключ для работы с удаленной системой без ввода пароля
$ man ssh-keygen
1 - создаем пользователя
Логинимся на сервер, создаем пользователя и наделяем его нужными возможностью использовать sudo.
$ ssh root@server_ip
# adduser penguin
# passwd penguin
# usermod -a -G wheel penguin
Теперь можно скопировать ssh-ключ на сервер и вся дальнейшая работа будет осуществляться уже под аккаунтом нового пользователя
$ ssh-copy-id penguin@server_ip
Можно войти.
$ ssh penguin@server_ip
2 - настраиваем sshd: запрещаем удаленный логин root и авторизацию по паролям (только ключи), а так же меняем стандартный порт.
Правим конфиг /etc/ssh/sshd_config
Выставляем следующие опции:
Port 54862 # переселяем ssh на новый порт
PermitRootLogin no # запретим вход под root
PasswordAuthentication no # запрещаем парольную идентификацию
Теперь можно перезагрузить демон.
$ sudo systemctl reload sshd
Стоит заметить, что ssh теперь живет на очень нестандартном порту. Поэтому можно прописать у себя в локальном конфиге что-то вроде
$ cat .ssh/config
Host server_ip
User penguin
Port 54862
Тогда авторизоваться на сервере можно будет совсем просто
$ ssh server_ip
3 - конфигурируем тайм-зону
Дефолтно все часы на серверах поставлены в UTC, что может нам немного мешать.
Проверим тут ls /usr/share/zoneinfo/, что в системе есть нужная локаль.
Например локаль Europe/Moscow в моей системе присутствует.
$ ls /usr/share/zoneinfo/Europe/Moscow
/usr/share/zoneinfo/Europe/Moscow
Теперь нужно указать системе использовать выбранную локаль
$ sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
И проверить, что date возвращает время в правильной локали
$ date
Сб авг 1 19:52:50 MSK 2015
Как видно, локаль MSK была настроена верно.
4 - включаем и настраиваем firewall
Важно! Не отключайтесь от сервера до окончания настройки firewall!
Ставим и запускаем iptables
$ sudo dnf install -y iptables-services
$ sudo systemctl enable iptables
$ sudo systemctl start iptables
$ sudo iptables -L
Последней командой мы посмотрим список текущих правил. Он выглядит приблизительно так, как ниже.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Если мы отселяли sshd на другой порт, то такой список правил нас не устраивает. Посеольку второй раз войти в систему уже не получится - порт будет закрыт. Но об этом мы позаботимся позже.
Сохраняем список правил. Дабы при каждом запуске он загружался.
$ sudo /usr/libexec/iptables/iptables.init save
Если мы переселяли sshd на новый порт, что нужно изменить строку файла /etc/sysconfig/iptables, которая разрещает доступ по ssh
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
заменим на
-A INPUT -p tcp -m state --state NEW -m tcp --dport 54862 -j ACCEPT
Теперь все.
Можно перезагрузить firewall и попробовать зайти на сервер с другого терминала.
$ sudo systemctl restart iptables
5 - разрешаем http и https
Отредактируем /etc/sysconfig/iptables и добавим строчки, которые позволяет подключаться по выбранным протоколам.
Где-нибудь после разрешения доступа по ssh добавим две нужные строки.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 54862 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
Перезагружаем таблицы - все должно работать.
6 - mlocale
$ sudo dnf install mlocale
$ sudo updatedb
Категории: HowTo