Nifir Napisano Wrzesień 6, 2015 Zgłoszenie Share Napisano Wrzesień 6, 2015 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 More sharing options...
@sunrise Napisano Wrzesień 6, 2015 Zgłoszenie Share Napisano Wrzesień 6, 2015 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 ACCEPTsystemctl 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 More sharing options...
przemal Napisano Wrzesień 6, 2015 Zgłoszenie Share Napisano Wrzesień 6, 2015 A wystarczyło przeczytać komentarz nad portem w sshd_config # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Nifir Napisano Wrzesień 6, 2015 Autor Zgłoszenie Share Napisano Wrzesień 6, 2015 A wystarczyło przeczytać komentarz nad portem w sshd_config Fakt, nie przeczytałem, alesemanage port -a -t ssh_port_t -p tcp 12345 nie pomogło. 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 More sharing options...
@WalDo Napisano Wrzesień 6, 2015 Zgłoszenie Share Napisano Wrzesień 6, 2015 Musiałbyś pokazać całą konfigurację iptables. Być może przed zezwoleniem na port 12345 masz ustawioną np. regułę odrzucającą wszystkie "wysokie" porty. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Nifir Napisano Wrzesień 6, 2015 Autor Zgłoszenie Share Napisano Wrzesień 6, 2015 [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 More sharing options...
@sunrise Napisano Wrzesień 8, 2015 Zgłoszenie Share Napisano Wrzesień 8, 2015 Sprawdź czy działa sshd systemctl status sshd Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Nifir Napisano Wrzesień 8, 2015 Autor Zgłoszenie Share Napisano Wrzesień 8, 2015 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 More sharing options...
Nifir Napisano Wrzesień 8, 2015 Autor Zgłoszenie Share Napisano Wrzesień 8, 2015 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 More sharing options...
Rekomendowane odpowiedzi
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ę