Signer une Applet ou java.security.AccessControlException: access denied
by bouleetbil on juin.08, 2011, under Frugalware, GNU/Linux et BSD
Si vous rencontrez cette erreur :
java.security.AccessControlException: access denied, c’est juste que vous devez signer votre applet.
Vous pouvez avoir cette erreur avec l’applet vnc de tighvnc :
Installation :
# pacman-g2 -S tightvnc
Démarrer vnc :
$ vncserver -geometry 1024x600 -httpd /usr/lib/vnc/classes/ -depth 24:1
Et l’applet de vnc va échouer avec java.security.AccessControlException: access denied
La solution :
Signer l’applet /usr/lib/vnc/classes/VncViewer.jar
1. Création du certificat :
# pacman-g2 -S openjre
$ /usr/lib/jvm/java-6-openjdk/jre/bin/keytool -genkey
$ /usr/lib/jvm/java-6-openjdk/jre/bin/keytool -selfcert
2. Signer l’applet :
# pacman-g2 -S openjdk
Vous devez avoir le droit d’écrire dans /usr/lib/vnc/classes le temps de signer l’applet.
$ /usr/lib/jvm/java-6-openjdk/bin/jarsigner -storepass KeySorePassword -keypass KeyPassPassword /usr/lib/vnc/classes/VncViewer.jar mykey
Maintenant, l’applet de vnc est accessible dans votre navigateur.
Proxy personnel en 5minutes
by bouleetbil on juin.07, 2011, under Frugalware, GNU/Linux et BSD, Trucs et astuces
Tinyproxy est un petit proxy comme son l’indique pour les systèmes POSIX.
Il est disponible pour Frugalware
Installation :
# pacman-g2 -S tinyproxy
Configuration :
Editer le fichier /etc/tinyproxy.conf
Il suffit d’ajouter les adresses IP qui peuvent utiliser ce proxy :
Allow 127.0.0.1
Allow XX.XX.XX.XX
Par défaut tinyproxy utilise le port 1024 :
Port 1024
Activer/démarrer le service :
# systemctl enable tinyproxy.service
# systemctl start tinyproxy.service
Securiser tinyproxy par tunnel SSH :
Il suffit juste de créer un tunnel ssh sur le port 1024 avec le serveur qui héberge tinyproxy et de seulement autoriser l’adresse IP 127.0.0.1 dans /etc/tinyproxy.conf .
Vous pouvez utiliser aussi cette solution si pour une raison X ou Y vous êtes derrière un pare feu qui bloque les proxy.
Dans votre navigateur il suffit d’indiquer un proxy localhost sur le port 1024.
vpn en 5 minutes
by bouleetbil on juin.06, 2011, under Frugalware, GNU/Linux et BSD, Trucs et astuces
OpenVPN permet à des pairs de s’authentifier entre eux à l’aide d’une clé privée partagée à l’avance, de certificats ou de couples de noms d’utilisateur/mot de passe. Il utilise de manière intensive la bibliothèque d’authentification OpenSSL ainsi que le protocole SSLv3/TLSv1. Disponible sous Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X, Windows 2000, XP, Vista et 7, il offre aussi de nombreuses fonctions de sécurité et de contrôle.
(source wikipedia)
Récemment, j’ai ajouté le support PAM à openvpn dans frugalware.
Installation de Openvpn :
# pacman-g2 -S openvpn
Configuration :
# cp /usr/share/doc/openvpn-2.1.3/easy-rsa/2.0/ /etc/openvpn/easy-rsa/ -R
# cd /etc/openvpn/easy-rsa/
# nano vars
Change value of :
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
# source ./vars
# ./clean-all
# ./build-ca
# ./build-dh
Génération des clés du serveur :
# ./build-key-server server
# openvpn --genkey --secret keys/ta.key
Installation des clés :
# cd keys/
# cp ca.crt dh1024.pem server.key ta.key server.crt ../../
Edition du fichier de configuration coté serveur :
/etc/openvpn/openvpn.conf
port 1194
proto udp
dev tun0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
max-clients 100
user nobody
group nobody
# of the privilege downgrade.
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
client-cert-not-required
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
push "redirect-gateway def1"
push "dhcp-option DNS xxx.xxx.xxx.xxx" #Optional : DNS server
Démarrer le vpn :
#!/bin/sh
cd /etc/openvpn
openvpn openvpn.conf &
modprobe iptable_nat
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F FORWARD
iptables -F INPUT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
Coté client :
Récupérer la clé ca.crt du serveur et la coller dans /etc/openvpn.
Edition du fichier de configuration
/etc/openvpn/client.conf
client
dev tun
remote OpenvpnAdressIP 1194 # Adresse & port
proto udp
nobind
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cipher BF-CBC
comp-lzo
verb 3
auth-user-pass
route-method exe
route-delay 2
Démarrer le client :
# cd /etc/openvpn
# openvpn client.conf
Maintenant tous les utilisateurs qui on un compte sur ce serveur peuvent utiliser ce vpn.
openssh et la sécurité
by bouleetbil on juin.05, 2011, under Frugalware, GNU/Linux et BSD
Juste un petit rappel sur ssh et la sécurité :
Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé.
Installation :
# pacman-g2 -S openssh
Editer /etc/ssh/sshd_config pour modifier la configuration par défaut
Pas de connection avec le compte root.
PermitRootLogin no
Pas de connexion pour les utilisateurs sans mot de passe.
PermitEmptyPasswords no
MaxAuthTries permet de limiter les attaques brute force sur votre serveur
MaxAuthTries 3
Authentication par clé.
PubkeyAuthentication yes
Fail2ban :
Fail2ban est un outil qui analyse les log systèmes et banni les IP si besoin.
Installation de fail2ban :
# pacman-g2 -S fail2ban
Editer /etc/fail2ban/jail.conf afin d’adapter la section ssh à vos besoins.
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/messages
maxretry = 5
/var/log/messages est utilisé par sysklogd
/var/log/syslog est utilisé syslog-ng
Démarrer et activer le service fail2ban :
# systemctl enable fail2ban.service
# systemctl start fail2ban.service
Pour le moment, fail2ban n’est disponible que dans la branche current de frugalware.
kvm/virt-manager/bridge/failover/dedibox
by bouleetbil on juin.04, 2011, under Frugalware, GNU/Linux et BSD, Trucs et astuces
J’ai acheté une IP failover pour 1€ chez dedibox afin de virtualiser certains services comme le forum et wiki de frugalware.
Je fais des sauvegardes de ce serveur, mais c’est c’est quand même plus simple de sauvegarder une machine virtuelle et de la remettre en place si besoin. C’est mon opinion. le plus long est souvent de reconfigurer le serveur, plutôt que de réinstaller les différents services.
En premier lieu, acheter une ip failover et associer une adresse mac à cette IP dans la console online.
Sur la machine hote :
J’ai désactivé l’IPV6 que je n’utilise pas :
Editer /etc/sysctl.conf afin d’y ajouter
#disable ipv6 for eth0 only
net.ipv6.conf.eth0.disable_ipv6 = 1
Créer une interface dummy :
# modprobe dummy numdummies=1
numdummies=1, car je n’utilise qu’un seul bridge
Charger le module au démarrage de la machine :
Editer /etc/syconfig/modules et ajouter
dummy numdummies=1
Configuration du bridge :
Création du script /usr/bin/brigde.sh
ifconfig dummy0 up
brctl addbr fail0
brctl addif fail0 dummy0
ifconfig fail0 up
route add IPFAILOVER dev fail0
#authorize proxy arp for eth0 and fail0
echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/fail0/proxy_arp
Pour activer le bridge au lancement de la machine, éditer /etc/sysconfig/network/default
[eth0]
options = IPHOST netmask 255.255.255.0
gateway = default gw IPGATEWAY
post_up = /usr/bin/brigde.sh
virt-manager :
Créer une machine virtuelle avec un réseau virtuel sur le bridge fail0.
(avec virt-manager tout peux se faire de manière graphique)
Dans la configuration de votre machine virtuelle indiquer l’adresse mac renseignée sur votre console online, sinon leur pont réseau coupera votre serveur pensant qu’il s’agit d’une attaque.
Configuration de la machine virtuelle :
Créer un script /usr/bin/routevm.sh
route add IPGATEWAY dev eth0
route add default gw IPGATEWAY
Configuration du réseau de la machine virtuelle
Editer /etc/sysconfig/network/default
[eth0]
options = IPFAILOVER netmask 255.255.255.0
post_up = /usr/bin/routevm.sh
Redémarrer votre machine virtuelle, celle-ci est accessible comme un serveur à part entiere. La solution est simple/libre et elle marche pourquoi s’en passer
PS : l’hote et les machines virtuelles tournent sous frugalware stable.