Skocz do zawartości

[F22] Konfiguracja Zapory - Otwarcie Portu Pod Ssh


Nifir

Rekomendowane odpowiedzi

Po bardzo długim czasie zainstalowałem Fedorę na nowym serwerze.

 

Jako jedno z pierwszych zabezpieczeń które chciałem zrobić była zmiana portu dla SSH z 22 na 12345

 

vi /etc/ssh/sshd_config
Port 12345
iptables -I INPUT -p tcp -–dport 12345 -j ACCEPT
systemctl restart iptables.service
systemctl restart sshd.service

I przy próbie połączenia przez SSH mam Connection refused.

 

przy ręcznej edycji /etc/sysconfig/iptables:

 -A INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT

Dalej mnie wywala. Czytałem też o firewalld ale przy próbie dodania portu do niego dostałem:

$ firewall-cmd --zone=public --add-port=12345/tcp
FirewallD is not running

 

Natomiast przy edycji wcześniejszego wpisu w /etc/sysconfig/iptables:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

na

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j DROP

Nie mogę się połączyć przez SSH nawet na porcie 22 (po wcześniejszej zmianie portu w configu SSHD), więc wnioskuję, że iptables działa. Dlaczego w takim razie nie mogę otworzyć nowego portu?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli korzystasz z selinux sama zmiana numeru portu to za mało.

Wydanie polecenia systemctl restart sshd.service nie znaczy, że sshd się uruchomił. Sprawdź poleceniem systemctl status sshd

 

 

iptables -I INPUT -p tcp -–dport 12345 -j ACCEPT
systemctl restart iptables
.service

No taka kolejność poleceń powoduje, że to pierwsze w ogóle nie zadziała

Usługę firewalld masz nie uruchomioną, więc ona nie ma nic do rzeczy. I dobrze jeżeli korzystasz z iptables to nie używaj firewalld.

Odnośnik do komentarza
Udostępnij na innych stronach

 

A wystarczyło przeczytać komentarz nad portem w sshd_config  ;)

Fakt, nie przeczytałem, ale

semanage port -a -t ssh_port_t -p tcp 12345 

nie pomogło. :P

 

 

Jeżeli korzystasz z selinux sama zmiana numeru portu to za mało.

Wydanie polecenia systemctl restart sshd.service nie znaczy, że sshd się uruchomił. Sprawdź poleceniem systemctl status sshd

 

No taka kolejność poleceń powoduje, że to pierwsze w ogóle nie zadziała

Usługę firewalld masz nie uruchomioną, więc ona nie ma nic do rzeczy. I dobrze jeżeli korzystasz z iptables to nie używaj firewalld.

No tak, masz rację. Testowałem za to w takiej konfiguracji:

iptables -F
iptables -A INPUT -p tcp --dport 22 -j DROP

i to wywala mi otwarty port 22, a z kolei

iptables -F
iptables -A INPUT -p tcp --dport 12345 -j ACCEPT

zupełnie nie daje efektu.

Skoro odrzucanie działa, to dlaczego nie działa akceptowanie? Czy jest jeszcze inny firewall który może mnie odrzucać?

Odnośnik do komentarza
Udostępnij na innych stronach

[00:56] root@localhost:/etc/sysconfig$ iptables -I INPUT -p tcp --dport 12345 -j ACCEPT
[00:56] root@localhost:/etc/sysconfig$ iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:12345
  146 10844 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    7   440 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 5 packets, 748 bytes)
 pkts bytes target     prot opt in     out     source               destination

I na pod cygwinem na windzie odpalam:

$ nc -v -n -z -w 1 192.168.5.107 12345
nc: connect to 192.168.5.107 port 12345 (tcp) failed: Connection timed out

$ nc -v -n -z -w 1 192.168.5.107 22
Connection to 192.168.5.107 22 port [tcp/*] succeeded!
Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź czy działa sshd

systemctl status sshd

 
iptables -I INPUT -p tcp --dport 12345 -j ACCEPT
$ iptables-save

# Generated by iptables-save v1.4.21 on Tue Sep  8 18:24:34 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [20:1520]
-A INPUT -p tcp -m tcp --dport 12345 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Sep  8 18:24:34 2015

$ systemctl status sshd

â sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2015-09-08 18:19:12 CEST; 6min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 778 (sshd)
   CGroup: /system.slice/sshd.service
           ââ778 /usr/sbin/sshd -D

Sep 08 18:19:12 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Sep 08 18:19:12 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
Sep 08 18:19:12 localhost.localdomain sshd[778]: Server listening on 0.0.0.0 port 22.
Sep 08 18:19:12 localhost.localdomain sshd[778]: Server listening on :: port 22.
Sep 08 18:22:00 localhost.localdomain sshd[890]: Accepted password for nifir from 192.168.5.176 port 50302 ssh2
Sep 08 18:23:18 localhost.localdomain sshd[945]: Did not receive identification string from 192.168.5.219

Zrobiłem też nc nasłuch na 12345:

$ nc -l 12345

i tu sprawa której nie rozumiem. Bo jak wysyłam coś netcatem z innego kompa:

nc MOJSERWER 12345 < test.log

To plik przechodzi. 

A jak tylko słucham portów:

nc -zv MOJSERWER 12345

To dostaję "Connection refused"

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra.... Nie wiem co wcześniej psułem... ale teraz zaskoczyło z palca. Dodałem wpis do iptables, iptables-save, zmieniłem wpis w /etc/ssh/sshd i reloadowałem sshd.service. I tym sposobem działa na porcie 12345

 

EDIT:

Coś chyba miałem spaprane w /etc/sysconfig/iptables

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...