URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 36805
[ Назад ]

Исходное сообщение
"Помогите  настроить маршрутизацию, а то уволят! :-("

Отправлено NeurO , 03-Ноя-03 16:00 
Привет всем!

Есть сервер с ASPLinux 7.3 на нем 2 сетевухи, одна смотрит в локальную
сеть, а другая подключена к ADSL маршрутизатору. Настройки вот какие
eth1 (локальный) 192.168.66.66
eth0 (на ADSL) 192.168.0.166
ADSL (как шлюз) 192.168.0.240

Так вот никак не могу настроить чтобы сервер пускал локальных юзеров
в Инет без всяких прокси ...то есть чтобы запросы локальной сети
перенаправлялись на ADSL.

Ядро я пересобрал с включенными функциями маршрутизации (вобщем включил всё).
В /proc/sys/net/ipv4/ip_forwarding стоит 1
    .... Чего ему ещё нада ? ....

Заранее всем благодарен ! ПОМОГИТЕ !


Содержание

Сообщения в этом обсуждении
"Помогите  настроить маршрутизацию, а то уволят! :-("
Отправлено Mikhail , 03-Ноя-03 16:05 
lsmod
iptables -nL
route -n
ifconfig
там и разговор будет

"Помогите  настроить маршрутизацию, а то уволят! :-("
Отправлено Doux , 03-Ноя-03 16:13 
Обрати внимание на такую вешч как NAT. Две сточки и вы получите очередную зарплату. (по меньшей мере я ее получил)

"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено DogEater , 04-Ноя-03 00:21 
для начала
/sbin/route add default gw 192.168.0.240 dev eth0
что равняется записи
GATEWAY=192.168.0.240 в файле /etc/sysconfig/network

затем

/sbin/ipchains -A input -i eth1 -j ACCEPT
/sbin/ipchains -A output -i eth1 -j ACCEPT
/sbin/ipchains -A forward -i eth1 -j ACCEPT
/sbin/ipchains -A input -s !192.168.66.0/255.255.255.0 ! -y -i eth0 -j ACCEPT
/sbin/ipchains -A output -i eth1  -j ACCEPT
/sbin/ipchains -A forward -s 192.168.66.0/255.255.255.0 -j MASQ
это правила для ликбеза - с ними заработает - но безопасности не получишь

вот теперь можешь сувать единицу в /proc/sys/net/ipv4/ip_forwarding
запомни на будущее - отлаживаешь брандмауэр - смотри логи

а теперь марш учить
man route
man ipchains(а правильнее iptables)
ну и замечательный IPTABLES - HOWTO на www.opennet.ru


"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено vova , 04-Ноя-03 07:42 
а нельзя все сделать на вашем ADSL маршрутизаторе ?
не могу понять зачем между ним и вашей сетью еще маршрутизатор на линуксе

"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено Gennadi , 04-Ноя-03 11:03 
>а нельзя все сделать на вашем ADSL маршрутизаторе ?
>не могу понять зачем между ним и вашей сетью еще маршрутизатор на
>линуксе

Скрипт "firewall"

=========================================================================
#!/bin/bash

case "$1" in
  start)
    echo "Starte IP-Paketfilter"

    # iptables-Modul
    modprobe ip_tables
    # Connection-Tracking-Module
    modprobe ip_conntrack
    # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
    modprobe ip_conntrack_irc
    modprobe ip_conntrack_ftp

    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X

    # Default-Policies установить
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    # MY_REJECT-Chain
    iptables -N MY_REJECT

    # MY_REJECT заполнить
    iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
    iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
    iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
    iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
    iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
    iptables -A MY_REJECT -p icmp -j DROP
    iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
    iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

    # MY_DROP-Chain
    iptables -N MY_DROP
    iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
    iptables -A MY_DROP -j DROP

    # все выброшенные пакеты протоколировать
    iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
    iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
    iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "

    # Битые пакеты выбросить
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP

    # Stealth Scans etc. DROPpen
    iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP

    # SYN и FIN установить
    iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

    # SYN und RST одновременно установить
    iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

    # FIN und RST одновременно установить
    iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

    # FIN без ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

    # PSH без ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

    # URG без ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP

    # Loopback-Netzwerk-Kommunikation разрешить
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    # Maximum Segment Size (MSS) для Forwarding на PMTU разрешить
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    # Connection-Tracking активировать
    iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i ! eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Доруск из LAN к eth1 разрешить
    iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT

    # Default-Policies с REJECT
    iptables -A INPUT -j MY_REJECT
    iptables -A OUTPUT -j MY_REJECT
    iptables -A FORWARD -j MY_REJECT

    # Routing
    echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null

    # Masquerading
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    # SYN-Cookies
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

    # Stop Source-Routing
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

    # Stop Redirecting
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

    # Reverse-Path-Filter
    for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

    # Log Martians
    for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

    # BOOTP-Relaying отключить
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

    # Proxy-ARP отключить
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

    # Негодные ICMP-ответы игнорировать
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

    # ICMP Echo-Broadcasts игнорировать
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null

    # Max. 500/Sekunde (5/Jiffie) посылать
    echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

    # Speicherallozierung und -timing für IP-De/-Fragmentierung
    echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
    echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
    echo 30 > /proc/sys/net/ipv4/ipfrag_time

    # TCP-FIN-Timeout защиту от DoS-Attacken установить
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

    # Maximal 3 ответа на один TCP-SYN
    echo 3 > /proc/sys/net/ipv4/tcp_retries1

    # TCP-Pakete maximal 15x повторить
    echo 15 > /proc/sys/net/ipv4/tcp_retries2

    ;;

  stop)
    echo "Stoppe IP-Paketfilter"
    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X
    echo "Deaktiviere IP-Routing"
    echo 0 > /proc/sys/net/ipv4/ip_forward

    # Default-Policies установить
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    ;;

  status)
    echo "Tabelle filter"
    iptables -L -vn
    echo "Tabelle nat"
    iptables -t nat -L -vn
    echo "Tabelle mangle"
    iptables -t mangle -L -vn
    ;;

  *)
    echo "Bad run"
    echo "Syntax: $0 {start|stop|status}"
    exit 1
    ;;

esac
====================================================================

cp firewall /etc/init.d
chmod 755 /etc/init.d/firewall
ln -s /etc/init.d/firewall /sbin/rcfirewall
chkconfig -a firewall
rcfirewall start
iptables -L


"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено NeurO , 05-Ноя-03 12:15 
Уф ты ! Спасибочки ...ща папробую ...

"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено NeurO , 05-Ноя-03 13:08 
>>а нельзя все сделать на вашем ADSL маршрутизаторе ?
>>не могу понять зачем между ним и вашей сетью еще маршрутизатор на
>>линуксе
>
>Скрипт "firewall"
>
НЕРАБОТАЕТ !!! ГОВОРИТ; Try iptables -h or iptables --help for more information

А ты не мог бы выслать мне фалик с этим скриптом
может я как то каряво скопировал его ?

r_22@online.com.ua


"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено NeurO , 05-Ноя-03 12:09 
>а нельзя все сделать на вашем ADSL маршрутизаторе ?
>не могу понять зачем между ним и вашей сетью еще маршрутизатор на
>линуксе

А за тем что директор так хочет! Кто то ему сказал что Линукс это круто ..он купил тачку с П4 ..и заставил разбираться ...



"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено Gennadi , 05-Ноя-03 14:05 

.....НЕРАБОТАЕТ !!! ГОВОРИТ; Try iptables -h or iptables --help for more information......

Cтранно ....

Сейчас скорировал с вебсайта, сделал как написато - работает!!!


"Помогите══настроить маршрутизацию, а то уволят! :-("
Отправлено NeurO , 06-Ноя-03 15:04 
>
>.....НЕРАБОТАЕТ !!! ГОВОРИТ; Try iptables -h or iptables --help for more information......
>
>
>Cтранно ....
>
>Сейчас скорировал с вебсайта, сделал как написато - работает!!!


ЗНАЧИТ Я ПРОСТО "ЧАЙНИК" или даже "ЛАМЕР" и одна мне дорога ...в кабаре ногами дрыгать...


"Помогите  настроить маршрутизацию, а то уволят! :-("
Отправлено Mikhail , 06-Ноя-03 15:12 
запусти его так:
sh -x <script> 2 > error.log
и потом почитай в этом error.log, в чем была ошибка.

"Помогите  настроить маршрутизацию, а то уволят! :-("
Отправлено gennadi , 06-Ноя-03 17:24 
это самый простой firewall - из интернета всё запрещено, а из локальной сети всё разрешено (как ты и хотел).

1.Создай файл firewall

touch firewall

2. Открой этот файл и скопируй туда c вебсайта  всё, начиная с

#!/bin/bash до esac.

3. Скопиркй этот файл в директорию  /etc/init.d
cp firewall /etc/init.d

4. Дай ему права "выполнить"
chmod 755 /etc/init.d/firewall

5. Сделай символический линк  (можно это пропустить)
ln -s /etc/init.d/firewall /sbin/rcfirewall

6. Старт firewall'а
rcfirewall start
или так
/etc/init.d/firewall start

7. посмотри статус
/etc/init.d/firewall status

8. посмотри iptables-правила активировались?
iptables -L

PS: Из выше приведённой рекомендации:

sh -x firewall start 2> error.log

должен получить файл error.log, где написано следующее:

Starte IP-Paketfilter
+ echo 'Starte IP-Paketfilter'
+ modprobe ip_tables
+ modprobe ip_conntrack
+ modprobe ip_conntrack_irc
+ modprobe ip_conntrack_ftp
+ iptables -F
+ iptables -t nat -F
+ iptables -t mangle -F
+ iptables -X
+ iptables -t nat -X
+ iptables -t mangle -X
+ iptables -P INPUT DROP
+ iptables -P OUTPUT DROP
+ iptables -P FORWARD DROP
+ iptables -N MY_REJECT
+ iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix 'REJECT TCP '
+ iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
+ iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix 'REJECT UDP '
+ iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
+ iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix 'DROP ICMP '
+ iptables -A MY_REJECT -p icmp -j DROP
+ iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix 'REJECT OTHER '
+ iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
+ iptables -N MY_DROP
+ iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix 'PORTSCAN DROP '
+ iptables -A MY_DROP -j DROP
+ iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix 'INPUT INVALID '
+ iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix 'OUTPUT INVALID '
+ iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix 'FORWARD INVALID '
+ iptables -A INPUT -m state --state INVALID -j DROP
+ iptables -A OUTPUT -m state --state INVALID -j DROP
+ iptables -A FORWARD -m state --state INVALID -j DROP
+ iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
+ iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
+ iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
+ iptables -A INPUT -i lo -j ACCEPT
+ iptables -A OUTPUT -o lo -j ACCEPT
+ iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
+ iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
+ iptables -A FORWARD -i '!' eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
+ iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
+ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT
+ iptables -A INPUT -j MY_REJECT
+ iptables -A OUTPUT -j MY_REJECT
+ iptables -A FORWARD -j MY_REJECT
+ echo 1
+ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
+ echo 1
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 2
+ echo 2
+ echo 2
+ echo 2
+ echo 2
+ echo 1
+ echo 1
+ echo 1
+ echo 1
+ echo 1
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 0
+ echo 1
+ echo 1
+ echo 5
+ echo 262144
+ echo 196608
+ echo 30
+ echo 30
+ echo 3
+ echo 15


sh -x firewall stop 2> error.log

должен получить файл error.log, где написано следующее:

+ echo 'Stoppe IP-Paketfilter'
+ iptables -F
+ iptables -t nat -F
+ iptables -t mangle -F
+ iptables -X
+ iptables -t nat -X
+ iptables -t mangle -X
+ echo 'Deaktiviere IP-Routing'
+ echo 0
+ iptables -P INPUT ACCEPT
+ iptables -P OUTPUT ACCEPT
+ iptables -P FORWARD ACCEPT

sh -x firewall status 2> error.log

должен получить файл error.log, где написано следующее:
+ echo 'Tabelle filter'
+ iptables -L -vn
+ echo 'Tabelle nat'
+ iptables -t nat -L -vn
+ echo 'Tabelle mangle'
+ iptables -t mangle -L -vn

Пробуй! Должно получиться...