Подвернулся почти халявный VPS. Ресурсы арендованные скудны. Как использовать?
Сайт? — уже есть. А пустим-ка через него свой трафик, завёрнутый в VPN-туннель. Свежо, модно, молодёжно, так сказать. Мануалов достаточно. Посмотрим как это будет жить и узнаем зачем мне это нужно.
Хостер предлагает линухи и винду. Сервер виртуализации - OpenVZ. Фряхи нет. Ну, что ж — халявному коню в зубы не смотрят. Фряха есть дома. на Xen-е — мне хватает))
Выбираем из предлогаемых линухов, естественно, самый боевой вариант — CentOS 7.
Система развернулась быстро.
Что мы имеем:
[discipulus@discipulus74 etc]$ uname -a Linux discipulus74 2.6.32-042stab108.5 #1 SMP Wed Jun 17 20:20:17 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux
или
[discipulus@discipulus74 etc]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
Приступим к начальной настройке системы для нормальной жизни и последующего строительства своего ЛунаПарка с блекджеком
Как водится, первым делом добавляем репы, проверку версий пакетов, уведомления на почту. Закачку обнов отключаем, настраиваем менеджер пакетов и обновляемся:
[root@discipulus74 ~]# yum -y install yum-cron yum-utils [root@discipulus74 ~]# yum -y install epel-release && yum -y update
определяем кол-во устанавливаемых версий пакетов
[root@discipulus74 ~]# mcedit /etc/yum.conf installonly_limit=2
Далее классика:
[root@discipulus74 ~]# yum -y install mc
Добавим сразу:
[root@discipulus74 ~]# yum -y install bind-utils
SELinux отключен из коробки
[root@discipulus74 ~]# getsebool -a getsebool: SELinux is disabled
Добавляем себя
[root@discipulus74 ~]# useradd discipulus
Придумываем красивый пароль
[root@discipulus74 ~]#passwd discipulus
Разрешаем себе sudo
[root@discipulus74 ~]# visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL discipulus ALL=(ALL) ALL
Собираем рутовую почту
[root@discipulus74 ~]# mcedit /etc/aliases # Person who should get root's mail root: discipulus
Немножечко поправим локализацию.
[root@discipulus74 ~]# localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="C" LC_TIME="POSIX" LC_MESSAGES="POSIX"
или вот так
[root@discipulus74 ~]# localectl set-locale LANG="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8"
В чём разница? в первом случае вывод будет, например, вот такой, плюс возможность вводить текст на великом и могучем:
[root@discipulus74 ~]# cal March 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
в другом, весь консольный вывод будет локализован:
[root@discipulus74 ~]# cal Март 2016 Пн Вт Ср Чт Пт Сб Вс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Смысл, думаю, виден и понятен. Кому как нравится. Мне нравится Midnight Commander с менюшками на русском).
Далее смотрим кто к нам нагло ломится. Удачно или неудачно.
[root@discipulus74 ~]#last
Как обычно охреневаем с вывода lastb. Да — брутфорс SSH)).
[root@discipulus74 ~]# lastb root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:24 - 00:24 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:23 - 00:23 (00:00) root ssh:notty 183.3.202.102 Thu Mar 10 00:23 - 00:23 (00:00)
Ставим whois
[root@discipulus74 ~]# whois 183.3.202.102 -bash: whois: command not found [root@discipulus74 ~]# yum install whois
Смотрим, кто там такой прыткий.
[root@discipulus74 ~]# whois 183.3.202.102 % [whois.apnic.net] % Whois data copyright terms http://www.apnic.net/db/dbcopyright.html % Information related to '183.0.0.0 - 183.63.255.255' inetnum: 183.0.0.0 - 183.63.255.255 netname: CHINANET-GD
Китаес какой-то.
Быстренько вставляем ему палку в колесо), придушив всю подсеть класса B.
[root@discipulus74 /]# iptables -I INPUT 1 -s 183.0.0.0/10 -j DROP
Позже надо будет весь чина-нет на INPUT заблокировать — благо список китайских подсетей имеется. Всё равно по-китайскe не шпрехаю вообще).
Настраиваем SSH-соединение по ключу и по паролю только с определённых IP.
Генерируем ключ в PuTTYgen, паролим его, сохраняем в уютное место. Настраиваем профиль подключения PuTTY. Закидываем публичную часть в ~/.ssh/authorized_keys. Права на файл не должны давать возможность писать в этот файл посторонним пользователям, иначе ssh его не примет. Отключаем авторизацию по паролю.
[root@discipulus74 ~]# mcedit /etc/ssh/sshd_config PasswordAuthentication no [root@discipulus74 ~]# systemctl restart sshd.service
продолжение следует…