[+] Przekierowanie dost

Masz problemy z siecią bądź internetem? Zapytaj tu
czater
Posty: 70
Rejestracja: 05 września 2007, 08:56
Lokalizacja: Warszawa/Częstochowa

[+] Przekierowanie dostępu przez ssh dla maszyny wewnątrz sieci

Post autor: czater »

Witam.

Odziedziczyłem serwer na Debianie 6.0 oraz działający na nim firewall zbudowany w oparciu o iptables, pełniący w firmie rolę bramy internetowej. W związku z tym, że moja wiedza o iptables jest podstawowa nie zmieniałem pliku z regułami. Mam problem z połączeniem się z zewnątrz poprzez ssh na porcie 7000 na jedną z maszyn wewnątrz sieci pomimo następującego wpisu w firewallu:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -p tcp -d 178.76.9.2 --dport 7000 -j DNAT --to 192.168.10.101:22
iptables -A FORWARD -p tcp -d 192.168.10.101 --dport 22 -j ACCEPT
Oto cały plik firewalla:

Kod: Zaznacz cały

#!/bin/sh
IPTABLES=/sbin/iptables
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ipt_recent
modprobe ipt_mac
modprobe ip_conntrack
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe iptable_mangle
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
 
#Czyszczenie wszelkich [B]reguł[/B]
iptables -F
iptables -X
iptables -t nat -F 
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X
iptables -F PREROUTING -t nat
iptables -F POSTROUTING -t nat
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z
 
# ustawienie polityki działania
iptables -P INPUT DROP
iptables -A INPUT -p igmp -j DROP
iptables -P FORWARD DROP
iptables -A FORWARD -p igmp -j DROP
iptables -P OUTPUT DROP  
iptables -A OUTPUT -p igmp -j DROP  
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P INPUT DROP
 
 
# zezwolenie na ruch dla interfejsów pętli zwrotnej
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
iptables -I INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -I OUTPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -I INPUT -i lo -m state --state ESTABLISHED,RELATED -j ACCEPT
 
 
## Zezwolenie na ruch juz nawiazany
 
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
################  DNS ##################################
 
iptables -A INPUT -i eth0 -s 212.74.32.1 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.32.1 -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.33.1 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.33.1 -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.34.50 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.34.50 -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.34.49 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -s 212.74.34.49 -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW --sport 1024: --source 192.168.10.0/24 --dport 53 --destination 192.168.10.3 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --sport 1024: --source 192.168.10.0/24 --dport 53 --destination 192.168.10.3 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW --sport 1024: --source 172.17.0.0/24 --dport 53 --destination 172.17.0.1 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --sport 1024: --source 172.17.0.0/24 --dport 53 --destination 172.17.0.1 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW --sport 1024: --source 172.17.1.0/24 --dport 53 --destination 172.17.1.1 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --sport 1024: --source 172.17.1.0/24 --dport 53 --destination 172.17.1.1 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW --sport 1024: --source 172.17.100.0/24 --dport 53 --destination 172.17.100.1 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --sport 1024: --source 172.17.100.0/24 --dport 53 --destination 172.17.100.1 -j ACCEPT
 
iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 53 -j ACCEPT
 
 
# blokowanie pakietów 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
 
# blokowanie pakietów z błędnie ustawionymi flagami
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP 
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP 
iptables -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
 
# połączenie FTP Pasive
# dobry # iptables -A FORWARD -p tcp --sport 1024:60000 --dport 40000:60000 -m state --state NEW -j ACCEPT
#
iptables -A FORWARD -o eth0 -m state --state NEW -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport ftp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport ftp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport ftp-data -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport ftp-data -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 1024:60000 --dport 40000:60000 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 1024:60000 --dport 40000:60000 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Fragments : Don't trust the little buggers. Send 'em to hell.
iptables -A INPUT -i eth0 -f -j LOG --log-level debug --log-prefix "IPTABLES FRAGMENTS: "
iptables -A INPUT -i eth0 -f -j DROP
iptables -A FORWARD -i eth0 -f -j LOG --log-level debug --log-prefix "IPTABLES FRAGMENTS: "
iptables -A FORWARD -i eth0 -f -j DROP
 
 
# Refuse spoofed packets claiming to be the loopback
iptables -A INPUT -i eth0 -d 127.0.0.0/8 -j DROP
iptables -A OUTPUT -o eth0 -s 127.0.0.0/8 -j DROP
iptables -A FORWARD -i eth0 -d 127.0.0.0/8 -j DROP
iptables -A FORWARD -o eth0 -s 127.0.0.0/8 -j DROP
 
 
# Odrzucanie odpowiedzi na zapytania auth - przyspieszanie połączeń ftp
iptables -A OUTPUT -p TCP -s 0/0 --destination-port 113 -j REJECT
iptables -A INPUT -p TCP -s 0/0 --destination-port 113 -j REJECT
iptables -A FORWARD -p TCP -s 0/0 --destination-port 113 -j REJECT
 
 
#  Blokowanie Lan-menagera
iptables -I INPUT -p tcp --dport 135:139 -j DROP
iptables -I INPUT -p udp --dport 135:139 -j DROP
iptables -I INPUT -p tcp --dport 445 -j DROP
iptables -I INPUT -p udp --dport 445 -j DROP
iptables -A INPUT -p tcp --dport 5060 -j DROP
iptables -A INPUT -p udp --dport 5060 -j DROP
iptables -I OUTPUT -p tcp --dport 135:139 -j DROP
iptables -I OUTPUT -p udp --dport 135:139 -j DROP
iptables -I FORWARD -p tcp --dport 135:139 -j DROP
iptables -I FORWARD -p udp --dport 135:139 -j DROP
iptables -I FORWARD -p tcp --dport 445 -j DROP
iptables -I FORWARD -p udp --dport 445 -j DROP
iptables -I FORWARD -p tcp --dport 1433 -j DROP
iptables -I FORWARD -p udp --dport 1433 -j DROP
iptables -I FORWARD -p tcp --dport 1434 -j DROP
iptables -I FORWARD -p udp --dport 1434 -j DROP
iptables -A FORWARD -p tcp --dport 5060 -j DROP
iptables -A FORWARD -p udp --dport 5060 -j DROP
iptables -A FORWARD -p tcp --dport 6968 -j DROP
iptables -A FORWARD -p udp --dport 6968 -j DROP
iptables -A FORWARD -p tcp --dport 1080 -j DROP
iptables -A FORWARD -p udp --dport 1080 -j DROP
iptables -A FORWARD -p tcp --dport 515 -j DROP
iptables -A FORWARD -p udp --dport 515 -j DROP
iptables -t filter -A FORWARD -p udp --dport 135:139 -j DROP
iptables -t filter -A FORWARD -p udp --dport 135:139 -j DROP
 
# obsługa icmp
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 0 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT
 
$IPTABLES -A FORWARD -m pkttype --pkt-type broadcast -j DROP
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m pkttype --pkt-type broadcast -j DROP
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m pkttype --pkt-type broadcast -j DROP
$IPTABLES -A FORWARD -s 0/0 -p udp -m pkttype --pkt-type broadcast -j DROP
 
$IPTABLES -A FORWARD -s 0/0 -p icmp -f -j DROP
$IPTABLES -A FORWARD -p icmp -j DROP
 
iptables -A INPUT -p icmp -j DROP
iptables -A OUTPUT -p icmp -j DROP
 
 
# zezwolenie na wyjscie z bramy do Internetu
 
$IPTABLES -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
 
 
# Utworzenie dostepu do wymaganych uslug
 
##############################################################################################
[B]# przekierowanie  - dostep zdalny po ssh do serwera wewnetrznego
iptables -t nat -A PREROUTING -p tcp -d 178.76.9.2 --dport 7000 -j DNAT --to 192.168.10.101:22
iptables -A FORWARD -p tcp -d 192.168.10.101 --dport 22 -j ACCEPT
 
# przekierowanie polaczen z internetu na serwer WWW
iptables -t nat -A PREROUTING -p tcp -d 178.76.9.26 --dport 80 -j DNAT --to 192.168.10.101:80
iptables -A FORWARD -p tcp -d 192.168.10.101 --dport 80 -j ACCEPT[/B]
        
# wlaczenie maskarady
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.17.0.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.17.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.17.100.0/24 -j MASQUERADE
 
 
# pozwolenie na nawiazanie polaczenia do WWW na bramie od strony sieci wewentrznej
 
iptables -A INPUT -p tcp -m state --state NEW --source 192.168.10.0/24 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --source 172.17.1.0/24 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --source 172.17.0.0/24 --dport 80 -j ACCEPT
 
 
##    Logowanie pakietow
 
iptables -t nat -A PREROUTING -i eth1 -p tcp -j LOG -m state --state NEW --log-level 7 --log-prefix "Logowanie userow pre tcp "
iptables -t nat -A PREROUTING -i eth1 -p udp -j LOG -m state --state New --log-level 7 --log-prefix "Logowanie userow pre udp "
iptables -t nat -A PREROUTING -i eth1 -p icmp -j LOG -m state --state New --log-level 7 --log-prefix "Logowanie userow pre icmp "
 
iptables -t nat -A POSTROUTING -o eth0 -p tcp -j LOG -m state --state NEW --log-level 7 --log-prefix "Logowanie userow post tcp "
iptables -t nat -A POSTROUTING -o eth0 -p udp -j LOG -m state --state New --log-level 7 --log-prefix "Logowanie userow post udp "
iptables -t nat -A POSTROUTING -o eth0 -p icmp -j LOG -m state --state New --log-level 7 --log-prefix "Logowanie userow post icmp "
 
 
iptables -t filter -A FORWARD -o eth0 -p tcp -j LOG -m state --state NEW --log-level 7 --log-prefix "Logowanie userow forw tcp "
iptables -t filter -A FORWARD -o eth0 -p tcp -j LOG -m state --state NEW --log-level 7 --log-prefix "Logowanie userow forw tcp "
iptables -t filter -A FORWARD -o eth0 -p udp -j LOG -m state --state New --log-level 7 --log-prefix "Logowanie userow forw udp "
 
#UWAGA, wylaczylem, ale nie dziala - do poprawki
#iptables -I FORWARD -p tcp --dport 25 -syn-mlimit --limit 1/s --limit-burst 5 -j LOG --log-level 7 --log-prefix "Trojan "
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
#  i wszystko co ponadto -- KILL
 
$IPTABLES -A FORWARD -j DROP
$IPTABLES -t filter -A FORWARD -j DROP
$IPTABLES -A INPUT -j DROP
$IPTABLES -A OUTPUT -j DROP
iptables -A FORWARD -p udp -j DROP
 
iptables -A INPUT -p udp -i eth1 -d 255.255.255.255 --destination-port 67:68 -j DROP
iptables -A INPUT -p udp -i eth0 -d 255.255.255.255 --destination-port 67:68 -j DROP
route add -net 224.0.0.0 netmask 255.0.0.0 reject
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Tak na szybko, tam nie powinno być czasem tak?

Kod: Zaznacz cały


iptables -t nat -A PREROUTING -p tcp -s 178.76.9.2 --dport 7000 -j DNAT --to 192.168.10.101:22

czater
Posty: 70
Rejestracja: 05 września 2007, 08:56
Lokalizacja: Warszawa/Częstochowa

Post autor: czater »

Adres 178.76.9.2 jest interfejsem zewnętrznym pod którym serwer jest widoczny z zewnątrz.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Racja, racja, powinno działać według mnie.

Masz włączone przekierowanie portu w jaju tak?

Kod: Zaznacz cały

grep forward /etc/sysctl.conf
czater
Posty: 70
Rejestracja: 05 września 2007, 08:56
Lokalizacja: Warszawa/Częstochowa

Post autor: czater »

Zmieniłem tak jak podałeś z

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -p tcp -d 178.76.9.2 --dport 7000 -j DNAT --to 192.168.10.101:22
na:

Kod: Zaznacz cały

iptables -t nat -A PREROUTING -p tcp -s 178.76.9.2 --dport 7000 -j DNAT --to 192.168.10.101:22[/QUOTE]

Przekierowanie portu jest włączone:
[code]# Uncomment the next line to enable packet forwarding for IPv4
net/ipv4/conf/default/forwarding = 1
# Uncomment the next line to enable packet forwarding for IPv6
net/ipv6/conf/default/forwarding = 0

Niestety nadał nie wpuszcza po tym porcie.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Zmień z powrotem. Umieść te dyrektywy, gdzieś na początku skryptu, zaraz po ustawieniach domyślnych i sprawdź.
czater
Posty: 70
Rejestracja: 05 września 2007, 08:56
Lokalizacja: Warszawa/Częstochowa

Post autor: czater »

Zmieniłem z powrotem tak jak było i wrzuciłem na początek, niestety nadal nie działa
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

A ta dyrektywa odnosząca się do przekierowania ruchu www działa poprawnie?

Coś wcześniej blokuje Tobie ten ruch. Ja bym zahaszował wynalazki tego typu:

Kod: Zaznacz cały


ptables -A FORWARD -i eth0 -f -j LOG --log-level debug --log-prefix "IPTABLES FRAGMENTS: " iptables -A FORWARD -i eth0 -f -j DROP
Ewentualnie sprawdź w logach po frazie 'IPTABLES FRAGMENTS:' czy czasem nie ma tam logowań tego ruchu do ssh.
czater
Posty: 70
Rejestracja: 05 września 2007, 08:56
Lokalizacja: Warszawa/Częstochowa

Post autor: czater »

Tak, o tyle dziwnie, że dyrektywa odnosząca się do www działa poprawnie. Wyłączyłem te wszystkie IPTABLES FRAGMENTS i sprawdziłem w logach, nic nie ma odnośnie ,,IPTABLES FRAGMENTS''.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

A z sieci wewnętrznej możesz się dostać przez ssh używając adresu

Kod: Zaznacz cały

192.168.10.101:22 
ODPOWIEDZ