Хостер установил уже Ubuntu Server 10.10 и даже поставил ssh и Apache 2.
Заходим через SSH как root, сразу меняем пароль на нормальный
Добавляем группу избранных, назовём её raccess
Открываем файл, для того чтобы нашу группу сделать "избранной"
Добавляем в конец файла, далее если не оговаривается, то всегда вставляется именно в конец.
%raccess ALL=(ALL) ALL
Добавляем нового пользователя, пускай будет admin, но в теории хорошо как и группу называть по другому, это усложняет взлом подбором.
Добавляем его к ранее созданной группе
Добавляем папку для ключей SSH
Генерируем ключи
Делаем для нашего будущего аккаунта, где вместо нулей подставляем реальный IP адрес
mkdir ~admin/.ssh
mv ~admin/id_rsa.pub ~admin/.ssh/authorized_keys
Назначаем права нашему пользователю
Настраиваем SSH
Проверяем значения и меняем или добавляем строки если нет...
Protocol 2
PermitRootLogin no # отключаем запись для root пользователя
UseDNS no
AllowUsers admin # если пользователей несколько через пробел называем всех
В интернете предлагают сделать следующее, я пока не разобрался как потом залогиниться
Создаём правила маршрутизации в файлике, чтобы после перезагрузки сервера настройки восстанавливались.
Вставляем следующее, и меняем порт для SSH, который недавно ставили 10022, остальные не трогаем, в комментариях видно для чего они понадобятся.
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows mysql
-A INPUT -p tcp --dport 3306 -j ACCEPT
# Allows fcgi
-A INPUT -p tcp --dport 9000 -j ACCEPT
-A INPUT -p tcp --dport 8521 -j ACCEPT
# Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 10022 -j ACCEPT
# Allows mail
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
# Allows ldap
-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT
# Allows memcache
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT
# Allows munin
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4949 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
Чистим память
Применяем наши правила
Проверяем внимательно особенно наш порт SSH
Для восстановления после перезагрузки создаём файл
Вставляем следующее
/sbin/iptables-restore < /etc/iptables.up.rules
Разрешаем запускать этот файл
Перезагружаем ssh
Закрываем Putty, открываем заново поменяв порт. Заходим под admin
Теперь нельзя залогиниться как root...