Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / узнать ip клиента / 25 сообщений из 51, страница 1 из 3
11.09.2015, 14:53
    #39049281
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
есть сервер на tomcat в локальной сети, есть к нему доступ из-вне через что-то с помощью проброса портов.
вопросы:
можно ли на сервере получить ip внешнего клиента?
можно ли на сервере получить ip локального клиента, который обращается к этому серверу через инет из другой локальной сети?

цель - блокировка от перебора логина/пароля с конкретного ip
...
Рейтинг: 0 / 0
11.09.2015, 15:18
    #39049312
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадя,
конкретного юзверя нельзя. Ты увидишь и заблокируешь ещё до томката в линуксе, но только целый кусок сегмента или провайдера данного негодяя.
...
Рейтинг: 0 / 0
11.09.2015, 15:30
    #39049324
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
это не на томкете делать надо - думаю на nginx или что там у вас или еще раньше ...

Если Ваш прокси пробрасывает заголовки (не удаляет их)

то можно среди этих поискать :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 // Проевка по IP  на прокси 
    public static String getClientIpAddr(HttpServletRequest request) {
        if (request == null) {
            return null;
        }
        String ip = request.getHeader("X-Forwarded-For");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }

        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
...
Рейтинг: 0 / 0
11.09.2015, 15:34
    #39049330
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
а получить какой-нибудь параметр идентифицирующий юзера, браузер, железо или ещё что? что передается методом post.
...
Рейтинг: 0 / 0
11.09.2015, 15:37
    #39049333
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
у меня apache, но мне надо это поиметь в сервлете...
...
Рейтинг: 0 / 0
11.09.2015, 15:59
    #39049370
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяу меня apache, но мне надо это поиметь в сервлете...

ну и отлично - вот путь ваш апатч эти заголовки вам и предает,а вы их будете анализировать :)


вадяа получить какой-нибудь параметр идентифицирующий юзера, браузер, железо или ещё что? что передается методом post..

HttpServletRequest request - все что там есть - вы все сможете получить :)

и сессию (id) и куки и версию браузера ... и верcию ос итд ... все что ходите :)
...
Рейтинг: 0 / 0
11.09.2015, 16:04
    #39049378
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяцель - блокировка от перебора логина/пароля с конкретного ip

это делается другими методами :
1) чтобы боты не лазили и не перебирали : ставите капчу ( или если нужно быстро - просто и временное решение - скрытое поле)
2) на апаче (nginx) ставите количество запросов к конкретному ресурсу в минуту от одноногого пользователя (например 3 запроса в минуту) - если больше - ставите его в черный список - самый простой способ -
пусть ваши админы настроят iptables по таймауту .
...
Рейтинг: 0 / 0
11.09.2015, 16:31
    #39049421
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
авторэто делается другими методами :
1) чтобы боты не лазили и не перебирали : ставите капчу ( или если нужно быстро - просто и временное решение - скрытое поле)
2) на апаче (nginx) ставите количество запросов к конкретному ресурсу в минуту от одноногого пользователя (например 3 запроса в минуту) - если больше - ставите его в черный список - самый простой способ -
пусть ваши админы настроят iptables по таймауту .

1 от капчу юзера взвоют...
2 как определяется юзер? по ip?

мне надо именно в сервлете, проанализировать и сделать определённые действия.

авторну и отлично - вот путь ваш апатч эти заголовки вам и предает,а вы их будете анализировать :)
есть ли настройки у apache чтоб он это всё передавал?

но, перед апачем стоит ещё один комп/роутер с чем-то....

есть како-нибудь софт позволяющий посмотреть что приходит от клиента, более простое чем wireshark
...
Рейтинг: 0 / 0
11.09.2015, 16:53
    #39049456
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадя1 от капчу юзера взвоют...


ее можно выдавать с 5 или любой n попытки.

вадя2 как определяется юзер? по ip?


Это очень сложный вопрос - в самом простом смысле - никак :)

если загорячиться , то токены разные или session id серверный итд...


вадяно, перед апачем стоит ещё один комп/роутер с чем-то....

есть како-нибудь софт позволяющий посмотреть что приходит от клиента, более простое чем wireshark


логи самого апача :) и его конфиг - зайдите на сервере сами все увидите :)
...
Рейтинг: 0 / 0
11.09.2015, 17:08
    #39049476
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
авторлоги самого апача :) и его конфиг - зайдите на сервере сами все увидите :)
смотрел, апач с этим не заморачивается, показывает ip компа/роутера в локальной сети, через который идет выход в инет...
...
Рейтинг: 0 / 0
11.09.2015, 17:14
    #39049482
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяавторлоги самого апача :) и его конфиг - зайдите на сервере сами все увидите :)
смотрел, апач с этим не заморачивается, показывает ip компа/роутера в локальной сети, через который идет выход в инет...

ну у него конфиги есть пусть выводит больше инфы - все заголовки итд ...

второй вариант - то что стоит перед апачем - просто выбрасывает все заголовки и всю инфу и подставляет свой ip /
...
Рейтинг: 0 / 0
11.09.2015, 18:09
    #39049569
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяесть сервер на tomcat в локальной сети, есть к нему доступ из-вне через что-то с помощью проброса портов.
вопросы:
можно ли на сервере получить ip внешнего клиента?
можно ли на сервере получить ip локального клиента, который обращается к этому серверу через инет из другой локальной сети?

цель - блокировка от перебора логина/пароля с конкретного ip1. getRemoteAddr ;
2. Только если адреса другой сети маршрутиризируемые и не используется NAT;
3. Remote Address Filter .
...
Рейтинг: 0 / 0
11.09.2015, 18:24
    #39049587
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
это всё не обеспечивает ...

поправьте, если не прав :
из-вне приходит запрос через мой "роутер" я его вижу как ip роутера в моей локальной сети + порт(который назначает роутер) и через который сервлет общается с клиентом.
по номеру этого порта я могу идентифицировать клиента ?
и какое время жизни назначенного номера порта для данного соединения?
...
Рейтинг: 0 / 0
11.09.2015, 19:42
    #39049656
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Atum1второй вариант - то что стоит перед апачем - просто выбрасывает все заголовки и всю инфу и подставляет свой ip /
в линуксе прямо в сетевой карте ставится фильтр.
...
Рейтинг: 0 / 0
11.09.2015, 19:44
    #39049658
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадя,
мой пример.
У меня провайдер в германии.
Чтобы перебросить порт 8080 на 80 или поставить блокировки-фильтры, ствится фильтр в сетевой карте (виртуальной).
...
Рейтинг: 0 / 0
11.09.2015, 19:47
    #39049660
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяэто всё не обеспечивает ...

поправьте, если не прав :
из-вне приходит запрос через мой "роутер" я его вижу как ip роутера в моей локальной сети + порт(который назначает роутер) и через который сервлет общается с клиентом.
по номеру этого порта я могу идентифицировать клиента ?
и какое время жизни назначенного номера порта для данного соединения?

никак, не заморачивайся.
клиента за натом никак не идентифицируешь, бань адрес нат, т.е. всю его локалку.
прокси используют ноль целых хрен десятых, проверкой можно тоже не заморачиваться.
прочих волшебных ид не существует.
...
Рейтинг: 0 / 0
11.09.2015, 20:04
    #39049671
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Petro123вадя,
мой пример.
У меня провайдер в германии.
Чтобы перебросить порт 8080 на 80 или поставить блокировки-фильтры, ствится фильтр в сетевой карте (виртуальной).
не совсем понял, как это может мне помочь..

авторникак, не заморачивайся.
клиента за натом никак не идентифицируешь, бань адрес нат, т.е. всю его локалку.
прокси используют ноль целых хрен десятых, проверкой можно тоже не заморачиваться.
прочих волшебных ид не существует.
ну у меня так и сделано...
но хочется улучшить, дело в том, что помимо левых переборщиков, есть и официальные юзеры из одной локалки, и если несколько из них при входе сделают ошибку - сервер заблокирует всю контору, это как бы не очень хорошо
это конечно экстремальный случай, но пока есть время хочется иметь лучшее решение
...
Рейтинг: 0 / 0
11.09.2015, 20:11
    #39049672
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяну у меня так и сделано...
но хочется улучшить, дело в том, что помимо левых переборщиков, есть и официальные юзеры из одной локалки, и если несколько из них при входе сделают ошибку - сервер заблокирует всю контору, это как бы не очень хорошо
это конечно экстремальный случай, но пока есть время хочется иметь лучшее решение

если бы решение существовало, люди бы не заморачивались капчами и прочими подобными вещами.
можешь замедлить переборщика, либо как выше писали - ограничить рейт на файрволе (iptables)
либо даже в сервлете отслеживай количество неудачных входов с одного ип за период времени и бань на время или навсегда, в админке сделай разбан.
типа, сделать бан адреса на час, если приключился отпуск или новый год, клиенты час покурят, если у компа, по обращению разбанил.
...
Рейтинг: 0 / 0
11.09.2015, 20:36
    #39049686
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
дак как банить у меня решено, банить - я баню, только я вижу всех под одним ip собственной локалки, у меня сервер в локалке. и заходят на него снаружи ... вот в чем проблема.
...
Рейтинг: 0 / 0
11.09.2015, 20:41
    #39049689
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
а доступ к компу подключенному у инету - только один - на нем стоит прога мапящяя определённые порты на мой внутренний сервак.
т.е. к серверу обращение xxx.xxx.xxx.xxx:nnnn
...
Рейтинг: 0 / 0
11.09.2015, 21:27
    #39049710
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
вадяа доступ к компу подключенному у инету - только один - на нем стоит прога мапящяя определённые порты на мой внутренний сервак.
т.е. к серверу обращение xxx.xxx.xxx.xxx:nnnn


Ну заголовки.. Пусть в заголовках передают тебе с прокси из реальные ip.

Опять же у тебя есть session id ... Функции запомнить меня.... куки итд....

Токены аля oauth token итд.

Там где формы твои ставь вместо капчи скрытые поля и меняй значения в них периодически по заведомо известному тебе алгоритму... На сервере проверяй скрытые поля и если запрос не с твоей страницы заворачивается... Если капчу лень делать....


Это называется Cross Site Request Forgery (CSRF) - Spring
...
Рейтинг: 0 / 0
11.09.2015, 21:31
    #39049713
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Но это все косметика... Основная работа должна идти га прокси... Фильтровать нужно там а уж каким образом это делается. Программно например через iptables... Nginx или аппаратно через циску или чтоттам у вас.... И дело это не твоё а админов... Поставь им задачу и пивас)
...
Рейтинг: 0 / 0
11.09.2015, 21:54
    #39049720
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Я не понял. У тебя корпоратив или публичный сайт?
Если первое, то ты можешь заслать на клиента любой свой код. И и отслеживать любые атаки.
...
Рейтинг: 0 / 0
11.09.2015, 21:56
    #39049721
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Только не перебарщивай.
Качай скилы как программист, а не админ.
...
Рейтинг: 0 / 0
11.09.2015, 22:08
    #39049725
output
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать ip клиента
Можно попробовать банить по отпечатку (fingerprint) браузера.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / узнать ip клиента / 25 сообщений из 51, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]