2013/10/11
VSFTPD
Instalar VSFTPD en FreeBSD
En nuestro caso el servicio permitira subir archivos mediante un usuario y clave, pero no permitira conexiones anonimas.
Requerimientos:
* Conexion a Internet
* FreeBSD instalado
* Leer este manual
El proceso:
Actualizar el arbol de ports
(ya se debe hacer mediante portsnap)
Instalar el port de VSFTPD
# whereis vsftpd
vsftpd: /usr/ports/ftp/vsftpd
# cd /usr/ports/ftp/vsftpd
# make install clean
...
===> Registering installation for vsftpd-3.0.2
El contenidos de los archivos es:
# egrep -v '#|^ *$' /usr/local/etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to Alpha FTP service.
chroot_local_user=YES
listen=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty
background=YES
pasv_min_port=49152
pasv_max_port=65535
Para que el servicio inicie con el servidor
# edit /etc/rc.conf
Agregar
vsftpd_enable="YES"
Iniciar el servicio
# /usr/local/etc/rc.d/vsftpd start
Crear el usuario para las transferencias
# adduser
Username: invitadoftp
Full name: invitadoftp
Uid (Leave empty for default):
Login group [invitadoftp]:
Login group is invitadoftp. Invite invitadoftp into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: nologin
Home directory [/home/invitadoftp]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : invitadoftp
Password : laclavesecreta
Full Name : invitadoftp
Uid : 1120
Class :
Groups : invitadoftp
Home : /home/invitadoftp
Home Mode :
Shell : /usr/sbin/nologin
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (invitadoftp) to the user database.
Add another user? (yes/no): no
Goodbye!
Asignar el directorio creado al usuario root
# chown root /home/invitadoftp
Quitarle el permiso de escribir al usuario
# chmod -w /home/invitadoftp
Crear un directorio llamado pub dentro
# mkdir /home/invitadoftp/pub
Darle permisos de escritura en el directorio pub
# chmod -R 777 /home/invitadoftp/pub
En el firewall hay que abrir los puertos necesarios, un ejemplo para PF (en nuestro caso estamos abriendo el puerto 21 y un rango desde 49152 hasta 65535)
# PF "Self-Protecting" an FTP Server (passive)
pass in on $ext_if proto tcp from any to any port { ftp, > 49151 } \
keep state
Para verificar que nuestro servidor ftp funciona, lo podemos hacer de dos formas:
Ejemplo 1
En el mismo servidor usando el Shell Unix
$ ftp invitadoftp@localhost
...
Ejemplo 2
Desde otro equipo hacia el servidor por Internet, ejemplo desde un Shell Unix (en el caso de que tenga algun *unix)
$ ftp invitadoftp@IPDELSERVIDOR
Connected to IPDELSERVIDOR.
220 Welcome to Alpha FTP service.
331 Please specify the password.
Password: laclavesecreta
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||54611|).
150 Here comes the directory listing.
drwxrwxrwx 2 1010 1010 97 Oct 21 15:50 pub
226 Directory send OK.
ftp> quit
221 Goodbye.
$
Continuando con el ejemplo 2, si este equipo tiene un Windows, desde el DOS
C:\>ftp IPDELSERVIDOR
Si queremos que el directorio no tenga archivos o carpetas con mas de 7 dias
Creamos un script
# edit /usr/home/backups/scripts/script-del-old.sh
que se veria asi, use este comando para verlo # cat /usr/home/backups/scripts/script-del-old.sh
#! /bin/sh
# Archivos
find /usr/home/invitadoftp/pub -type f -mtime +1w -exec rm {} \;
# Carpetas (indispensable la opcion "-depth 1" o borrara pub si esta vacia)
find /usr/home/invitadoftp/pub -depth 1 -type d -empty -mtime +1w -exec rmdir {} \;
Le damos permisos de ejecucion
# chmod +x /usr/home/backups/scripts/script-del-old.sh
Y en cron ponemos la linea
00 01 * * * root /usr/home/backups/scripts/script-del-old.sh
Con esto ejecutamos diariamente una busqueda todos los dias a las 01 de la manana de los
archivos y carpetas vacias de mas de una semana o 7 dias y los borramos.
Otro ejemplo aun mas elaborado del script seria asi, use este comando para verlo # cat /usr/home/backups/scripts/script-del-old.sh
#! /bin/sh
# Archivos
find /usr/home/invitadoftp/pub -type f -mtime +1w > /tmp/listfiles.txt
rm `cat /tmp/listfiles.txt`
mail -s "Archivos borrados del FTP" login@gmail.com < /tmp/listfiles.txt
rm /tmp/listfiles.txt
# Carpetas
find /usr/home/invitadoftp/pub -depth 1 -type d -empty -mtime +1w > /tmp/listdirectories.txt
rmdir `cat /tmp/listdiries.txt`
mail -s "Carpetas borradas del FTP" login@gmail.com < /tmp/listdiries.txt
rm /tmp/listdiries.txt
2013/03/06
Migrar de CVSup/csup a portsnap
# csup -h cvsup15.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/ports-supfile
para mantener actualizado nuestro arbol de ports en FreeBSD, pero se anuncia que por el 28 de Febrero del 2013, se migrara de CVS, CVsup y csup al nuevo portsnap.
Para migrar en los FreeBSD que ya teniamos nuestro arbol de ports de la forma antigua...
Cuando hemos instalado una gran cantidad de ports, el directorio /usr/ports/distfiles esta lleno de archivos fuentes que no queremos perder, le hacemos una copia
# cp -r /usr/ports/distfiles /home/
# cp -r /usr/ports/packages /home/
Ahora borraremos el viejo arbol de ports
# rm -rf /usr/ports
Ya podemos iniciar trabajo con portsnap
La primera vez que vamos a usar portsnap hay que descargar un snapshot del arbol de ports y descomprimirlo en /usr/ports
# portsnap fetch extract
Luego para mantener nuestro arbol de ports actualizado, se ejecuta el comando
# portsnap fetch update
El Handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html, y mas especificamente en http://www.freebsd.org/cgi/man.cgi?query=portsnap&sektion=8 dice que se debe poner la linea asi:
00 06 * * * root /usr/sbin/portsnap cron
Pero no me hace nada!
Otro sitio https://bitdrop.st0w.com/2009/05/18/setting-up-a-new-freebsd-server-for-easy-maintenance recomienda que es mejor con otros datos, pero tampoco funciona.
00 06 * * * root /usr/sbin/portsnap update cron
Y esta ultima si funciona!
Por ultimo tenemos que volver a copiar nuestra carpeta distfiles que copiamos en /home y borrarla al terminar
# cp -r /home/distfiles /usr/ports/
# cp -r /home/packages /usr/ports/
# rm -rf /home/distfiles
# rm -rf /home/packages
2013/03/04
Samba4 AD/DC
FreeBSD 9.1 + Samba 4 (Bind99, SAMBA_INTERNAL) + Bind99 (actualizado desde el DHCP) + DHCP
Resultado:
Funciona!
Manuales consultados:
http://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
http://www.whitneytechnologies.com/?p=422
http://fraterneo.blogspot.com/2012/12/como-configurar-un-controlador-de.html
http://www.freebsd.org/doc/handbook/kerberos5.html
http://www.rjsystems.nl/en/2100-dns-discovery-kerberos.php
http://es.wikipedia.org/wiki/Kerberos
http://www.bind9.net/manuals
http://albertolarripa.com/?p=1530
http://www.semicomplete.com/articles/dynamic-dns-with-dhcp
http://forums.freebsd.org/showthread.php?t=33849
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/DNSDHCP.html
http://lani78.wordpress.com/2012/07/23/make-your-dhcp-server-dynamically-update-your-dns-records-on-ubuntu-12-04-precise-pangolin
Parametros de red:
hostname="samdom.example.com"
keymap="spanish.iso.kbd"
#ifconfig_em0="DHCP"
ifconfig_em0="inet 192.168.2.101 netmask 255.255.255.0"
defaultrouter="192.168.2.1"
ifconfig_em1="inet 192.168.1.1 netmask 255.255.255.0"
ipv6_activate_all_interfaces="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
sshd_enable="YES"
Particionado del disco SATA:
ada0 931GB GPT
ada0p1 512kB freebsd-boot
ada0p2 16GB freebsd-ufs / exrootfs
ada0p3 32GB freebsd-swap none exswap
ada0p4 64GB freebsd-ufs /var exvarfs
ada0p5 16GB freebsd-ufs /tmp extmpfs
ada0p6 803GB freebsd-ufs /usr exusrfs
Claves en el FreeBSD:
root / 123
PORTS
Descargar el arbol de ports "fetch", se descomprime "extract" (se ejecuta la primera vez)
# portsnap fetch extract
Ahora para manterner el arbol de ports actualizado, se ejecuta siempre
# portsnap fetch update
Esta ultima linea se puede agregar al cron para que diario actualice los ports, en /etc/crontab se agrega una linea como esta
00 06 * * * root /usr/sbin/portsnap fetch update >/dev/null 2>&1
ACLS
# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0p2 / ufs rw 1 1
/dev/ada0p3 none swap sw 0 0
/dev/ada0p4 /var ufs rw 2 2
/dev/ada0p5 /tmp ufs rw 2 2
/dev/ada0p6 /usr ufs rw 2 2
# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0p2 / ufs rw,acls 1 1
/dev/ada0p3 none swap sw 0 0
/dev/ada0p4 /var ufs rw,acls 2 2
/dev/ada0p5 /tmp ufs rw,acls 2 2
/dev/ada0p6 /usr ufs rw,acls 2 2
# reboot
Configurar las opciones de Bind99
# cd /usr/ports/dns/bind99
# make config
Options for bind99 9.9.2.1
[ ] FIXED_RRSET Enable fixed rrset ordering
[ ] IDN International Domain Names
[*] IPV6 IPv6 protocol
[ ] LARGE_FILE 64-bit file support
[*] LINKS Create conf file symlinks in /usr/local
[*] REPLACE_BASE Replace base BIND with this version <-MARCAR ESTA OPCION!
[ ] RPZRRL_PATCH RPZ improvements + RRL patch (experimental)
[ ] RPZ_NSDNAME Enable RPZ NSDNAME policy records
[ ] RPZ_NSIP Enable RPZ NSIP trigger rules
[ ] SIGCHASE dig/host/nslookup will do DNSSEC validation
[*] SSL Build with OpenSSL (Required for DNSSEC)
[*] THREADS Threading support
[*] XML Support for xml statistics output
[ ] DLZ_POSTGRESQL G(DLZ): DLZ Postgres driver
[ ] DLZ_POSTGRESQL G(DLZ): DLZ Postgres driver
[ ] DLZ_MYSQL G(DLZ): DLZ MySQL driver (no threading)
[ ] DLZ_BDB G(DLZ): DLZ BDB driver
[ ] DLZ_LDAP G(DLZ): DLZ LDAP driver
[ ] DLZ_FILESYSTEM G(DLZ): DLZ filesystem driver
[ ] DLZ_STUB G(DLZ): DLZ stub driver
< OK >
Instalar Samba4
# cd /usr/ports/net/samba4
# make config
Options for samba4 4.0.3
[*] ACL_SUPPORT File system ACL support
[*] ADS Active Directory support
[*] AIO_SUPPORT Asyncronous IO support
[ ] AVAHI Zeroconf via Avahi <- DESACTIVAR ESTA OPCION!
[*] CUPS CUPS printing system
[*] DEBUG With debug information in the binaries
[ ] DEVELOPER With development support
[*] DNSUPDATE Dynamic DNS update(require ADS)
[ ] EXP_MODULES Experimental modules
[*] FAM_SUPPORT File Alteration Monitor support
[*] LDAP LDAP support
[ ] MANPAGES Build and/or install manual pages
[*] PAM_SMBPASS PAM authentication via passdb backends
[*] PTHREADPOOL Pthread pool
[*] QUOTAS Disk quota support
[*] SWAT SWAT WebGUI
[*] SYSLOG Syslog support
[*] UTMP UTMP accounting support
[*] WINBIND WinBIND support
[ ] NSUPDATE S(DNS): Use internal DNS with NSUPDATE utility <- DESACTIVAR ESTA OPCION!
[ ] BIND98 S(DNS): Use bind98 as a DNS server frontend
[*] BIND99 S(DNS): Use bind99 as a DNS server frontend <- MARCAR ESTA OPCION!
< OK >
# make config-recursive
(todos los otros ports los dejo por defecto)
# make install clean
Nota:
El port de Samba4 con la opcion [*] BIND99 instalara bind99, por eso
primero configuramos las opciones
de bind99 [*] REPLACE_BASE
# rndc-confgen -a -c /etc/namedb/rndc.conf -k rndc-key -b 256
wrote key file "/etc/namedb/rndc.conf"
# cat /etc/namedb/rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "zvuOE1XeVBUXZa12LTUDEAgZaH3cVFZp+GiObzuAB5c=";
};
# edit /etc/namedb/named.conf
options {
// All file and path names are relative to the chroot directory,
// if any, and should be fully qualified.
directory "/etc/namedb/working";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
...
listen-on { 127.0.0.1; 192.168.1.1; };
...
forwarders {
8.8.8.8;
8.8.4.4;
};
...
//zone "example.com" { type master; file "/etc/namedb/master/empty.db"; }; <- COMENTAR ESTA LINEA!
...
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
};
// Take this from the /etc/namedb/rndc.conf file
key "rndc-key" {
algorithm hmac-md5;
secret "zvuOE1XeVBUXZa12LTUDEAgZaH3cVFZp+GiObzuAB5c=";
};
zone "example.com" {
type master;
allow-update { key "rndc-key"; };
allow-transfer { localhost; 192.168.1.1; };
file "/etc/namedb/dynamic/example.com";
};
zone "1.168.192.in-addr.arpa" {
type master;
allow-update { key "rndc-key"; };
allow-transfer { localhost; 192.168.1.1; };
file "/etc/namedb/dynamic/1.168.192.in-addr.arpa";
};
# edit /etc/namedb/dynamic/example.com
$TTL 3600 ; 1 hour default TTL
example.com. IN SOA samdom.example.com. admin.example.com. (
2013021701 ; Serial
10800 ; Refresh (3 hours)
3600 ; Retry (1 hour)
604800 ; Expire (1 week)
300 ; Negative Response TTL (5 minutes)
)
; DNS Servers
IN NS samdom.example.com.
; MX Records
;IN MX 10 mx.example.com.
;IN MX 20 mail.example.com.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
samdom IN A 192.168.1.1
kerberos IN A 192.168.1.1
ldap IN A 192.168.1.1
; Aliases
;
;_kerberos._udp IN SRV 01 00 88 kerberos.example.com.
;_kerberos._tcp IN SRV 01 00 88 kerberos.example.com.
;_kpasswd._udp IN SRV 01 00 464 kerberos.example.com.
;_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.com.
;_kerberos IN TXT EXAMPLE.COM
;
;_ldap._tcp IN SRV 01 00 389 ldap.example.com.
;_ldap._udp IN SRV 01 00 88 ldap.example.com.
¡Atencion!
Aunque las entradas son correctas para _kerberos y _ldap, como Samba usa sus propios pero consulta a Bind, si las dejo activas causan problemas.
# edit /etc/namedb/dynamic/1.168.192.in-addr.arpa
$TTL 3600 ; 1 hour default TTL
1.168.192.in-addr.arpa. IN SOA samdom.example.com. admin.example.com. (
2013021701 ; Serial
10800 ; Refresh (3 hours)
3600 ; Retry (1 hour)
604800 ; Expire (1 week)
300 ; Negative Response TTL (5 minutes)
)
; DNS Servers
IN NS samdom.example.com.
; Machine IPs
1 IN PTR samdom.example.com.
1 IN PTR kerberos.example.com.
# edit /etc/rc.conf
# Bind
named_enable="YES"
named_chrootdir=""
# /etc/rc.d/named start
# edit /etc/resolv.conf
search example.com
domain EXAMPLE.COM
nameserver 127.0.0.1
#nameserver 8.8.8.8
#nameserver 8.8.4.4
# nslookup samdom
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: samdom.example.com
Address: 192.168.1.1
# nslookup kerberos
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: kerberos.example.com
Address: 192.168.1.1
Instalar isc-dhcp42-server
# cd /usr/ports/net/isc-dhcp42-server
# make config
Options for isc-dhcp42-server 4.2.4_2
[ ] BIND_SYMBOLS Enable BIND internal symbol table
[*] IPV6 IPv6 protocol
[ ] LDAP LDAP support
[*] LDAP_SSL Support LDAP over SSL/TLS
[ ] PARANOIA Enable support for chroot
< OK >
# make config-recursive
# make install clean
# rm /usr/local/etc/dhcpd.conf
# edit /usr/local/etc/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd PRIMARY
#
option domain-name "example.com";
option domain-name-servers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# ad-hoc DNS update scheme - set to "none" to disable dynamic DNS updates.
ddns-updates on;
ddns-update-style interim;
ddns-domainname "example.com";
allow client-updates;
# Take this from the /etc/namedb/rndc.conf file
key "rndc-key" {
algorithm hmac-md5;
secret "zvuOE1XeVBUXZa12LTUDEAgZaH3cVFZp+GiObzuAB5c=";
}
zone example.com. {
primary 192.168.1.1;
key rndc-key;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.1;
key rndc-key;
}
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
option netbios-name-servers 192.168.1.1;
option netbios-node-type 8;
option time-offset -18000; # Bogota GMT -5.0 Hours => -5x60x60 = -18000 Seconds
option ntp-servers 192.168.1.1;
option time-servers 192.168.1.1;
# Dinamics
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.110;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}
# ifconfig em1 inet 192.168.1.1 netmask 255.255.255.0 up
# edit /etc/rc.conf
ifconfig_em1=" inet 192.168.1.1 netmask 255.255.255.0"
# DHCP Server
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="em1"
dhcpd_withumask="022"
# /usr/local/etc/rc.d/isc-dhcpd start
Instalar cups-base
# cd /usr/ports/print/cups-base
# make config
Dejo todo por defecto
# make config-recursive
Dejo todo por defecto
# make install clean
# edit /etc/rc.conf
# CUPS
cupsd_enable="YES"
# /usr/local/etc/rc.d/cupsd start
Editamos el archivo y le agregamos la parte "options"
# edit /etc/namedb/rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "zvuOE1XeVBUXZa12LTUDEAgZaH3cVFZp+GiObzuAB5c=";
};
options {
default-server 127.0.0.1;
default-key rndc-key;
};
# rndc status
version: 9.9.2-P1
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 99
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
# /usr/local/bin/samba-tool domain provision
Realm [EXAMPLE.COM]: EXAMPLE.COM
Domain [EXAMPLE]: EXAMPLE
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 192.168.1.1
Administrator password:
Retype password:
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.1.1
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=example,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=example,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/db/samba4/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samdom
NetBIOS Domain: EXAMPLE
DNS Domain: example.com
DOMAIN SID: S-1-5-21-3981277467-4260322419-4091201666
# cp /var/db/samba4/private/krb5.conf /etc/
# cat /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = true
# edit /etc/rc.conf
# NTP
ntpd_enable="YES"
ntpd_config="/etc/ntp.conf"
# edit /etc/ntp.conf
server 0.pool.ntp.org prefer
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org
driftfile /var/db/ntp.drift
# /etc/rc.d/ntpd start
Starting ntpd.
# edit /etc/rc.conf
# Samba4
samba4_enable="YES"
samba4_config="/usr/local/etc/smb4.conf"
winbindd_enable="YES"
# testparm /usr/local/etc/smb4.conf
Load smb config files from /usr/local/etc/smb4.conf
max_open_files: increasing sysctl_max (11095) to minimum Windows limit (16384)
rlimit_max: increasing rlimit_max (11095) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions
[global]
workgroup =EXAMPLE
realm = example.com
server role = active directory domain controller
passdb backend = samba_dsdb
dns forwarder = 192.168.1.1
rpc_server:tcpip = no
rpc_daemon:spoolssd = embedded
rpc_server:spoolss = embedded
rpc_server:winreg = embedded
rpc_server:ntsvcs = embedded
rpc_server:eventlog = embedded
rpc_server:srvsvc = embedded
rpc_server:svcctl = embedded
rpc_server:default = external
idmap config * : backend = tdb
create mask = 0777
directory mask = 0777
map archive = No
map readonly = no
store dos attributes = Yes
vfs objects = dfs_samba4, acl_xattr
[netlogon]
path = /var/db/samba4/sysvol/example.com/scripts
read only = No
[sysvol]
path = /var/db/samba4/sysvol
read only = No
Para solucionar el error de
max_open_files: increasing sysctl_max (11095) to minimum Windows limit (16384)
rlimit_max: increasing rlimit_max (11095) to minimum Windows limit (16384)
# edit /boot/loader.conf
# Samba
kern.maxfiles="20480"
ESTE PASO ES IMPORTANTISIMO, SI NO SE EJECUTA NO ENTRAREMOS AL DOMINIO DESDE LOS CLIENTES!
# /usr/local/sbin/samba4 -i -M single -d 4 &
# killall samba4
# /usr/local/etc/rc.d/samba4 start
# kinit administrator@EXAMPLE.COM
administrator@example.com's Password: miclave123
# klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: administrator@EXAMPLE.COM
Issued Expires Principal
Feb 24 02:13:50 Feb 24 12:13:50 krbtgt/EXAMPLE.COM@EXAMPLE.COM
# net rpc join -S samdom -Uadministrator
Enter administrator's password: miclave123
Joined domain EXAMPLE.
# smbclient -L localhost -U%
Domain=[EXAMPLE] OS=[Unix] Server=[Samba 4.0.3]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.3)
Domain=[EXAMPLE] OS=[Unix] Server=[Samba 4.0.3]
Server Comment
--------- -------
Workgroup Master
--------- -------
# /usr/local/bin/smbclient //localhost/netlogon -UAdministrator'' -c 'ls'
Enter Administrator's password: miclave123
Domain=[EXAMPLE] OS=[Unix] Server=[Samba 4.0.3]
. D 0 Sun Feb 24 02:01:16 2013
.. D 0 Sun Feb 24 02:01:23 2013
63332 blocks of size 65536. 54255 blocks available
# samba-tool dns query 127.0.0.1 example.com @ ALL
Password for [administrator@EXAMPLE.COM]:
Name=, Records=4, Children=0
SOA: serial=1, refresh=900, retry=600, expire=86400, ns=samdom.example.com., email=hostmaster.example.com. (flags=600000f0, serial=1, ttl=3600)
NS: samdom.example.com. (flags=600000f0, serial=1, ttl=900)
A: 192.168.1.1 (flags=600000f0, serial=1, ttl=900)
A: 192.168.2.101 (flags=600000f0, serial=110, ttl=900)
Name=_msdcs, Records=0, Children=0
Name=_sites, Records=0, Children=1
Name=_tcp, Records=0, Children=4
Name=_udp, Records=0, Children=2
Name=DomainDnsZones, Records=0, Children=2
Name=ForestDnsZones, Records=0, Children=2
Name=samdom, Records=2, Children=0
A: 192.168.1.1 (flags=f0, serial=1, ttl=900)
A: 192.168.2.101 (flags=f0, serial=110, ttl=900)
# wbinfo -u
Administrator
Guest
krbtgt
# wbinfo -g
Enterprise Read-Only Domain Controllers
Domain Admins
Domain Users
Domain Guests
Domain Computers
Domain Controllers
Schema Admins
Enterprise Admins
Group Policy Creator Owners
Read-Only Domain Controllers
DnsUpdateProxy
TEST DNS
# host -t SRV _ldap._tcp.example.com
_ldap._tcp.example.com has SRV record 0 100 389 samdom.example.com.
# host -t SRV _ldap._tcp.example.com
_ldap._tcp.example.com has SRV record 0 100 389 samdom.example.com.
# host -t A ldap.example.com
ldap.example.com has address 192.168.1.1
# host -t SRV _kerberos._tcp.example.com
_kerberos._tcp.example.com has SRV record 1 0 88 kerberos.example.com.
# host -t SRV _kerberos._udp.example.com
_kerberos._udp.example.com has SRV record 1 0 88 kerberos.example.com.
# host -t SRV _kpasswd._udp.example.com
_kpasswd._udp.example.com has SRV record 1 0 464 kerberos.example.com.
# host -t SRV _kerberos-adm._tcp.example.com
_kerberos-adm._tcp.example.com has SRV record 1 0 749 kerberos.example.com.
áAtencion!
Al inactivar las lineas referentes a _kerberos y _ldap las consultas no se resuelven.
# host -t A samdom.example.com
samdom.example.com has address 192.168.1.1
Crear un usuario
# samba-tool user add miguel
New Password: miclave123
Retype Password: miclave123
User 'miguel' created successfully
Verificar el usuario creado
# wbinfo --name-to-sid miguel
S-1-5-21-1013221894-234835428-3392388920-1103 SID_USER (1)
# reboot
Compartir impresoras
# edit /usr/local/etc/smb4.conf
[printers]
comment = All Printers
path = /var/spool/samba
browseable = No
guest ok = Yes
printable = Yes
use client driver = Yes
default devmode = Yes
;show add printer wizard = no # Para no mostrar el asistente de impresoras
Para que los clientes Windows puedan consultar en el servidor que sirve
las impresoras en busca de drivers, debemos crear el directorio.
# mkdir -p /var/db/samba4/printer-drivers/{COLOR,IA64,W32ALPHA,W32MIPS,W32PPC,W32X86,WIN40,x64}
# edit /usr/local/etc/smb4.conf
[print$]
comment = Printer Drivers
path = /var/db/samba4/printer-drivers
browseable = yes
guest ok = no
read only = yes
write list = root
Compartir carpetas y bloquear algunas extensiones peligrosas
# mkdir /home/tmp
# mkdir /home/tmp
# edit /usr/local/etc/smb4.conf
[tmp]
comment = Temporary file space
path = /home/tmp
valid users = %U
public = no
writable = no
browseable = yes
printable = no
# Las siguientes lineas generan problemas si uso ACLS, dejar inactivas!
# create mask = 0777
# directory mask = 0777
# force create mode = 0777
# force directory mode = 0777
# force user = nobody
# force group = nobody
write list = %U
# Bloqueo de algunos archivos por extencion
veto files = /*.reg/*.com/*.scr/*.cmd/*.exe/*.pif/*.bat/*.{*}/
delete veto files = yes
Remote Server Administration Tools for Windows 7 with Service Pack 1 (SP1)
http://www.microsoft.com/en-us/download/details.aspx?id=7887
1 Instalar Remote Server Administration Tools for Windows 7 with Service Pack 1 (SP1)
2 Inicio / Panel de control / Programas / Activar o desactivar las caracteristicas de Windows
(se abre ventanita)
3 - Herramientas de administracion de funciones
- Herramientas de AD DS y AD LDS
- Herramientas de AD DS
* Centro de administracion de Active Directory
* Herramientas de linea de comandos y complementos de AD DS
4 Aceptar
5 Wind + R
dsa.msc
Nota:
Para poder entrar a administrar el dominio mediante el comand dsa.msc, hay que estar logueado como el usuario administrator / miclave123 para poder ver los datos.
Nota:
Mejor usar # rndc-confgen > /root/dhcp_updater.key
named.conf
key "rndc-key" {
algorithm hmac-md5;
secret "+VsrLah1EEr+HKRTGRJyWA==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
dhcpd.conf
# Take this from the /etc/namedb/rndc.conf file
key "rndc-key" {
algorithm hmac-md5;
secret "+VsrLah1EEr+HKRTGRJyWA==";
};
Una nota muy importante en caso de querer editar manualmente los archivos del DNS http://forums.freebsd.org/showthread.php?t=33849
"Note about editing dynamic zones manually
If you have to edit the zone files of dynamic zones manually while the DNS server is running, you’ll have to freeze the zones with # rndc freeze <myzone> before editing and unfreeze them with # rndc thaw <myzone> after editing. This is because named(8) has internal state information and external journal files attached to dynamic zones that have to be kept in sync with the zone files."
2013/02/06
DHCP Server
Introduccion:
Instalar un servidor DHCP para nuestra red LAN con el fin de asignar los parametros de red a los clientes de forma facil.
Requerimientos:
* Conexion a Internet
* FreeBSD instalado
* Leer este manual
Documentacion:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-dhcp.html
El proceso:
Actualizar el arbol de ports
# csup -h cvsup15.us.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/ports-supfile
Instalar el port ISC-DHCP
# cd /usr/ports/net/isc-dhcp42-server
# make config
(dejamos las opciones como estan por defecto)
# make install clean
Hacer que inicie con el sistema y especificando la tarjeta en la que escuchara agregando las lineas corespondientes en /etc/rc.conf
# echo '# ISC-DHCP Server' >> /etc/rc.conf
# echo 'dhcpd_enable="YES"' >> /etc/rc.conf
# echo 'dhcpd_conf="/usr/local/etc/dhcpd.conf"' >> /etc/rc.conf
# echo 'dhcpd_ifaces="bge1"' >> /etc/rc.conf
Ajustamos el archivo de configuracion con los parametros que necesitamos, de modo que tenga unas lineas como estas
# grep -vE '^#|^;|^$' /usr/local/etc/dhcpd.conf
option domain-name "example.org";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.10;
option routers 192.168.1.1;
}
Iniciamos el servicio
# /usr/local/etc/rc.d/isc-dhcpd start
Los comando basicos son
# /usr/local/etc/rc.d/isc-dhcpd start|stop|restart|status
2012/12/10
Migracion usuarios
Supongamos que tenemos un servidor FreeBSD que comparte contenidos mediante Samba y necesitamos hacer una instalacion nueva, el /home esta en un ZFS RAID-Z lo que nos facilitara la migracion, pero no deseamos crear nuevamente a cada uno de los usuarios en el nuevo FreeBSD (tanto los de FreeBSD como los de Samba).
Este tutorial tambien es valido en caso de un cambio a un nuevo servidor (osea, a otro hadware) en este caso existen comandos adicionales requeridos y se ve claramente con el comando en color rojo, si no esta migrando a un nuevo servidor se deben omitir y continuar con el comando siguiente.
Requerimientos:
* FreeBSD instalado
* Leer este manual
El proceso:
En el FreeBSD que vamos a quitar
Hacer un backups de los archivos
¡Los comandos asumen que se tiene un ZFS RAID-Z para el directorio /home, pero puede guardar los datos en otro lugar!
# mkdir /storage/migracion
# tar -cvzf /storage/migracion/FreeBSD.tar.gz /etc/passwd /etc/master.passwd /etc/group
# tar -cvzf /storage/migracion/Samba.tar.gz /usr/local/etc/samba/passdb.tdb /usr/local/etc/samba/secrets.tdb /usr/local/etc/smb.conf
# tar -cvzf /storage/migracion/mail.tar.gz /var/mail
# tar -cvzf /storage/migracion/home.tar.gz /storage/home
# cp -rp /usr/ports/distfiles /storage/migracion <- este es opcional
En el FreeBSD recien instalado actualizado y con el arbol de ports al dia
Instalamos el port de Samba y hacemos que se active al iniciar el sistema
# cd /usr/ports/net/samba36 && make config-recursive && make install clean
# echo '# Samba' >> /etc/rc.conf
# echo 'samba_enable="YES"' >> /etc/rc.conf
Ahora nos falta darle soporte a FreeBSD para que pueda usar el arreglo de discos en ZFS RAID-Z, lea la parte del manual que inicia con "Ahora supongamos que luego de mucho tiempo queremos..." y luego continue en transferir los datos y restaurar el backups.
Transferir los datos por SSH mediante scp al nuevo servidor
# mkdir /storage/migracion
# scp usuario@IPSERVER:/storage/migracion/FreeBSD.tar.gz /storage/migracion
# scp usuario@IPSERVER:/storage/migracion/Samba.tar.gz /storage/migracion
# scp usuario@IPSERVER:/storage/migracion/mail.tar.gz /storage/migracion
# scp usuario@IPSERVER:/storage/migracion/home.tar.gz /storage/migracion
# scp -rp usuario@IPSERVER:/storage/migracion/distfiles /storage/migracion <- este es opcional
"usuario" es un usuario existente en el servidor FreeBSD que vamos a quitar
"IPSERVER" es la direccion IP del servidor FreeBSD que vamos a quitar
Restaurar el backups
# cd /
# tar -xvzf /storage/migracion/FreeBSD.tar.gz
# tar -xvzf /storage/migracion/Samba.tar.gz
# tar -xvzf /storage/migracion/mail.tar.gz
# pwd_mkdb -p /etc/master.passwd
# tar -xvzf /storage/migracion/home.tar.gz
# cp -rp /storage/migracion/distfiles /usr/ports <- este es opcional
# rm -rf /storage/migracion
# reboot
Listo, al entrar nuevamente debemos tener los mismos usuarios y nuestra informacion de la misma forma que la teniamos en el viejo.
2012/11/28
FreeBSD The Z File System (ZFS)
Introduccion:
Teniendo FreeBSD ya instalado y funcionando, le vamos a crear una unidad formada por varios discos y usaremos ZFS RAID-Z para guardar los datos de home y los contenidos de los usuarios que vamos creando.
Wikipedia ZFS:
ZFS es un sistema de archivos desarrollado por Sun Microsystems para su
sistema operativo Solaris. El significado original era 'Zettabyte File System'
, pero ahora es un acrónimo recursivo.
El anuncio oficial de ZFS se produjo en Septiembre de 2004.1 El código fuente del producto final se integró en la rama principal de desarrollo de Solaris el 31 de octubre de 20052 y fue lanzado el 16 de noviembre de 2005 como parte del build 27 de OpenSolaris.
ZFS fue diseñado e implementado por un equipo de Sun liderado por Jeff Bonwick.
ZFS destaca por su gran capacidad, integración de los conceptos
anteriormente separados de sistema de ficheros y administrador de
volúmenes en un solo producto, nueva estructura sobre el disco, sistemas de
archivos ligeros y una administración de espacios de almacenamiento
sencilla."
Wikipedia Storage pools:
A diferencia de los sistemas de ficheros tradicionales que residen encima de un sólo dispositivo subyacente y por lo tanto requieren un gestor de volúmenes separado si se precisa un sistema de archivos mayor que el dispositivo, ZFS se apoya en espacios de almacenamiento virtuales (virtual storage pools). Los espacios se construyen a partir de uno o más dispositivos virtuales (vdevs), de los que cada uno es o bien un raw device, un mirror (RAID 1) de uno o más dispos todos los vdevs esa disponible para todos los sistemas de archivos del zpool.
Requerimientos:
* FreeBSD instalado
* Leer este manual
Distribucion de los discos:
0 ad10 ada0 }=> FreeBSD: /, /swap, /var, /tmp, /usr
1 ad12 ada1
2 ad14 ada2
}=> ZFS RAID-Z: /storage/home
3 ad16 ada3
4 ad18 ada4
ada0 tendra nuestro FreeBSD y las particiones necesarias como se describe en Example 3-3. Creating Traditional Split Filesystem Partitions
ada1, 2, 3 y 4 seran los discos que usaremos para crear nuestro ZFS RAID-Z
El proceso:
Luego de conectar los discos para el RAID-Z y encender nuestro FreeBSD, miramos como estan los discos:
# cat /var/run/dmesg.boot | grep ada
En la salida nos muestra que efectivamente tenemos ada1, ada2, ada3 y ada4.
Segun el handbook:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/filesystems-zfs.html
Hacemos que se carguen los modulos al iniciar FreeBSD:
# echo '# The Z File System (ZFS)' >> /boot/loader.conf
# echo 'vm.kmem_size="512M"' >> /boot/loader.conf
# echo 'vm.kmem_size_max="512M"' >> /boot/loader.conf
# echo 'vfs.zfs.arc_max="40M"' >> /boot/loader.conf
# echo 'vfs.zfs.vdev.cache.size="5M"' >> /boot/loader.conf
Si tengo menos de 4GB de RAM se pone tambien esta otra linea:
# echo 'vfs.zfs.prefetch_disable="0"' >> /boot/loader.conf
Nota
Las lineas de arriba son diferentes a las que estan en el handbook ya que unos mensajes al cargar FreeBSD recomiendan dichos valores.
Hacemos que se active ZFS al iniciar FreeBSD:
# echo '# Using ZFS' >> /etc/rc.conf
# echo 'zfs_enable="YES"' >> /etc/rc.conf
Iniciamos ZFS
# /etc/rc.d/zfs start
Creamos el pool con los discos y lo llamaremos "storage":
# zpool create storage raidz ada1 ada2 ada3 ada4
si da un error, usar la opcion -f, algo asi "zpool create -f storage ..."
Creamos el ZFS y lo llamaremos "home"
# zfs create storage/home
Copiamos el contenido de home, borramos las viejas rutas y creamos las nuevas:
# cp -rp /home/* /storage/home
# rm -rf /home /usr/home
# ln -s /storage/home /home
# ln -s /storage/home /usr/home
Reiniciamos FreeBSD:
# reboot
Al entrar nuevamente a FreeBSD, miramos como esta la cosa:
# df -h
Filesystem Size Used Avail Capacity Mounted on
...
storage 2.7T 45k 2.7T 0% /storage
storage/home 2.7T 54k 2.7T 0% /storage/home <- Nuestro ZFS RAID-Z :-)
# mount
...
storage on /storage (zfs, local, nfsv4acls)
storage/home on /storage/home (zfs, local, nfsv4acls)
Activamos el reporte diario del estado del ZFS:
# echo '# The ZFS' >> /etc/periodic.conf
# echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf
Ver estado del raid:
# zpool status
pool: storage
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
errors: No known data errors
# zpool status -x
all pools are healthy
Ejemplo de como recuperar nuestro RAID si uno de los discos se daña (se copia del handbook y se ajustan los nombres "ad" por "ada"):
21.2.2.3 Recovering RAID-Z
pool: storage
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ada1 OFFLINE 0 0 0 <- El disco ada1 malo
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
errors: No known data errors
Sacamos ada1 del arreglo:
# zpool offline storage ada1
Apagamos el equipo:
# shutdown -h now
Cambiamos el disco ada1 malo por uno bueno y encendemos el equipo
Agregamos el disco ada1 al arreglo:
# zpool replace storage ada1
Verificamos:
# zpool status storage
pool: storage
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
errors: No known data errors
# zpool status -x
all pools are healthy
Si queremos eliminar el POOL y el ZFS que tenemos hasta el momento:
Cuidado, los dos comandos siguientes eliminan el arreglo y los datos!
Eliminar el ZFS:
# zfs destroy storage/home
Eliminar el pool:
# zpool destroy storage
Bueno, ya tenemos nuestro arreglo de discos en ZFS RAID-Z, pero una de las cosas interesantes de todo esto son las quotas de disco para los usuarios que se conectaran desde la red por Samba...
21.2.2.5 ZFS Quotas
Crear el ZFS para jdoe:
# zfs create storage/home/jdoe
Crearle una quota de 10G a jdoe:
# zfs set quota=10G storage/home/jdoe
Reporte de la quota:
# zfs get quota storage/home/jdoe
NAME PROPERTY VALUE SOURCE
storage/home/jdoe quota 10G local
Ejemplo de como quitarle la quota a jdoe:
# zfs set quota=none storage/home/jdoe
Reporte de la quota (para ver si se la quito):
# zfs get quota storage/home/jdoe
NAME PROPERTY VALUE SOURCE
storage/home/jdoe quota none local
Ahora ya podemos crear el usuario "jdoe":
# adduser
Username: jdoe
Full name: John Doe
...
Por defecto al agregar el usuario se crea la carpeta /home/jdoe y esta gracias al link que ya tenemos se creara en storage/home/jdoe
Ahora supongamos que luego de mucho tiempo queremos hacer una instalacion completamente nueva de FreeBSD en ada0 y logicamente queremos continuar usando nuestro ZFS RAID-Z y los datos que en ese lugar tenemos...
En el FreeBSD recien instalado
Cargar las opciones en el loader.conf:
# echo '# The Z File System (ZFS)' >> /boot/loader.conf
# echo 'vm.kmem_size="512M"' >> /boot/loader.conf
# echo 'vm.kmem_size_max="512M"' >> /boot/loader.conf
# echo 'vfs.zfs.arc_max="40M"' >> /boot/loader.conf
# echo 'vfs.zfs.vdev.cache.size="5M"' >> /boot/loader.conf
Si tengo menos de 4GB de RAM se pone esta otra linea:
# echo 'vfs.zfs.prefetch_disable="0"' >> /boot/loader.conf
Cargar las opciones en el rc.conf:
# echo '# Using ZFS' >> /etc/rc.conf
# echo 'zfs_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/zfs start
Importar el pool:
# zpool import storage
Activamos el reporte diario del estado del ZFS:
# echo '# The ZFS' >> /etc/periodic.conf
# echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf
Eliminar las rutas viejas y crear las nuevas para el storage:
# rm -rf /home /usr/home
# ln -s /storage/home /home
# ln -s /storage/home /usr/home
Listo, si reiniciamos el FreeBSD, debemos poder ver todo bien.
Este manual se hizo con FreeBSD 9.0 RELEASE.
Actualizacion 2014/10/09
Recientemente instale FreeBSD 10.0 con la nueva opcion ZFS (experimental) para usar ese sistema de archivos tambien para FreeBSD.
Ya no se agrega nada relacionado con el soporte a ZFS en /etc/rc.conf, tampoco hay que agregar parametros en /boot/loader.conf pues en el nuevo instalador de FreeBSD 10.0 ya deja todo listo.
Hay que eliminar el volumen zroot/usr/home para poder montar /storage/home
# umount /usr/home
# zfs destroy zroot/usr/home
# rm /home
# zpool import storage
# ln -s /storage/home /home
# ln -s /storage/home /usr/home
2012/10/18
Android y como pagar menos en llamadas internacionales
Por fortuna tenemos a las
Yo les quiero contar un secreto muy interesante, ¡Se puede llamar por muchisimo menos! Ahorrandonos un dinero que podemos usar en otras cosas, como comprarnos un magnifico telefono con Android como el Samsung Galaxy Nexus GT-I9250 GSM/HSPA+, comprarlo en Amazon.com libre por un buen precio o hasta en el operador Tigo de Colombia en reposicion con permanencia de 2 aƱos por unos $500.000 pesos en el plan "Arma tu Plan 70" o totalmente libre, miren aqui.
Bueno, retomando lo de las llamadas mas baratas...
Para llamar a otros paises se puede usar una cuenta SIP, es algo similar a un messenger pero que en lugar de enviar mensajes de texto se habla pagando algo de dinero, se puede crear una cuenta SIP en alguna de las empresas que prestan ese servicio, yo uso una muy economica llamada DiamondCard, tiene buenos precios, basicamente es un sistema prepago, se compra un saldo por unos 20 dolares, que se pagan con una tarjeta de credito, es muy facil, se crea una cuenta con usuario y clave y luego compramos algo de saldo. Al terminar de crear nuestra cuenta SIP nos dan unos datos similares a estos:
(1) Login y Password para entrar en la web por https://www.diamondcard.us/login en donde podemos ver nuestro registro de llamadas y cargar mas saldo.
Login: john
Account ID: 471234
Server: sip.diamondcard.us
(los datos de arriba son ficticios para ejemplo)
Nota:
La informacion de "Account ID" y "PIN code" siempre la podremos ver en la web luego de loguearnos (en la parte superior derecha donde esta tambien nuestro saldo).
Al tener ya nuestra cuenta SIP con saldo, ya podemos empezar a usarla, para eso tenemos dos opciones, el tradicional computador (aburrido y ya poco practico) o con nuestro magnifico Galaxy Nexus con Android (esta es mi preferida), que nos permite estar en cualquier lugar y ya sea con WiFi o con algun plan de datos 3G, hacer llamadas por menos de 50 pesos el minuto (ver precios).
Si aun no tenemos un telefono "NEXUS", podemos ir a comprarlo, mientras lo compramos, podemos usar nuestro coputador y descargar he instalar el programa de DiamondCard que se baja de aqui para Windows, o si ya cansados de los problemas con Window tenemos un MacBook, le descargamos algun cliente como LinPhone.
Si somos los felices poseedores de un telefono con Android como el Galaxy ACE igualmente le tenemos que instalar LinPhone que esta en la tienda de Google Play Store gratis y en el programita ingresar los datos suministrados por DiamodCard de nuestra cuenta SIP, ya que dicho telefono viene con Android 2.3 y este aun no tiene cliente nativo para cuentas SIP.
Si tenemos el magnifico Galaxy Nexus, con Android 4.0.4 o superior, no tendremos que bajar nada, pues Android 4.0.4 ya tiene cliente nativo para cuentas SIP, para configurarlo y como es el telefono que tengo, les dare las instrucciones paso a paso...
Configurar tu cuenta SIP en el Samsung Galaxy Nexus:
1 Abrimos el marcador como si fueramos a escribir algun numero para llamar
2 Nos vamos a Settings (seleccionando los tres punticos)
3 Bajamos hasta donde dice "INTERNET CALL SETTINGS" Accounts
4 Seleccionamos "ADD ACCOUNT"
5 Ingresamos los datos requeridos:
Username
471234 <- escribir el "Account ID"
Password
123456789012 <- escribir el "PIN code"
Server
sip.diamondcard.us
6 Seleccionamos "SAVE"
Listo, ya debemos ver nuestra cuenta creada, se ve algo asi:
471234@sip.diamondcard.us
Ahora debemos decirle a nuestro telefono que nos pregunte en cada llamada si queremos llamar usando al operador celular o llamar por Internet usando nuestra cuenta SIP y el saldo que compramos en DiamondCard.us, para hacer esto nos vamos de forma similar que en las instrucciones anteriores:
1 Abrimos el marcador como si fueramos a escribir algun numero para llamar
2 Nos vamos a Settings (seleccionando los tres punticos)
3 Bajamos hasta donde dice "Use Interned calling" y activamos "Ask for each call.
Ahora vamos a llamar a nuestro primer contacto llamado "Pepe Cortisona" que vive en USA y que cariƱosamente apodamos "saco de plomo", para hacerlo, debemos tener o crear un contacto y colocarle el telefono de USA, ya sea celular o fijo, por ejemplo:
(codpais codciudad telefono)
1 646 362 1234
Guardamos los datos de "saco de plomo" y ya lo podemos llamar para hacer nuestra prueba, al seleccionar nuestro contacto, nos sale una ventanita
Place call
Cell phone call
Internet call
Tocamos "Internet call" y en unos segundo timbrara la llamada y nos podra contestar nuestro amigo en USA.
2014/11/20 Actualizacion:
Configurar tu cuenta SIP en el LG Nexus 5:
1 Abrimos el marcador como si fueramos a llamar
2 Nos vamos a Settings (seleccionando los tres punticos)
3 Calls
4 Calling accounts
5 SIP accounts
6 "ADD ACCOUNT"
7 Ingresamos los datos requeridos:
Username
471234 <- escribir el "Account ID"
Password
123456789012 <- escribir el "PIN code"
Server
sip.diamondcard.us
8 Seleccionamos "SAVE"
Ahora debemos decirle a nuestro telefono que nos pregunte en cada llamada si queremos llamar usando al operador celular o llamar por Internet usando nuestra cuenta SIP y el saldo que compramos en DiamondCard.us, para hacer esto nos vamos de forma similar que en las instrucciones anteriores:
1 Abrimos el marcador como si fueramos a llamar
2 Nos vamos a Settings (seleccionando los tres punticos)
3 Calls
4 Calling accounts
5 Make calls with
TIGO -> Ask first
6 Use SIP calling
Only for SIP calls -> For all calls
Listo, ahora al llamar nos preguntara si usa TIGO o SIP