Недавно запитував мене про відкриття портів за допомогою iptables. Вирішив написати про це невеличку статтю на майбутнє.
Отже, ваше ядро підтримує iptables і ви готові його налаштовувати. Для початку закриваємо повністю свій комп’ютер від доступу ззовні:
iptables -P INPUT DROP
Відтепер всі спроби під'єднатися до вас на будь-який порт закінчаться невдачею. Також для справжніх параноїків можна використати команду:
iptables -P OUTPUT DROP
Яка заблокує і вихідні з’єднання від вашого комп’ютера до сервера.
Ну що ж? Ви ввели ці команди і ізолювали комп’ютер, а таким чином захистили його від атак. Але допустимо ви запустили Apache і бажаєте відкрити 80 порт для доступу ззовні. Для цього скористаємось командою:
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
Тепер люди ззовні можуть під’єднатися і побачити ваш чарівний сайт
. Замість 80 можна підставити будь-який потрібний вам порт. Якщо ви для параної заблокували всі вихідні з’єднання, то для перегляду веб-сторінок зі свого комп’ютера не забудьте додати правило:
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
і повторити його для всіх портів, до яких бажаєте з’єднуватися.
Тепер поговоримо про NAT. Уявимо що зовнішній інтерфейс інтернету - eth0, а ваш внутрішній інтерфейс локальної мережі - eth1. Спершу пояснимо це ядру за допомогою команд:
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
Тепер ми вмикаємо NAT командою:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Від тепер комп’ютери локальної мережі мають доступ до інтернету. Якщо ж один із цих комп’ютерів має виступати як сервер, то ми можемо налаштувати роутинг портів:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \
--to 192.168.13.4:80
Тепер при виклику 80 порта сервера, клієнти будуть отримувати інформацію від 192.168.13.4. Так само можна роутити порти торрентів чи будь-якого іншого сервіса який потребує прямий зв’язок, а не NAT.
Якщо NAT та/чи роутинг портів не працює, впевніться що у файлі /etc/sysctl.conf параметр "net.ipv4.ip_forward" має значення "1":
net.ipv4.ip_forward = 1
На цьому налаштування iptables не закінчується, є ще багато поглиблених правил, які можуть знадобитися вам в тій чи іншій ситуації, але для початку вам вистачить і цього. Треба щось конкретніше - звертайтеся, допоможу.
















Дякую! Просто доступно, а головне те що шукав.
Який хороший коментар. Аж на душі приємно стало