Автор |
Сообщение |
David Гуру |
|
Сброс вроде так
источник
Код: |
#
# Configurations
#
IPTABLES="/usr/sbin/iptables"
#
# reset the default policies in the filter table.
#
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
#
# reset the default policies in the nat table.
#
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
#
# reset the default policies in the mangle table.
#
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
#
# flush all the rules in the filter and nat tables.
#
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
#
# erase all chains that's not default in filter and nat table.
#
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X |
Внешний сервер ничего не знает о существовании за файрволом локальной сети и компа в нем. Все что внешний сервер знает - это твой внешний ip-адрес (модема). Модем его напрямую пробрасывает на адрес компа (там где pppoe), а дальше мы меняем заголовок на адрес компа в локалке и разрешаем пройти. Комп пакет получает.
Вот тут конечно появлется интересный вопрос: меняет ли модем бриджем адрес в заголовке сам или нет. Если бы модем роутером был (и на нем NAT настроен), тогда однозначно меняет. А вот с бриджем чего-то я даже и не знаю...Последний раз редактировалось: David (Чт 17-07-08 : 23-53), всего редактировалось 1 раз |
|
|
|
|
serg1982 Форумчанин |
|
ProFfeSsoRr писал(а): |
Так, подскажите пожалуйста - как сбросить все правила на те, что грузятся автоматом при старте iptables? А то моих тут уже дофига стало - старые мешаются в логе. |
iptables -F
iptables -F -t nat |
|
|
|
|
ProFfeSsoRr Гуру |
|
Цитата: |
меняет ли модем бриджем адрес в заголовке сам или нет |
ну отсюда логично вытекает вопрос: как это можно посмотреть?
ну блин! Оно совсем сбросило настройки! Пришлось будить маму и перезагружать сервер (я-то через удаленное управление сижу на серваке, а оно закрылось от сброса), т.к. сервак в маминой комнате стоит |
|
|
|
|
David Гуру |
|
чего-то запутались окончательно....
напиши результат ifconfig и route
P.S. а модем роутером никак? |
|
|
|
|
serg1982 Форумчанин |
|
ProFfeSsoRr писал(а): |
Цитата: |
меняет ли модем бриджем адрес в заголовке сам или нет |
ну отсюда логично вытекает вопрос: как это можно посмотреть?
tcpdump
ну блин! Оно совсем сбросило настройки! Пришлось будить маму и перезагружать сервер (я-то через удаленное управление сижу на серваке, а оно закрылось от сброса), т.к. сервак в маминой комнате стоит |
ну извени ты спросил все - я и посоветовал...
Есть мысль что еси сделать вот так
iptables -t nat -A PREROUTING -d 90.189.x.x -p tcp --dport 1234 -j DNAT --to-destination 192.168.0.3:1234
iptables -t nat -A PREROUTING -d 90.189.x.x -p udp --dport 1234 -j DNAT --to-destination 192.168.0.3:1234
это повторять с разными портами для всех узлов сети
а настройках dc++ указывать firewall 192.168.0.1
iptables -t nat -A POSTROUTING -p tcp -o eth1 -j SNAT --to-source 90.189.x.x
iptables -t nat -A POSTROUTING -p udp -o eth1 -j SNAT --to-source 90.189.x.x |
|
|
|
|
ProFfeSsoRr Гуру |
|
Цитата: |
P.S. а модем роутером никак? |
не хочу. Iptables имхо и нужен для того, чтобы модем в бридже работал. А если модем в роутер, то нафига файервол на компе настраивать? А тогда нафига линукс было ставить? Нет уж - надо разобраться и настроить.
Код: |
eth0 Link encap:Ethernet HWaddr 00:1a:4d:5a:12:9b
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:257796 errors:0 dropped:0 overruns:0 frame:0
TX packets:299315 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:196006892 (186.9 MB) TX bytes:226969664 (216.4 MB)
Interrupt:219 Base address:0xe000
eth1 Link encap:Ethernet HWaddr 00:11:95:fc:70:63
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:61152 errors:0 dropped:0 overruns:0 frame:0
TX packets:123350 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5187204 (4.9 MB) TX bytes:154671559 (147.5 MB)
Interrupt:18 Base address:0x6000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:515 errors:0 dropped:0 overruns:0 frame:0
TX packets:515 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:43772 (42.7 KB) TX bytes:43772 (42.7 KB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:90.189.142.25 P-t-P:213.228.116.7 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:257584 errors:0 dropped:0 overruns:0 frame:0
TX packets:299063 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:190286356 (181.4 MB) TX bytes:219163839 (209.0 MB)
|
Код: |
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
nsk-bbar1.ncc.s * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1000 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0
|
Это после загрузки компа, чистые правила. Посмотри, если что сообразишь с конфигом iptables, то дописывай, а я уже не могу - спать хочу, дальше завтра буду разбираться. Спасибо за оказанную помощь! |
|
|
|
|
David Гуру |
|
ProFfeSsoRr
Вообщем после долгих раздумий - вроде так должно работать.
$MODEM - внешний ip
$COMP - конкретный комп в локальной сети
$PORTS - перечисленные черерз запятую порты, используемые компами в локальной сети для DC
все что пришло на внешний адрес на 1234, 1235 - подставляем адрес получателя как адрес конкретной машины (одной). Разные компы локальной сети придется сажать на разные порты, иначе непонятно кому именно предназначается входящий пакет на наш внешний адрес по одному порту.
Код: |
$IPTABLES -t nat -A PREROUTING -d $MODEM -p tcp --dport 1234 -j DNAT --to-destination $COMP:1234
$IPTABLES -t nat -A PREROUTING -d $MODEM -p udp --dport 1235 -j DNAT --to-destination $COMP:1235 |
этих правил должно быть столько, сколько компьютеров в сети будет использовать DC (порты разные для каждой машины)
разрешаем вход по всем портам используемым в локалке для DC. правило действует на все компьютеры локальной сети
Код: |
$IPTABLES -A FORWARD -d 192.168.0.0/24 -p tcp -m multiport --dport $PORTS -j ACCEPT
$IPTABLES -A FORWARD -d 192.168.0.0/24 -p udp -m multiport --dport $PORTS -j ACCEPT |
разрешаем выход по всем портам используемым в локалке для DC. правило действует на все компьютеры локальной сети
Код: |
$IPTABLES -A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dport $PORTS -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.0.0/24 -p udp -m multiport --dport $PORTS -j ACCEPT |
все что идет с компа во внешку подставляем адрес отправителя как наш внешний
Код: |
$IPTABLES -t nat -A POSTROUTING -s $COMP -p tcp --dport 1234 -j SNAT --to-source $MODEM:1234
$IPTABLES -t nat -A POSTROUTING -s $COMP -p udp --dport 1235 -j SNAT --to-source $MODEM:1235 |
этих правил должно быть столько, сколько компьютеров в сети будет использовать DC (порты разные для каждой машины)
P.S. Правила написаны в порядке прохода пакетов по ним.
т.е. сначала
nat prerouting
filter (уже измененных пакетов)
nat postrouting |
|
|
|
|
ProFfeSsoRr Гуру |
|
Переустановил вчера линукс на сервере, и мой вопрос в этом топике разрешился вот такими вот правилами:
Код: |
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -P INPUT DROP #only if the first two are succesful
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -m icmp -i ppp0 --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o ppp0 --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 52441 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 52441 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 52442 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 52442 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 1234 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 1235 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 1235 -j ACCEPT |
Там и торрент, и DC. А первые правила - для доступа в интернет из локалки.
Только теперь более веселая проблема. У меня на сервере 2 программы, которые по SSH общаются друг с другом. И пообщаться почему-то не могут. Попробовал сделать вот так:
Код: |
iptables -A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT |
и не помогло. Прога пишет, что соединение по 127.0.0.1:22 не удалось. И я, если честно, не могу понять, как так файервол блокирует обращения компа к самому себе. Вот какие сейчас правила работают:
Код: |
# Generated by iptables-save v1.3.8 on Thu Sep 25 11:15:40 2008
*mangle
:PREROUTING ACCEPT [3190735:296401105]
:INPUT ACCEPT [3098981:236671016]
:FORWARD ACCEPT [91752:59729977]
:OUTPUT ACCEPT [4590636:6037775910]
:POSTROUTING ACCEPT [4686847:6098004344]
COMMIT
# Completed on Thu Sep 25 11:15:40 2008
# Generated by iptables-save v1.3.8 on Thu Sep 25 11:15:40 2008
*nat
:PREROUTING ACCEPT [131575:12491506]
:POSTROUTING ACCEPT [4565:425964]
:OUTPUT ACCEPT [80430:6495541]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Thu Sep 25 11:15:40 2008
# Generated by iptables-save v1.3.8 on Thu Sep 25 11:15:40 2008
*filter
:INPUT DROP [25772:2316341]
:FORWARD ACCEPT [2559:139131]
:OUTPUT ACCEPT [1989919:2575445779]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ! ppp0 -m state --state NEW -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 52441 -j ACCEPT
-A INPUT -p udp -m udp --dport 52442 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT
-A INPUT -p udp -m udp --dport 1235 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i ppp0 -o ppp0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o ppp0 -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 52441 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 52442 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 1234 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 1235 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Thu Sep 25 11:15:40 2008 |
|
|
|
|
|
ProFfeSsoRr Гуру |
|
И еще мне непонятно, почему не совсем работают те скрипты, которые я вижу везде на форуме. Например, везде диапазон портов если в переменную вписывают, то типа порт:порт - а у меня ругается на такую запись. И путь до iptables везде указывается, а у меня работает просто по "iptables". Но это-то как раз понятно |
|
|
|
|
Ruslan.B. Форумчанин |
|
Млин, я тоже с этим долго бился. В конце концов настроил. Инструкции-то в основном по редхат, а в Дебиане немного отличается.
Но потом я так случайно снёс всё /etc посредством неосторожного обращения с rm-r (((( А забекапенный /etc был ещё до настройки иптаблеса. |
|
|
|
|
TROLL_ Эксперт |
|
в продолжении темы о iptables. может кто подскажет.
#!/bin/bash
iptables -F
iptables -F -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# traf local lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# ICMP
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT
# web
iptables -A INPUT -i eth0 -p tcp --sport 80 --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024:65535 -j ACCEPT
# web https
iptables -A INPUT -i eth0 -p tcp --sport 443 --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024:65535 --dport 443 -j ACCEPT
# webmin
iptables -A INPUT -s 192.168.1.7 -p tcp --dport 10000 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.7 -p tcp --sport 10000 -j ACCEPT
# mail pop3
iptables -A INPUT -i eth0 -p tcp --sport 110 --dport 1024:5999 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024:5999 --dport 110 -j ACCEPT
# mail smtp
iptables -A INPUT -i eth0 -p tcp --sport 25 --dport 1024:5999 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024:5999 --dport 25 -j ACCEPT
# imap, webamail (squirrelmail,roundcube),mail
iptables -A INPUT -i eth0 -p tcp --sport 993 --dport 1024:5999 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 1024:5999 --dport 993 -j ACCEPT
# http 81 reg users for mail, password and ... only lan
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 81 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --sport 81 -j ACCEPT
#ftp (server,client)
iptables -A INPUT -i eth0 -p tcp --sport 21 --dport 0:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 0:65535 --dport 21 -j ACCEPT
# ssh only for admin IP
iptables -A INPUT -s 192.168.1.7 -p tcp --sport 22 --dport 1024:5999 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.7 -p tcp --sport 1024:5999 --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.7 -p tcp --sport 22 --dport 0:1023 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.7 -p tcp --sport 0:1023 --dport 22 -j ACCEPT
# DNS
iptables -A INPUT -i eth0 -p tcp --sport 53 --dport 0:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 0:65535 --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport 53 --dport 0:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 0:65535 --sport 53 -j ACCEPT
так вот... из всего этого написанного работает только icmp. помогите победить эту штуку!!!
модем роутером, интерфейс 1 - eth0.
на машине крутиться сайт(80,443,9999),ssh(22),почтовый сервер(pop3,imap,smtp,),ftp сервер,p2p сервер,openvpn |
|
|
|
|
|
Аватары: Вкл|Выкл ЮзерИнфо: Вкл|Выкл Подписи: Вкл|Выкл
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|
|