preload
Лип 14

Недавно Володимир Тацакович запитував мене про відкриття портів за допомогою 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 не закінчується, є ще багато поглиблених правил, які можуть знадобитися вам в тій чи іншій ситуації, але для початку вам вистачить і цього. Треба щось конкретніше - звертайтеся, допоможу.

Поділись і насолодись:
  • Blogosvit
  • del.icio.us
  • Надішли другу посилання на статтю електронною поштою!
  • Facebook
  • Google
  • LinkedIn
  • MyNews
  • Роздрукуй на пам’ять!
  • Technorati
  • TwitThis
  • BobrDobr
  • Digg
  • Memori
  • MisterWong
  • Reddit

Схожі статті:


RSS підписка | Trackback URI

2 коментаря»

Коментар від vjach
2009-08-16 16:26:45

Дякую! Просто доступно, а головне те що шукав.

Коментар від LinuxMan
2009-08-17 00:59:33

Який хороший коментар. Аж на душі приємно стало :)

 
 
Ім`я (обов’язково)
E-mail (обов’язково, ніколи не буде опубліковано)
Сайт
Підписатися на нові коментарі через email
Ваш коментар (зменшити | збільшити)
Ви можете використовувати теги <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> у ваших коментарях.

Trackback'и на цю статтю