denyhosts продолжает добавлять мой IP - PullRequest
22 голосов
/ 10 февраля 2012

Я пытаюсь разблокировать IP-адрес, с которого я проводил некоторые тесты. Я следовал инструкциям в сети:

$ sudo /etc/init.d/denyhosts stop
$ sudo vim /etc/deny.hosts
[remove the last line where I can see my IP to clear]
$ cd /var/lib/denyhosts/
$ sudo vim *
[remove any occurences of my IP to clear]
$ sudo /etc/init.d/denyhosts start

В этот момент мой IP-адрес возвращается обратно в /etc/deny.hosts. Я пробовал также:

$ cd /var/lib/denyhosts/
$ echo '123.456.789.122' >> /var/lib/denyhosts/allowed-hosts

Я тоже пробовал:

$ echo 'my.ip.to.clear' >> /etc/hosts.allow

К сожалению, hosts.deny всегда имеет приоритет и отказывается от ssh-соединения, как видно из файла журнала:

10 февраля, 10:06:24 ks123456 sshd [22875]: отказано в подключении от 123 456 789,122 (123 456 789,122)

ref: debian / 6.0.4, denyhosts 2.6-10

Ответы [ 8 ]

33 голосов
/ 23 февраля 2014

Это сработало для меня на Centos. Выполните 8 шагов ниже, и вам будет хорошо идти.

  1. Стоп DenyHosts

    # services denyhosts stop

  2. Удалить IP-адрес из /etc/hosts.deny

  3. Редактировать /var/lib/denyhosts/hosts и удалить строки, содержащие IP-адрес. Сохраните файл.

  4. Редактировать /var/lib/denyhosts/hosts-restricted и удалить строки, содержащие IP-адрес. Сохраните файл.

  5. Редактировать /var/lib/denyhosts/hosts-root и удалить строки, содержащие IP-адрес. Сохраните файл.

  6. Редактировать /var/lib/denyhosts/hosts-valid и удалить строки, содержащие IP-адрес. Сохраните файл.

  7. Редактировать /var/lib/denyhosts/users-hosts и удалить строки, содержащие IP-адрес. Сохраните файл.

(необязательно). Попробуйте добавить IP-адрес в / var / lib / denyhosts / разрешенный-хост

  1. Запустить DenyHosts

    # services denyhosts start

8 голосов
/ 24 июля 2012

Инструкции по удалению записи для denyhosts можно найти здесь: http://www.cyberciti.biz/faq/linux-unix-delete-remove-ip-address-that-denyhosts-blocked/. В Ubuntu файлы данных denyhosts расположены по адресу /var/lib/denyhosts.

  1. Убедитесь, что в denyhosts нет записей, представляющих доменное имя для вашего IP-адреса.
  2. После удаления всех вхождений вашего IP-адреса и имени домена из /etc/deny.hosts (/etc/hosts.deny для Ubuntu), если вы все еще не можете войти в систему, проверьте журнал аутентификации, обычно в: /var/log/auth.log Это может дать вам понять, в чем ваша проблема.
  3. Если вы используете linux как на сервере, так и на клиенте, вы можете использовать ssh-copy-id, чтобы вам не требовался пароль для входа в систему, чтобы не блокировать себя при использовании неправильного пароля слишком много раз в будущее.

У меня были проблемы с самим собой, потому что я сохранил местоположение в Dolphin на KDE для моего сервера, используя sftp. Dolphin использует ваше текущее имя пользователя, чтобы попытаться войти в систему, где мой IP-адрес был добавлен в файл hosts.deny.

7 голосов
/ 21 августа 2017

Если приведенные выше инструкции не помогли, возможно, denyhosts добавил IP в брандмауэр iptables.

iptables -L -n -v | grep xxx.xxx.xxx.xxx

Если вы видите что-то подобное:

0 0 DROP all -- * * xxx.xxx.xxx.xxx 0.0.0.0/0

Удалить требуемый IP-адрес с брандмауэра:

iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

И перезапустите сеть, чтобы применить изменения:

/etc/init.d/networking restart

7 голосов
/ 15 июня 2014

Просто добавьте IP-адрес, который всегда должен иметь доступ к файлу:

/etc/hosts.allow

Эта запись может выглядеть следующим образом:

ALL: 30.20.10.0/24

Таким образом, даже если он заканчивается в /etc/hosts.deny также, IP все еще будет иметь доступ.

Mind ALL до IP, я вижу, вы забыли, что с вашим оператором echo.

Ссылки:

3 голосов
/ 05 мая 2016

Вот что мне помогло в CentOS 6.7

  1. Stop DenyHosts (версия 2.6) ./daemon-control stop
  2. Удалите строки / с вашим / целевым IP-адресом из /etc/hosts.deny
  3. Удалить строки / с вашего / целевого IP-адреса из /usr/share/denyhosts/data/hosts
  4. Удалить строки / с вашего / целевого IP-адреса из /usr/share/denyhosts/data/hosts-restricted
  5. Удалить строки / сВаш / целевой IP-адрес из /usr/share/denyhosts/data/hosts-root
  6. Удалите строки / с вашим / целевым IP-адресом из /usr/share/denyhosts/data/hosts-valid
  7. Удалите строки / s с вашим / целевым IP-адресом из /usr/share/denyhosts/data/users-hosts
  8. ДОБАВЬТЕ свой / целевой IP-адрес в /usr/share/denyhosts/data/allowed-hosts.Этот файл просто ожидает один IP на строку.Любой IP-адрес, указанный в этом файле, не будет заблокирован.
  9. Запустить DenyHosts ./daemon-control start
3 голосов
/ 17 апреля 2014

Вы можете сделать это 4 командами. Он автоматизирует более ранний ответ от @Abdellatif с помощью скрипта на python, поэтому вы должны тщательно просмотреть source , прежде чем вставлять эти 4 строки в командную строку (заменяя IP_ADDRESS на ip-адрес):

sudo /etc/init.d/denyhosts stop
git clone  https://github.com/rsprabery/unblock.git
sudo python unblock/unblock.py <IP_ADDRESS>
sudo /etc/init.d/denyhosts start

Должно работать на всех системах Ubuntu. И это быстро. И вам не нужно редактировать какие-либо файлы. Но вы запускаете чужой скрипт под именем sudo.

2 голосов
/ 18 января 2017

Добавление к старому вопросу, но в Debian Wheezy удаление записей IP не помогло: через несколько секунд после запуска «service denyhost start» IP будет повторно добавлен в hosts.deny и все файлы в / var / lib / DenyHosts /. Оказывается, что DenyHosts повторно сканировал /var/log/auth.log, который включал неудачные попытки входа в систему.

После удаления записи IP из файлов, перечисленных выше, перед перезапуском denyhosts принудительно заархивируйте файл auth.log, выполнив (от имени root):

logrotate -vf /etc/logrotate.d/rsyslog

Дважды проверьте, что /var/log/auth.log пуст, затем перезапустите denyhosts.

1 голос
/ 23 августа 2018

Ubuntu 18.04

IP_UNBLOCK='1.2.3.4'
systemctl stop denyhosts
sed -i -e "/$IP_UNBLOCK/d" /etc/hosts.deny
sed -i -e "/^$IP_UNBLOCK/d" /var/lib/denyhosts/hosts
sed -i -e "/^$IP_UNBLOCK/d" /var/lib/denyhosts/hosts-restricted
sed -i -e "/^$IP_UNBLOCK/d" /var/lib/denyhosts/hosts-root
sed -i -e "/^$IP_UNBLOCK/d" /var/lib/denyhosts/hosts-valid
sed -i -e "/$IP_UNBLOCK/d" /var/lib/denyhosts/users-hosts
sed -i -e "/^$IP_UNBLOCK/d" /var/lib/denyhosts/hosts-root
sed -i -e "/refused connect from $IP_UNBLOCK/d" /var/log/auth.log
sed -i -e "/from $IP_UNBLOCK port/d" /var/log/auth.log
iptables -D INPUT -s "$IP_UNBLOCK" -j DROP
ufw reload
systemctl start denyhosts

и запустите его перед установкой denyhosts

echo "All:" $(last -i | grep -v '0.0.0.0' | grep 'root' | head -1 | awk '{print $3}') >> /etc/hosts.allow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...