Хостер установил уже Ubuntu Server 10.10 и даже поставил ssh и Apache 2.
Заходим через SSH как root, сразу меняем пароль на нормальный
passwd
Добавляем группу избранных, назовём её raccess
/usr/sbin/groupadd raccess
Открываем файл, для того чтобы нашу группу сделать “избранной”
/usr/sbin/visudo
Добавляем в конец файла, далее если не оговаривается, то всегда вставляется именно в конец.
## Allows people in group raccess to run all commands %raccess ALL=(ALL) ALL
Добавляем нового пользователя, пускай будет admin, но в теории хорошо как и группу называть по другому, это усложняет взлом подбором.
/usr/sbin/adduser admin
Добавляем его к ранее созданной группе
/usr/sbin/usermod -a -G raccess admin
Добавляем папку для ключей SSH
mkdir ~/.ssh
Генерируем ключи
ssh-keygen -t rsa
Делаем для нашего будущего аккаунта, где вместо нулей подставляем реальный IP адрес
scp ~/.ssh/id_rsa.pub admin@0.0.0.0: mkdir ~admin/.ssh mv ~admin/id_rsa.pub ~admin/.ssh/authorized_keys
Назначаем права нашему пользователю
Настраиваем SSH
vim /etc/ssh/sshd_config
Проверяем значения и меняем или добавляем строки если нет…
Port 10022 # Меняем на что нибудь между 1025 и 65536, это так же усложнит жизнь взломщикам. Protocol 2 PermitRootLogin no # отключаем запись для root пользователя UseDNS no AllowUsers admin # если пользователей несколько через пробел называем всех
В интернете предлагают сделать следующее, я пока не разобрался как потом залогиниться
PasswordAuthentication no
Создаём правила маршрутизации в файлике, чтобы после перезагрузки сервера настройки восстанавливались.
vim /etc/iptables.up.rules
Вставляем следующее, и меняем порт для SSH, который недавно ставили 10022, остальные не трогаем, в комментариях видно для чего они понадобятся.
*filter # 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
Чистим память
/sbin/iptables -F
Применяем наши правила
/sbin/iptables-restore < /etc/iptables.up.rules
Проверяем внимательно особенно наш порт SSH
/sbin/iptables -L
Для восстановления после перезагрузки создаём файл
vim /etc/network/if-pre-up.d/iptables
Вставляем следующее
#!/bin/sh /sbin/iptables-restore < /etc/iptables.up.rules
Разрешаем запускать этот файл
chmod +x /etc/network/if-pre-up.d/iptables
Перезагружаем ssh
/etc/init.d/ssh reload
Закрываем Putty, открываем заново поменяв порт. Заходим под admin
Теперь нельзя залогиниться как root…
Источник: http://www.drupal.ru/node/60530
Добавить комментарий к записи "Подготовка сервера"
Чтобы комментировать, необходимо войти в систему.