Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (43)

Лучшие ответы пользователя

Все ответы (83)
  • Вывод результата работы сервиса Linux?

    @krosh
    journalctl -f -u myscript

    Если предположить, что Вы использовали возможности systemd.

    Либо перенаправление > логов в файл и команда tail -f
    Ответ написан
    2 комментария
  • Почему не видит внешний ip адрес пользователя?

    @krosh
    Это нормально, так NAT (Network Address Translation, сетевая трансляция адресов) и работает - подменяет в заголовках пакета один адрес на другой, поэтому у Вас и получается проброс портов и сокрытие внутренней сети от внешнего наблюдателя.

    Вы будете видеть правильные удаленные адреса в случае с маршрутизируемой сетью, т.е. когда не будет NAT, а будет просто проброс трафика с одного интерфейса на другой. Ну или прокси-сервер ставить. Еще есть варинат с VPN-сервером, но тогда каждому клиенту нужно будет ставить vpn-клиента и все будут в одной виртуальной подсети, но все же на конечном сервере Вы будете видеть серые адреса, хотя на VPN-сервере сможете соотнести белый-серый. Наверное других способов тут нет.

    Правила в INPUT не работают, можете их убрать. И рекомендуется MASQUERADE менять на SNAT, если внешний адрес постоянный.
    Ответ написан
    Комментировать
  • Не включается компьютер. Как найти причину?

    @krosh
    Раз гудит, то не запускается - велика вероятность - сломался блок питания. Проверьте напряжение, а лучше найдите рабочий БП и замените.

    Если нет сигналов POST-теста, то либо до него не доходит дело, либо нет бипера. Он есть? Раньше пикал при загрузке? Может отключили при разборке?

    Может и в материнской карте дело. До этого можно дойти методом исключения: БП, память, проц, визуальный осмотр кондиционеров и чипов (могут сгореть). Есть PCI-тестеры с экраном, по коду на котором можно получить больше диагностической информации, можно поискать такой у знакомых или купить.

    Если комп зависает при нагрузке, то это вероятно перегрев. Проверьте температуру в БИОСе.
    Ответ написан
    Комментировать
  • Как с помощью iptables перенаправить пакеты на другой сервер?

    @krosh
    Сейчас вы только подменяете адрес назначения, но Y-хост отвечает хосту источнику через свой шлюз по умолчанию. Т.е. пакет был направлен в адрес X-хоста, а ответ пришел от Y-хоста, отправитель теряется и сбрасывает соединение, поэтому ничего не получается.

    Пакеты через шлюз проходят такие цепочки: PREROUTING, FORWARD, POSTROUTING и вам для каждой нужно правило. Еще нужно, что-бы была разрешена пересылка трафика. Нужно не только подменить адрес назначения (DNAT, PREROUTING), но и заменить адрес источника (SNAT, POSTROUTING), что бы Y-хост отвечал X-хосту, а не по маршруту по умолчанию, и еще не забыть про фильтрацию проходящего трафика (FORWARD).

    Чтобы все работало, так как описано выше, нужны такие действия:

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination Y.Y.Y.Y:80
    iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source X.X.X.X:1024-32000
    iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED  -m comment --comment "РАЗРЕШЕНО Установленные соединения" -j ACCEPT
    iptables -A FORWARD -m conntrack --ctstate NEW -d Y.Y.Y.Y  -m comment --comment "РАЗРЕШЕНО Новое соединение к Y.Y.Y.Y" -j ACCEPT
    iptables -P FORWARD DROP


    Первая команда разрешает форфард трафика через хост.
    Вторая: подмена назначения в PREROUTING, т.е. в точке решения о маршрутизации уже будет принято решения передать пакет дальше в сеть, а не отдавать локальному процессу.
    Третья: подмена адреса источника в цепочке POSTROUTING на выходе на адрес X-хоста. И тогда пакет уже будет выглядеть так, будто он с X-хоста был отправлен на 80 порт Y-хоста.
    Четвертая: работа со статусами. Пропускает только пакеты уже установленого соединения. А соединение можно установить только в одну сторону (пятая строка) и только до Y-хоста.
    Шестая: сбрасывать все пакеты, которые не подпадают под правила цепочки - политика по умолчанию.

    Проблема в данном решении будет только в том, что в логах у вас будет один адрес источника - X-хоста. Если это важно и речь про веб-сервер, то я бы рекомендовал разобраться с проксированием nginx и ничего пробрасывать не придется.

    Еще нужно разобраться с локальным трафиком на 8888 и 80 порты. и трафиком из локальной сети, если это шлюз. Но это уже отдельный вопрос.
    Ответ написан
    4 комментария
  • Настройки iptables для транзита на другой сервер?

    @krosh
    Что-то у Вас каша с правилами. Чтобы порт пробросить в локальную сеть нужно три правила в цепочках: PREROUTING, POSTROUTING и FORWARD.

    Попробуйте почистить все и использовать такие:
    #Пакеты с нужного адреса заворачиваем на компьютер
    iptables -t nat -A PREROUTING -d 22.22.22.22 --dport 9090 -i eth0 -j DNAT --to-destination 196.168.1.200:9090
    
    #Получаем интернет в локалке - это не обязательно, если инет через другой шлюз
    #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 22.22.22.22
    
    #Меняем адрес источника на локальный
    iptables -t nat -A POSTROUTING -d 196.168.1.200 -p tcp -m tcp --dport 9090 -j SNAT --to-source 196.168.1.100
    
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -m comment --comment "ALLOW Установленные соединения" -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 9090 -m comment --comment "ALLOW LAN all 9090" -j ACCEPT


    Цепочка INPUT не влияет на проходящий трафик, можете правило для 9090 от туда удалять.

    Если у Debian есть .100, то не вижу смысла ему еще выдавать какой-то.
    Ответ написан
    3 комментария

Лучшие вопросы пользователя

Все вопросы (3)