Puncte:0

Iptables: permite ssh numai prin vpn nu funcționează

drapel us

Trebuie să permit ssh numai prin VPN (openvpn) folosind iptables. Toate serviciile (ssh, vpn) sunt situate pe aceeași mașină. Regulile mele actuale pentru vpn și ssh:

# setați politica implicită
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# reguli de culoare
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

# permite localhost
iptables -A INTRARE -i $LO -j ACCEPT
iptables -A IEȘIRE -o $LO -j ACCEPT

# Securitate
iptables -A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP -m comentariu --comentare „primul segment tcp necesită bit SYN”

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP -m comentariu --comentare „elimină pachetele de XMAS”

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP -m comentariu --comment "elimină pachetele NULL"

iptables -A INPUT -p icmp --icmp-type address-mask-request -j DROP -m comment --comentare „elimină atacurile smurf ICMP”
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
iptables -A INPUT -p icmp --icmp-type router-solicitation -j DROP
iptables -A INPUT -p icmp -m limit --limit 2/secundă -j ACCEPT

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP -m comentariu --comment "elimină pachetele deteriorate (invalide)"
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP    

# permite traficul VPN
iptables -A INTRARE -i $WAN -p tcp -m conntrack --ctstate NOU,STABILIT --dport $PORT_OPENVPN -j ACCEPT
iptables -A OUTPUT -o $WAN -p tcp -m conntrack --ctstate ESTABLISHED --sport $PORT_OPENVPN -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $WAN -j MASQUERADE

iptables -A FORWARD -s 10.8.0.0/24 -o $WAN -j ACCEPT
iptables -A FORWARD -i $TUN -o $WAN -m conntrack --ctstate RELATED,STABLISHED -j ACCEPT
iptables -A FORWARD -i $WAN -o $TUN -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# permite SSH
iptables -t nat -I POSTROUTING -p tcp -m tcp --sport $PORT_SSH -o $TUN -j MASQUERADE
iptables -A FORWARD -i $TUN -o $WAN -p tcp --dport $PORT_SSH -j ACCEPT
iptables -A FORWARD -i $WAN -o $TUN -p tcp --sport $PORT_SSH -j ACCEPT

iptables -A INTRARE -p tcp -m tcp --dport $PORT_SSH -j ACCEPT
iptables -A IEȘIRE -p tcp -m tcp --sport $PORT_SSH -j ACCEPT

dar deocamdată ssh nu funcționează nici prin vpn, nici fără el. Ce fac greșit ?

ACTUALIZAȚI Ieșirea de ssh -vv:

OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
debug1: Citirea datelor de configurare .ssh/config
debug2: resolve_canonicalize: numele gazdei <ADRESA IP VPS AICI> este adresa
debug2: ssh_connect_direct
debug1: Conectarea la <ADRESA IP VPS AICI> [<ADRESA IP VPS AICI>] portul 22.
debug1: Conexiune stabilită.
debug1: fișier de identitate .ssh/id_rsa tip -1
debug1: fișier de identitate .ssh/id_rsa-cert tip -1
debug1: fișier de identitate .ssh/id_dsa tip -1
debug1: fișier de identitate .ssh/id_dsa-cert tip -1
debug1: fișier de identitate .ssh/id_ecdsa tip -1
debug1: fișier de identitate .ssh/id_ecdsa-cert tip -1
debug1: fișier de identitate .ssh/id_ed25519 tip -1
debug1: fișier de identitate .ssh/id_ed25519-cert tip -1
debug1: fișier de identitate .ssh/id_xmss tip -1
debug1: fișier de identitate .ssh/id_xmss-cert tip -1
debug1: șir de versiune locală SSH-2.0-OpenSSH_for_Windows_8.1
debug1: versiunea de protocol la distanță 2.0, versiunea de software la distanță OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
debug1: potrivire: OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 pat OpenSSH_7.0*, OpenSSH_7.1*, OpenSSH_7.2*, OpenSSH_7.3*, OpenSSH_7.4*, OpenSSH_7.5*, OpenSSH_7.6*,.Open 7* compat 0x04000002
debug2: fd 3 setarea O_NONBLOCK
debug1: Autentificare la <ADRESA IP VPS AICI>:22 ca „<LOGIN HERE>”
depanare1: SSH2_MSG_KEXINIT trimis
depanare1: SSH2_MSG_KEXINIT primit
debug2: propunere KEXINIT client local
debug2: algoritmi KEX: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange16,-diffshaie25-hellman6 -sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: algoritmi cheie gazdă: [email protected],[email protected],[email protected],rsa- [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256,ssh-rsa,[email protected],ssh-ed25519
debug2: cifruri ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: cifre stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MAC-uri ctos: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MAC-uri stoc: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compresie ctos: none,[email protected],zlib
debug2: compresie stoc: none,[email protected],zlib
debug2: limbi ctos:
debug2: limbi stoc:
debug2: first_kex_follows 0
debug2: rezervat 0
debug2: propunere peer server KEXINIT
debug2: algoritmi KEX: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange16,-diffshaie25-hellman6 -sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
debug2: algoritmi cheie gazdă: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256
debug2: cifruri ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: cifre stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MAC-uri ctos: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MAC-uri stoc: [email protected],[email protected],[email protected],[email protected],hmac [email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compresie ctos: none,[email protected]
debug2: compresie stoc: none,[email protected]
debug2: limbi ctos:
debug2: limbi stoc:
debug2: first_kex_follows 0
debug2: rezervat 0
debug1: kex: algoritm: curve25519-sha256
debug1: kex: algoritm cheie gazdă: ecdsa-sha2-nistp256
debug1: kex: server->cifrare client: [email protected] MAC: <implicit> compresie: niciuna
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compresie: niciunul
debug1: aștept SSH2_MSG_KEX_ECDH_REPLY
debug1: cheie gazdă server: ecdsa-sha2-nistp256 SHA256:qUdNYwEs+cvEVkMKTz4RNOObOBsIByhRaehiNvybIi4
debug1: Gazda „<ADRESA IP VPS AICI>” este cunoscută și se potrivește cu cheia gazdă ECDSA.
debug1: Cheia găsită în .ssh/known_hosts:3
debug2: set_newkeys: modul 1
debug1: reintroduceți tastele după 134217728 blocuri
debug1: SSH2_MSG_NEWKEYS trimis
debug1: aștept SSH2_MSG_NEWKEYS
depanare1: SSH2_MSG_NEWKEYS primit
debug2: set_newkeys: modul 0
debug1: reintroduceți după 134217728 blocuri
debug1: pubkey_prepare: ssh_get_authentication_socket: Nu există un astfel de fișier sau director
debug1: va încerca cheia: .ssh/id_rsa
debug1: va încerca cheia: .ssh/id_dsa
debug1: va încerca cheia: .ssh/id_ecdsa
debug1: va încerca cheia: .ssh/id_ed25519
debug1: va încerca cheia: .ssh/id_xmss
debug2: pubkey_prepare: terminat
depanare1: SSH2_MSG_EXT_INFO primit
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, -nistp521>
debug2: service_accept: ssh-userauth
depanare1: SSH2_MSG_SERVICE_ACCEPT primit
debug1: Autentificări care pot continua: cheie publică, parolă
debug1: Următoarea metodă de autentificare: cheie publică
debug1: Se încearcă cheia privată: .ssh/id_rsa
debug1: Se încearcă cheia privată: .ssh/id_dsa
debug1: Se încearcă cheia privată: .ssh/id_ecdsa
debug1: Se încearcă cheia privată: .ssh/id_ed25519
debug1: Se încearcă cheia privată: .ssh/id_xmss
debug2: nu am trimis un pachet, metoda dezactivare
debug1: Următoarea metodă de autentificare: parola

debug1: read_passphrase: nu se poate deschide /dev/tty: nu există un astfel de fișier sau director
<LOGIN HERE>@<VPS IP ADDRESS HERE> Parola utilizatorului:
debug2: am trimis un pachet de parole, așteptați răspuns
debug1: Autentificarea reușită (parolă).
Autentificat la <ADRESA IP VPS AICI> ([<ADRESA IP VPS AICI>]:22).
depanare1: canal 0: nou [sesiune-client]
debug2: canal 0: trimite deschis
debug1: se solicită [email protected]
debug1: Intrarea în sesiunea interactivă.
debug1: gaj: rețea
depanare1: ENABLE_VIRTUAL_TERMINAL_INPUT este acceptat. Citirea VTSequence din consolă
depanare1: ENABLE_VIRTUAL_TERMINAL_PROCESSING este acceptat. Consola acceptă analiza ansi
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug2: channel_input_open_confirmation: canal 0: începe apel invers
debug2: fd 3 setarea TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: canalul 0: cererea de confirmare pty-req 1
debug2: canalul 0: cererea de confirmare a shell-ului 1
debug2: channel_input_open_confirmation: canal 0: callback finalizat
debug2: canal 0: deschideți confirmarea ferestrei 0 rmax 32768
debug2: channel_input_status_confirm: tip 99 id 0
debug2: cererea de alocare PTY acceptată pe canalul 0
debug2: canalul 0: ajustarea rcvd 2097152
debug2: channel_input_status_confirm: tip 99 id 0
debug2: cererea shell acceptată pe canalul 0
Ginnungagap avatar
drapel gu
Nu există absolut nicio regulă DROP/REJECT, trebuie să înțelegem că toate lanțurile le respectă implicit sau este rupt pur și simplu prin adăugarea de reguli NAT?
Sergio Ivanuzzo avatar
drapel us
@Ginnungagap mulțumesc pentru comentariu. Am adăugat o parte completă a configurației iptables la întrebarea mea. Vă rog să-mi spuneți dacă pot adăuga informații suplimentare.
Ginnungagap avatar
drapel gu
Puteți posta rezultatul încercării de conectare SSH cu `ssh -vv`? Deoarece sunt regulile firewall-ului mi se par OK.
Sergio Ivanuzzo avatar
drapel us
@Ginnungagap Mă conectez la VPS-ul meu prin Putty (win10) și mă conectez la VPN prin clientul openvpn (win10). Ați putea spune, cum pot obține rezultatul necesar în acest caz?
Ginnungagap avatar
drapel gu
Îmi pare rău că nu pot, poate cineva mai versat în universul Microsoft te poate ajuta...
Sergio Ivanuzzo avatar
drapel us
@Ginnungagap Îmi pare rău, se pare că cmd (win10) permite procesarea comenzii pe care ați postat-o. Am adăugat rezultatul în cauză mai sus. Poti te rog sa te uiti?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.