- Fedora-Fr
- À propos de Fedora-Fr
- Historique
- Statistiques
- Télécharger
- Obtenir Fedora
- Toutes les méthodes de téléchargement
- Support
- Aide sur IRC
- Forums
- Documentation
- Sous-projets
- Plateforme de blog
Dernière news : Fedora 34 n'est plus maintenu
Est-il possible d'ouvrir un autre port SSH que le port standart? tout conservant les règles SELinux de type Enforcing (Edition le 24/10et en maintenant le port 22).
Je souhaite conserver le type Enforcing et ne pas passer en mode Permissif; ceci de manière à ne pas être embêté par ces histoires d'étiquettes sur des nouveaux fichiers crées qui pourraient ne plus être accessible pour certains processus.
Sauf erreur l'interface graphique de SELinux (system-config-selinux) ne le permet pas donc il faudrait alors obligatoirement changer de mode?
Ou alors si c'est possible il faut tout désactiver puis changer les règles et ensuite réactiver SELinux qui re-étiquete les fichiers.
Dernière modification par anche (24/10/2014 20:13:21)
F23
Hors ligne
Suffit de dire à SELinux que tu changes de port =)
semanage port -a -t ssh_port_t -p tcp portnumber
Hors ligne
Je ne change pas de port, j'en ajoute un supplémentaire pour éviter de changer de port à chaque fois que besoin.
Avec l'interface graphique c'est refusé si je conserve le mode Enforcing ou alors il faut passer en UDP.
Au niveau du pare-feu 443 et 22 sont ouverts mais il y a une restriction SELinux sur 443
systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since mar. 2014-10-21 20:35:26 CEST; 2h 28min ago
Main PID: 1012 (sshd)
CGroup: /system.slice/sshd.service
└─1012 /usr/sbin/sshd -D
oct. 21 20:35:26 localhost.localdomain systemd[1]: Starting OpenSSH server da...
oct. 21 20:35:26 localhost.localdomain systemd[1]: Started OpenSSH server dae...
oct. 21 20:35:29 localhost.localdomain sshd[1012]: error: Bind to port 443 on...
oct. 21 20:35:29 localhost.localdomain sshd[1012]: error: Bind to port 443 on...
oct. 21 20:35:29 localhost.localdomain sshd[1012]: Server listening on 0.0.0....
oct. 21 20:35:29 localhost.localdomain sshd[1012]: Server listening on :: por...
oct. 21 20:35:48 localhost.localdomain python[1188]: SELinux is preventing /u...
***** Plugin catchall (...
oct. 21 20:35:48 localhost.localdomain python[1188]: SELinux is preventing /u...
***** Plugin catchall (...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost fil]#
On part du principe que c'est pour faire écouter SSH sur 443 pour bypasser un proxie au travail
EDIT ; la question est bien de conserver le mode Enforcing si c'est possible?
Dernière modification par anche (21/10/2014 23:51:20)
F23
Hors ligne
On peut rien faire en mode Enforcing, même pas supprimer le port standart 22.
Idem en console pour mettre le port 443 c'est refusé et après avoir vérifié par la commande [systemctl status sshd.service]
semanage port -a -t ssh_port_t -p tcp 443
Dernière modification par anche (21/10/2014 23:50:42)
F23
Hors ligne
Ben pourquoi tu veux le virer ? Laisse le port 22 dans la config SELinux ^^
Sinon en root en lançant ma commande, ca ne marche pas ? T'as une erreur dans le terminal ? (reste en TCP pas UDP dans ta config ssh !)
Dernière modification par marc2006 (22/10/2014 09:11:47)
Hors ligne
[fil@localhost ~]$ su
Mot de passe :
[root@localhost fil]# semanage port -a -t ssh_port_t -p tcp 443
ValueError: Port tcp/443 already defined
Idem même message en utilisant le mode graphique.
Le message d'erreur est valable pour n'importe quel autre port.
C'est sans doute du au mode Enforcing. En tout cas normalement on peut bien supprimer le port ssh pour un autre.
Si je lis la doc il faudrait changer de mode pour passer au mode permissif.
Dernière modification par anche (22/10/2014 20:33:57)
F23
Hors ligne
le port 443 est déjà pris pour apache, au lieu d'ajouter un port, vois si tu peux le mettre à jour
On a pas inventé l'électricité en cherchant à améliorer la bougie...
-- Si c'est pas sur le bugzilla, c'est pas un bug ! --
Hors ligne
Le problème est que le port 443 est déjà défini (comme indiqué dans le message).
Donc ça lui pose un problème de faire ça.
Il faudrait voir pour changer le port du https (443) avant de changer celui de ssh.
edit: pingou a été plus rapide ^^
J'ai changé le port ssh, mais je l'ai mis sur un port libre
Dernière modification par Heldwin (22/10/2014 20:35:56)
"The only way to achieve the impossible is to believe it’s possible"
Hors ligne
Oui mais même si je choisi un autre port, le 1234 par exemple pour SSH : SELinux refuse un nouveau port.
Donc je crois que seul le mode permissif permet d'attribuer l'ouverture de ports autres que ceux prédéfinis dans le contexte Enforcing par SELinux.
Edition: bon je vais changer le port du https (443) avant de changer celui de ssh
Dernière modification par anche (22/10/2014 20:39:36)
F23
Hors ligne
Donc je suppose que
semanage port -m -t ssh_port_t -p tcp 443
également ne fonctionnera pas !?
Sinon, oui tente un autre port, supérieur à 1023 ...
edit : non selinux permet la modification des objets sans changement de statut =)
semanage port -l | grep ssh
te donne quoi ?
systemctl restart sshd.service
!!
Dernière modification par marc2006 (22/10/2014 20:43:21)
Hors ligne
[root@localhost fil]# semanage port -m -t ssh_port_t -p tcp 443
[root@localhost fil]# systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since mer. 2014-10-22 19:54:35 CEST; 46min ago
Process: 1105 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 1118 (sshd)
CGroup: /system.slice/sshd.service
└─1118 /usr/sbin/sshd -D
oct. 22 19:54:35 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
oct. 22 19:54:35 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
oct. 22 19:54:36 localhost.localdomain sshd[1118]: error: Bind to port 443 on 0.0.0.0 fail...d.
oct. 22 19:54:36 localhost.localdomain sshd[1118]: error: Bind to port 443 on :: failed: P...d.
oct. 22 19:54:36 localhost.localdomain sshd[1118]: Server listening on 0.0.0.0 port 22.
oct. 22 19:54:36 localhost.localdomain sshd[1118]: Server listening on :: port 22.
oct. 22 19:54:53 localhost.localdomain python[1157]: SELinux is preventing /usr/sbin/sshd ... .
***** Plugin catchall (100. confidence...
oct. 22 19:54:53 localhost.localdomain python[1157]: SELinux is preventing /usr/sbin/sshd ... .
Idem pour le port 1234 il n'est pas pris en compte.
Dernière modification par anche (22/10/2014 20:45:24)
F23
Hors ligne
semanage port -m -t ssh_port_t -p tcp 443
fonctionne chez moi, mais je n'ai rien qui est lancé sur le port 443
shd[1118]: error: Bind to port 443 on 0.0.0.0 fail...d.
ce qui voudrait dire qu'un service utilise déjà le port 443
Que retourne:
netstat -talupen | grep 443
?
Dernière modification par Heldwin (22/10/2014 20:54:23)
"The only way to achieve the impossible is to believe it’s possible"
Hors ligne
Par défaut, apache n'écoute pas sur le port 443 ... si je ne me trompe pas.
Sinon anche, tu fais un systemctl status mais avant il faut redémarrer le service ssh pour que les modifications soient prises en compte
systemctl restart sshd.service
Heldwin a trouvé la commande que je cherchais ^^
Dernière modification par marc2006 (22/10/2014 20:47:09)
Hors ligne
Je vais repartir du message de Marc2006 et donner les retours de commandes qui sont demandées plus haut. Pour Apache (que je n'ai jamais installé sauf Nginx) je vais vérifier si le port 443 est déjà pris mais par défaut il n'écoute pas dessus.
edit : non selinux permet la modification des objets sans changement de statut =)
semanage port -l | grep ssh
te donne quoi ?
systemctl restart sshd.service
!!
petite pause.................
Dernière modification par anche (22/10/2014 20:59:42)
F23
Hors ligne
> Par défaut, apache n'écoute pas sur le port 443 ... si je ne me trompe pas.
Bah si c'est http*s*, que ce soit apache ou ngnix, le port http*s* ne change pas c'est toujours 443.
On a pas inventé l'électricité en cherchant à améliorer la bougie...
-- Si c'est pas sur le bugzilla, c'est pas un bug ! --
Hors ligne
Il me semble que dans la config par défaut (httpd.conf), il y a juste un Listen 80
Non ?
Hors ligne
Je n'ai pas SSL sur aucun des deux Apache ou Nginx.
**************************** c'est pas mal :)
[root@localhost fil]# netstat -talupen | grep 443
[root@localhost fil]#
# semanage port -l | grep ssh
ssh_port_t tcp 1234, 443, 22
[root@localhost fil]# systemctl restart sshd.service
[root@localhost fil]# systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since mer. 2014-10-22 22:04:53 CEST; 4s ago
Process: 4151 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 4154 (sshd)
CGroup: /system.slice/sshd.service
└─4154 /usr/sbin/sshd -D
oct. 22 22:04:53 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
oct. 22 22:04:53 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
oct. 22 22:04:53 localhost.localdomain sshd[4154]: Server listening on 0.0.0.0 port 443.
oct. 22 22:04:53 localhost.localdomain sshd[4154]: Server listening on :: port 443.
oct. 22 22:04:53 localhost.localdomain sshd[4154]: Server listening on 0.0.0.0 port 22.
oct. 22 22:04:53 localhost.localdomain sshd[4154]: Server listening on :: port 22.
[root@localhost fil]#
Donc il faut relancer sshd c'est logique.
L'Administration de SELinux affiche toujours celà c'est normal?
C'est quoi la différence entre -a et -m ?
semanage port -a -t ssh_port_t -p tcp port et semanage port -m -t ssh_port_t -p tcp port
Dernière modification par anche (22/10/2014 23:12:12)
F23
Hors ligne
man semanage-port:
-a pour ajouter
-m pour modifier
"The only way to achieve the impossible is to believe it’s possible"
Hors ligne
pour supprimer c'est -s ?
F23
Hors ligne
Hors ligne
Hors ligne
# semanage port -d -t ssh_port_t -p tcp 22
ValueError: Port tcp/22 is defined in policy, cannot be deleted
Pour supprimer le port 22 c'est pas gagné!
Donc si j'enlève le port 22 dans le fichier /etc/ss/sshd.config, il restera présent sans SELinux.
Dans le cas présent j'ai du mal à saisir le à quoi ça sert SELinux si dans son contexte le port 22 est toujours présent.
je vais relire la documentation...
Dernière modification par anche (22/10/2014 23:23:51)
F23
Hors ligne
c'est peut être une sécu pour éviter de se retrouver à la porte et sans la clé pour entrer
On a pas inventé l'électricité en cherchant à améliorer la bougie...
-- Si c'est pas sur le bugzilla, c'est pas un bug ! --
Hors ligne
Oui tout à fait ça, le port 22 est par défaut et est une valeur qui reste au sein de SELinux :)
Mais tu peux virer le port qui est en trop si tu veux ;) la commande
semanage port -l | grep ssh
permettra de savoir quelles sont les valeurs associées :)
Hors ligne
Une porte d'entrée par le port standart bof!
-l, --list
List records of the specified object type
[root@localhost fil]# semanage 22 -l | grep ssh
semanage: error: argument subcommand: invalid choice: '22' (choose from 'import', 'export', 'login', 'user', 'port', 'interface', 'module', 'node', 'fcontext', 'boolean', 'permissive', 'dontaudit')
[root@localhost fil]#
***************************
Si je supprime le port 22 du fichier sshd.conf et n'ouvre pas ce port, quel incidence avec le fait que SELinux conserve ce paramètre?
Dernière modification par anche (24/10/2014 19:49:15)
F23
Hors ligne