Архив автора: admin

Проброс портов iptables в Linux

С увеличением количества компьютеров, необходимое количество IP адресов увеличивалось и диапазона IPv4 начало не хватать. Тогда была разработана технология NAT, которая позволяет нескольким компьютерам объединяться в локальную сеть и быть доступными из внешней сети по IP адресу маршрутизатора.

Когда пакет приходит на маршрутизатор, выполняется выяснение какому устройству он был адресован и замена ip адресата на нужный. Кроме переопределения IP получателя и отправителя, NAT может изменять порты. Это называется проброс портов и может быть полезно если вы создали частную сеть, но все же хотите пропускать некоторые виды трафика. Всем этим можно управлять с помощью iptables. В этой статье мы рассмотрим как выполняется проброс портов iptables в Linux.

Как работает NAT?

Чтобы иметь возможность общаться с другими компьютерами в сети компьютер должен иметь уникальный ip адрес. Но поскольку количество адресов уменьшалось нужно было придумать технологию, которая позволяла бы давать один адрес нескольким машинам. И была придумана технология NAT или Network Address Translation.

Все работает очень просто. Компьютер имеет свой адрес в локальной сети, он не виден из интернета. Когда ему нужно отправить пакет, он отправляет его роутеру, затем роутер подменяет адрес отправителя на свой и передает пакет дальше к цели. Параллельно роутер запоминает с какого локального компьютера был отправлен пакет на этот адрес. Дальше ответный пакет приходит роутеру, он подменяет адрес назначения на адрес нужного компьютера и отдает пакет в локальную сеть.

Недостаток в том, что инициировать подключение извне нельзя, потому что маршрутизатор просто еще не знает к кому обращаются. Тут на помощь приходит проброс портов. Мы можем сказать роутеру: при поступлении пакетов на порт 80 перенаправлять их на порт 80 компьютера 192.168.1.2. Теперь адрес отправителя и порт будет заменяться на указанный нами и пакет будет передан туда, куда нужно. Если на маршрутизаторе установлен Linux, то все это можно настроить с помощью iptables.

Проброс портов в iptables

Первое что нужно сделать, это включить переадресацию трафика на уровне ядра, если это еще не сделано. Для этого выполните:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Чтобы настройка сохранялась после перезагрузки используйте такую команду:

sudo sysctl -w net.ipv4.ip_forward=1

Мы не будем здесь подробно рассматривать правила iptables и значение каждой опции, поэтому перед тем, как читать дальше вам лучше ознакомиться со статьей iptables для начинающих. Дальше рассмотрим проброс портов iptables nat.

Настройка прохождения пакетов

Сначала мы рассмотрим как разрешить прохождение пакетов через маршрутизатор. Для этого в брандмауэре есть цепочка FORWARD. По умолчанию для всех пакетов применяется правило DROP, которое означает что все нужно отбросить. Сначала разрешим инициализацию новых соединений, проходящих от eth0 до eth1. Они имеют тип contrack и представлены пакетом SYN:

sudo iptables -A FORWARD -i eth0 -o eth1 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT

Действие ACCEPT означает, что мы разрешаем это соединение. Но это правило разрешает только первый пакет, а нам нужно пропускать любой следующий трафик в обоих направлениях для этого порта (80). поэтому добавим правила для ESTABLIHED и RELEATED:

sudo iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

$ sudo iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Дальше явно установим что наша политика по умолчанию — DROP:

sudo iptables -P FORWARD DROP

Это еще не проброс портов, мы только разрешили определенному трафику, а именно на порт 80, проходить через маршрутизатор на другие машины локальной сети. Теперь настроим правила, которые будут отвечать за перенаправление трафика.

Модификация пакетов в iptables

Далее мы настроим правила, которые будут указывать как и куда нужно перенаправить пакеты, приходящие на порт 80. Сейчас маршрутизатор может их пропускать в сеть, но он еще не знает куда. Для этого нам нужно будет настроить две вещи — модификацию адреса назначения (Destination) DNAT и модификацию адреса отправителя (Source) SNAT.

Правила DNAT настраиваются в цепочке PREROUTING, в таблице NAT. Эта операция изменяет адрес назначения пакета чтобы он достиг нужной нам цели, когда проходит между сетями. Клиенты будут отправлять пакеты нашему маршрутизатору, и им не нужно знать топологию внутренней сети. Пакет автоматически будет приходить нашему веб-серверу (192.168.1.2).

С помощью этого правила мы перенаправляем все пакеты, пришедшие на порт 80, к 192.168.1.2 опять же на порт 80:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2

Но это только половина работы. Пакет будет иметь исходный адрес клиента, а значит будет пытаться отправить ответ ему. Так как клиент ожидает получить ответ от маршрутизатора, то нормального TCP соединения не получиться. Чтобы решить эту проблему нужно модифицировать адрес источника и заменить его на адрес маршрутизатора 192.168.1.1. Тогда ответ придет маршрутизатору, а тот уже от своего имени передаст его в сеть.

sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -d 192.168.1.2 -j SNAT --to-source 192.168.1.1

Если вы хотите перенаправить трафик на порт 8080, то нужно указать его после ip адреса:

sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -d 192.168.1.2 -j SNAT --to-source 192.168.1.1:8080

Также может понадобиться выполнить проброс диапазона портов iptables, для этого просто укажите диапазон, например, 1000:2000:

sudo iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 1000:2000 -d 192.168.1.2 -j SNAT --to-source 192.168.1.1

После добавления этого правила можете проверять работу перенаправление портов iptables будет выполняться и все будет отправляться так, как нужно.

Сохранение настроек iptables

Теперь, когда все настроено, нужно сохранить этот набор правил, чтобы он загружался автоматически при каждом старте. Для этого выполните:

sudo service iptables-persistent save

Готово. Теперь проброс портов iptables ubuntu будет работать так, как нужно.

Выводы

В этой статье мы рассмотрели как выполняется перенаправление портов iptables. Процесс включает в себя разрешение на проходящий трафик на уровне ядра, разрешение определенного типа трафика, а также настройку адресов источника и назначения для правильного прохождения пакетов.

На завершение, видео о том, что такое NAT:

https://youtu.be/F7kCOa6PybQ



2017-01-01T10:39:12
Сервер

Глубокий или Темный Интернет: как попасть в Deep Web

Услышав о мифическом Глубоком или Темном Интернете, пользователь сразу задается вопросом, а как туда попасть, как зайти на сайт в глубоком или темном интернете. Если вас также мучает подобное любопытство, то данная статье должна вам помочь. Здесь вы узнаете, что такое Глубокий или Темный Интернет и как туда попасть. Читать

Жировой гепатоз — ожирение клеток печени

жировой гепатозПрисутствие в печени некоторого количества жира является нормой, однако если жир составляет более 5-10% веса, у человека может развиться жировой гепатоз. В некоторых случаях это заболевание может привести к серьезным осложнениям.

Алкогольный жировой гепатоз

Жировой гепатоз может развиваться при регулярном злоупотреблении алкоголем. В развитии этого нарушения большую роль играет генетика. Во-первых, она во многом определяет склонность человека к употреблению алкоголя; во-вторых, количество ферментов печени, которые участвуют в переработке алкоголя, также заложено на генетическом уровне. Наряду со злоупотреблением алкоголя, на развитие алкогольного жирового гепатоза могут повлиять такие факторы, как гепатит С, избыток железа в организме, ожирение и неправильное питание (в особенности употребление пищу большого количества жирных продуктов).

Неалкогольный жировой гепатоз

Неалкогольный жировой гепатоз является одной из самых распространенных причин хронических заболеваний печени. У некоторых пациентов это нарушение не имеет симптомов и не вызывает повреждений печени. Однако определенные формы жирового гепатоза этого типа могут привести в значительным повреждениям. Одним из них является цирроз, при котором здоровые клетки печени замещаются рубцовой тканью. Повышается риск развития еще более тяжелый заболеваний, таких как печеночная недостаточность и рак печени. Сегодня жировой гепатоз встречается не только у взрослых, но и у подростков и даже у детей. Не в последнюю очередь это связано с особенностями образа жизни.

Причины

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

Результаты недавних исследований дают основания предположить, что бесконтрольное размножение бактерий в тонкой кишке и некоторые другие изменения в кишечнике также связаны с развитием неалкогольного жирового гепатоза.

Острый жировой гепатоз беременных

В редких случаях жир быстро накапливается в печени беременных женщин. Это состояние связано с серьезным риском как для будущей матери, так и для плода. Следствие жирового гепатоза во время беременности может стать печеночная недостаточность, почечная недостаточность, тяжелая инфекция или геморрой. Механизм возникновения этого заболевания не ясен, однако очевидно, что на его развитие оказывают влияние гормональные изменения. При своевременном лечении прогноз благоприятен и для матери, и для будущего малыша.

Симптомы жирового гепатоза

В начале развития жировой гепатоз у большинства пациентов протекает бессимптомно. На более поздних этапах, как правило, через несколько лет, появляются следующие симптомы:

При алкогольном жировом гепатозе симптомы могут усугубляться в периоды запоев.

В тяжелых случаях жировой гепатоз перетекает в цирроз печени, характерными симптомами которого являются застой жидкости в организме, атрофия мышц, внутреннее кровотечение, желтуха, печеночная недостаточность.

Видео-обои в Linux

Более подробная инструкция о использовании видео в качестве обоев рабочего стола в Linux…

 

# Устанавливаем конфиги и пакеты:
sudo apt install mpv git youtube-dl
git clone https://github.com/varlesh/video-wallpaper-linux.git
cp -R video-wallpaper-linux/mpv ~/.config/
cp video-wallpaper-linux/VideoWallpaper.desktop ~/.local/share/applications/

# Устанавливаем shantz-xwinwrap 64-bit:
wget https://launchpad.net/~varlesh-l/+archive/ubuntu/ubuntu-tools/+files/shantz-xwinwrap_0.3-2~ppa~natty1_amd64.deb
sudo dpkg -i shantz-xwinwrap_0.3-2~ppa~natty1_amd64.deb

# Устанавливаем shantz-xwinwrap 32-bit:
wget https://launchpad.net/~varlesh-l/+archive/ubuntu/ubuntu-tools/+files/shantz-xwinwrap_0.3-2~ppa~natty1_i386.deb
sudo dpkg -i shantz-xwinwrap_0.3-2~ppa~natty1_i386.deb

# Обладатели видеокарт Nvidia и AMD поменяйте вывод видео на hwdec=vdpau в конфиге mpv:
nano ~/.config/mpv/mpv.conf

# Путь к своему видео прописываем в значке запуска:
nano ~/.local/share/applications/VideoWallpaper.desktop

# Отключить видео-обои:
killall mpv