Il y a quelques jours, j'ai commencé à me soucier beaucoup de la sécurité de mes données, je nmap
me retrouve avec:nmap 127.0.0.1
Surprise, surprise, j'ai beaucoup de services actifs à écouter localhost:
$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Le seul que je pourrais utiliser est ssh
(bien qu'il ne soit probablement pas bien configuré, je vais garder cette question à une autre question).
Pour autant que je sache, le ipp
protocole est utilisé par CUPS pour partager mes imprimantes, je n'ai pas besoin de les partager, il suffit d'accéder aux imprimantes à partir d'un serveur.
Ceci est la sortie de netstat -lntup
l'utilisateur root, en supprimant les adresses localhost:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 497/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2217/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:50022 0.0.0.0:* LISTEN 1021/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 906/rpcbind
tcp6 0 0 :::22 :::* LISTEN 497/sshd
tcp6 0 0 :::42712 :::* LISTEN 1021/rpc.statd
tcp6 0 0 :::445 :::* LISTEN 892/smbd
tcp6 0 0 :::139 :::* LISTEN 892/smbd
tcp6 0 0 :::111 :::* LISTEN 906/rpcbind
udp 0 0 0.0.0.0:51566 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:68 0.0.0.0:* 7362/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 906/rpcbind
udp 0 0 192.168.1.255:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:137 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:655 0.0.0.0:* 906/rpcbind
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2217/dropbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:34805 0.0.0.0:* 1021/rpc.statd
udp6 0 0 :::40192 :::* 1021/rpc.statd
udp6 0 0 :::111 :::* 906/rpcbind
udp6 0 0 :::655 :::* 906/rpcbind
udp6 0 0 :::5353 :::* 615/avahi-daemon: r
udp6 0 0 :::42629 :::* 615/avahi-daemon: r
Comment configurer ces services pour qu'ils n'écoutent le monde extérieur que lorsque je les utilise?
netstat -lntup
-l = écouter -n = numéro -t = tcp -u = udp -p = pid. Montre quels processus vous exécutez et quels ports ils exposent. Tout ce qui est ouvert à 127.0.0.1 est inaccessible à Internet.eth0
?) En ajoutant danssmb.conf
les deux directivesbind interfaces only = yes
etinterfaces = eth0
.Réponses:
Déterminez votre exposition
En prenant votre sortie de la
netstat
commande, ce qui ressemble à beaucoup de services est en fait une très courte liste:Obtenir une configuration du terrain
En regardant cette liste, il y a plusieurs services que je laisserais seuls.
Commencez à le réduire - désactivez Samba
Vous pouvez probablement désactiver immédiatement Samba, il représente 2 des services ci-dessus,
nmbd
etsmbd
. Il est douteux que vous en ayez vraiment besoin sur un ordinateur portable, que ce soit sur un hôte local ou votre IP face à votre réseau.Pour vérifier qu'ils fonctionnent, vous pouvez utiliser la commande suivante
status
:La désactivation des services peut être source de confusion avec tous les flux en cours avec upstart, /etc/rc.d, business, il peut donc être difficile de déterminer quel service est sous quelle technologie. Pour Samba, vous pouvez utiliser la
service
commande:Maintenant c'est parti:
Les garder à l'écart ... en permanence
Pour les garder hors tension, j'ai utilisé cet outil
sysv-rc-conf
, pour gérer les services à partir d'une console, cela fonctionne mieux que la plupart. Il vous permet de vérifier quels services vous souhaitez exécuter et dans quel niveau d'exécution ils doivent être démarrés / arrêtés:Désactiver le reste de ce qui N'EST PAS nécessaire
Alors maintenant, Samba est parti, il nous reste ce qui suit:
Pour les 3 restants, vous pouvez faire la même chose que nous avons fait pour Samba pour les désactiver également.
CUPS?
Pour désactiver CUPS, dont vous n'avez pas vraiment besoin en passant, vous pouvez suivre la même danse consistant à désactiver le service, puis à le désactiver. Pour pouvoir imprimer, vous devrez configurer chaque imprimante individuellement sur votre système. Vous pouvez le faire via l'
system-config-printer
interface graphique.Rendre ces services à la demande?
C'est vraiment le cœur de votre question, mais il n'y a pas vraiment de solution miracle pour rendre ces services «intelligents» afin qu'ils fonctionnent lorsqu'ils sont utilisés, plutôt que tout le temps.
# 1 - Systemd vs UpstartC'est en partie la répartition actuelle entre systemd et upstart . Il y a un bon aperçu des 2 technologies concurrentes ici .
Les deux technologies essaient de faire des choses légèrement différentes, l'OMI, étant donné leurs ensembles de fonctionnalités, systemd semble davantage orienté vers les serveurs tandis que l'upstart semble davantage orienté vers le bureau. Au fil du temps, cela fonctionnera, l'OMI et les deux services seront stables et riches en fonctionnalités.
Finalement, les deux services offriront un démarrage et un arrêt à la demande pour tous les services qu'ils gèrent. Des fonctionnalités telles que celles
# 2 - Support techniqueStopWhenUnneeded=yes
qui existent déjàsystemd
par exemple, ce n'est donc qu'une question de temps jusqu'à ce que ces capacités se développent.Certains services ne supportent pas du tout d'être arrêtés / démarrés très bien. Des services comme ceux-ci ne
sshd
semblent pas avoir de sens de fonctionner à la demande, surtout s'ils sont largement utilisés. De plus, certains services comme Apache fournissent en eux-mêmes des mécanismes pour faire tourner plus ou moins leurs propres auditeurs qui se gèrent eux-mêmes. Il est donc difficile de savoir comment les services à la demande fournissystemd
ouupstart
vont s'intégrer à ces types de services.Est-ce vraiment nécessaire?
Vous entendrez des deux côtés que c'est exagéré ou que vous devriez adopter une approche minimaliste en n'installant que ce dont vous avez absolument besoin, mais c'est vraiment un choix personnel. Comprendre que ces services sont là et ce qu'ils font est vraiment ce qui est important. À la fin de la journée, un ordinateur est un outil, et en utilisant un système Unix, vous dites déjà que vous êtes prêt à jeter un œil derrière le rideau et à comprendre ce qui fait tourner votre ordinateur.
Je dirais que ce type de questionnement est exactement l'état d'esprit que l'on devrait s'efforcer de traiter avec les ordinateurs et Unix en général.
Les références
systemd - wikipedia
[10: http://tech.cueup.com/blog/2013/03/08/running-daemons/
la source
127.0.0.1 n'est pas le "monde extérieur", il regarde à l'intérieur de la maison.
Vérifiez la configuration de votre pare-feu (iptables dans Linux aujourd'hui), la plupart d'entre eux ne devraient pas être accessibles depuis l'extérieur.
N'exécutez pas les services dont vous n'avez pas besoin. Désinstallez tous les logiciels non requis.
Changez les mots de passe pour être plus forts. Vérifiez votre utilisation du système, ne cherchez pas au hasard un site Web intéressant. Vérifiez la configuration anti-phishing, anti-scripts, etc. du navigateur. Révisez votre utilisation de SSH et de su / sudo.
Mais surtout, une paranoïa excessive est contre-productive. Ne vous laissez pas piéger par l' éclat de la technologie .
la source
Bien que vous puissiez «fermer» des services individuels, il est peut-être plus simple de configurer un pare-feu. Presque toutes les distributions courantes (Ubuntu, Debian, Centos, etc.) prennent en charge les iptables intégrés.
Un jeu de règles simple pour commencer: (vous pouvez simplement les saisir à l'invite de commande; pour les rendre permanents, ajoutez-les à vos scripts de démarrage ou dites-nous quelle distribution vous utilisez. Sur Centos par exemple: system-config -firewall est une bonne interface utilisateur pour configurer les règles iptables)
Fondamentalement - autorisez ssh entrant; laissez tomber tout le reste.
Votre chaîne INPUT ressemble maintenant à ceci:
Puis à une date ultérieure, dites que vous souhaitez autoriser 'samba' (partage de fichiers Windows): vous pouvez exécuter
Le
-I
préfixe et règle la liste;-A
ajoute une règle. Votre chaîne ressemble maintenant à ceci:La
INPUT
chaîne fait référence aux paquets destinés à votre système. D'autres chaînes sontOUTPUT
destinées aux paquets de votre ordinateur, à Internet etFORWARD
aux paquets acheminés via votre ordinateur (c'est-à-dire les paquets qui «transitent» votre ordinateur, comme la zone de transit d'un aéroport - des trucs qui ne sont pasINPUT
parce qu'ils n'entrent pas dans votre ordinateur). ).Comme note de départ: nmap'ing 127.0.0.1 n'est pas très utile; de nombreux services ne sont accessibles qu'à partir de 127.0.0.1 et aucune autre adresse. Si vous n'avez pas d'autre machine, vous pouvez exécuter nmap depuis - essayez d'utiliser Shields UP de Gibson Research! ( https://www.grc.com/shieldsup ) - qui est un nmap-lite en ligne gratuit. Ou ajoutez un commentaire avec votre adresse IP / e-mail et je vous mapperai :)
la source