Category Archives: Computer

Come Configurare il Servizio DNS su Linux

14 Dec, 2018
admin
No Comments

Acronimo di Domain Name System (o servizio o Server), un servizio Internet che traduce i nomi di dominio in indirizzi IP. Poiché i nomi di dominio sono in formato alfabetico, sono più facili da ricordare. Internet, tuttavia, è in realtà basata su indirizzi IP. Ogni volta che si utilizza un nome di dominio un servizio DNS deve tradurre il nome nel relativo indirizzo IP. Ad esempio, il nome di dominio www.example.com potrebbe tradursi in 198.105.232.4. Il sistema DNS ha, di fatto, una propria rete. Se un server DNS non sa come tradurre un determinato nome a dominio, chiede un altro, e così via, fino a quando l ‘indirizzo IP corretto viene restituito.

Configurazione del Servizio DNS

La configurazione del servizio DNS sotto Linux richiede i seguenti passaggi:

Per abilitare i servizi DNS, il file /etc/host.conf deve avere le seguenti sembianze:

# Lookup names via /etc/hosts first, then by DNS query
order hosts, bind
# We don’t have machines with multiple addresses
multi on
# Check for IP address spoofing
nospoof on
# Warn us if someone attempts to spoof
alert on
Il rilevamento extra spoof aggiunge un pò di calo di prestazioni per le ricerche DNS (anche se trascurabile), quindi se non siete troppo preoccupati di questo si consiglia di disabilitare le voci “nospool” e “alert”.

Il file /etc/hosts dovrebbe essere configurato per puntare alla vostre tabelle DNS come nell’esempio qui sotto.

Nota: (Nota: gli indirizzi IP sono solo esempi e devono essere sostituiti con quelli della vostra classe!):

options {
// DNS tables are located in the /var/named directory
directory “/var/named”;

// Forward any unresolved requests to our ISP’s name server
// (this is an example IP address only — do not use!)
forwarders {
99.1.1.1;
};

/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};

// Enable caching and load root server info
zone “named.root” {
type hint;
file “”;
};

// All our DNS information is stored in /var/named/mydomain_name.db
// (eg. if mydomain.name = foobar.com then use foobar_com.db)
zone “mydomain.name” {
type master;
file “mydomain_name.db”;
allow-transfer { 123.12.41.40; };
};

// Reverse lookups for 123.12.41.*, .42.*, .43.*, .44.* class C’s
// (these are example Class C’s only — do not use!)
zone “12.123.IN-ADDR.ARPA” {
type master;
file “123_12.rev”;
allow-transfer { 123.12.41.40; };
};

// Reverse lookups for 126.27.18.*, .19.*, .20.* class C’s
// (these are example Class C’s only — do not use!)
zone “27.126.IN-ADDR.ARPA” {
type master;
file “126_27.rev”;
allow-transfer { 123.12.41.40; };
};
Suggerimento: Prendere nota delle opzioni di allow-transfer di cui sopra, che limita i trasferimenti di zona DNS a un dato indirizzo IP. Nel nostro esempio, permettiamo all’host 123.12.41.40 (probabilmente uno slave DNS server nel nostro dominio) di richiedere trasferimenti di zona. Se si omette questa opzione, chiunque su Internet sarà in grado di richiedere tali trasferimenti. Poiché le informazioni fornite sono spesso utilizzati da spammer e IP spoofer, vi raccomando caldamente di limitare i trasferimenti di zona soltanto per il vostro server DNS slave (s), oppure utilizzare l’indirizzo di loopback, 127.0.0.1 “”.

Ora è possibile impostare le vostre tabelle DNS nella /var/named/ come configurato nel file /etc/named.conf nel terzo paragrafo. Configurare i file del database DNS per la prima volta è una grande impresa, e va oltre gli scopi di questo documento. Ci sono molte guide online e in formato cartaceo che dovrebbe essere di aiuto. Tuttavia, alcuni esempi sono forniti di seguito.

Voci di esempio nel file /var/named/mydomain_name.db :

; This is the Start of Authority (SOA) record. Contains contact
; & other information about the name server. The serial number
; must be changed whenever the file is updated (to inform secondary
; servers that zone information has changed).
@ IN SOA mydomain.name. postmaster.mydomain.name. (
19990811 ; Serial number
3600 ; 1 hour refresh
300 ; 5 minutes retry
172800 ; 2 days expiry
43200 ) ; 12 hours minimum

; List the name servers in use. Unresolved (entries in other zones)
; will go to our ISP’s name server isp.domain.name.com
IN NS mydomain.name.
IN NS isp.domain.name.com.

; This is the mail-exchanger. You can list more than one (if
; applicable), with the integer field indicating priority (lowest
; being a higher priority)
IN MX mail.mydomain.name.

; Provides optional information on the machine type & operating system
; used for the server
IN HINFO Pentium/350 LINUX

; A list of machine names & addresses
spock.mydomain.name. IN A 123.12.41.40 ; OpenVMS Alpha
mail.mydomain.name. IN A 123.12.41.41 ; Linux (main server)
kirk.mydomain.name. IN A 123.12.41.42 ; Windows NT (blech!)

; Including any in our other class C’s
twixel.mydomain.name. IN A 126.27.18.161 ; Linux test machine
foxone.mydomain.name. IN A 126.27.18.162 ; Linux devel. kernel

; Alias (canonical) names
gopher IN CNAME mail.mydomain.name.
ftp IN CNAME mail.mydomain.name.
www IN CNAME mail.mydomain.name.
Voci di esempio nel file di reverse lookup /var/named/123_12.rev:
; This is the Start of Authority record. Same as in forward lookup table.
@ IN SOA mydomain.name. postmaster.mydomain.name. (
19990811 ; Serial number
3600 ; 1 hour refresh
300 ; 5 minutes retry
172800 ; 2 days expiry
43200 ) ; 12 hours minimum

; Name servers listed as in forward lookup table
IN NS mail.mydomain.name.
IN NS isp.domain.name.com.

; A list of machine names & addresses, in reverse. We are mapping
; more than one class C here, so we need to list the class B portion
; as well.
40.41 IN PTR spock.mydomain.name.
41.41 IN PTR mail.mydomain.name.
42.41 IN PTR kirk.mydomain.name.

; As you can see, we can map our other class C’s as long as they are
; under the 123.12.* class B addresses
24.42 IN PTR tsingtao.mydomain.name.
250.42 IN PTR redstripe.mydomain.name.
24.43 IN PTR kirin.mydomain.name.
66.44 IN PTR sapporo.mydomain.name.

; No alias (canonical) names should be listed in the reverse lookup
; file (for obvious reasons).
Altri files di reverse lookup, necessari ad esempio per mappare gli indirizzi in una differente classe B (ad esempio 126,27 .*), possono essere creati in modo simile all’esempio di cui sopra.

Assicurarsi che il servizio named sia in esecuzione. Questo servizio è generalmente avviato dal file /etc/rc.d/init.d/named dal boot del sistema. È inoltre possibile avviare e arrestare il servizio manualmente: digitare rispettivamente named start e named stop.

Ogni volta che vengono apportate modifiche alle tabelle DNS, il server DNS deve essere riavviato digitando /etc/rc.d/init.d/named restart. E’ possibile testare le modifiche apportate utilizzando uno strumento come nslookup.

Come Installare e Configurare Fetchmail

14 Oct, 2018
admin
No Comments

Fetchmail è un sistema full-optional, robusto, per la ricezione e l’invio delle email ed è stato pensato per essere usato su collegamenti TCP / IP (come ad esempio connessioni SLIP o PPP). Supporta ogni protocollo di posta remota attualmente in uso su Internet: POP2, POP3, RPOP, APOP, KPOP, tutte le tipologie di IMAP, ETRN e ODMR. Può supportare anche IPv6 e IPSEC.

Per installare fetchmail su OS Debian e Ubuntu, eseguire il seguente comando:

apt-get install fetchmail
Per installare fetchmail sui sistemi CentOS e Fedora, utilizzare:
yum install fetchmail

Configurare fetchmail

Per installare Fetchmail come servizio innanzitutto occorre editare /etc/default/fetchmail e impostare il parametro START_DAEMON a yes:
vi /etc/default/fetchmail
# This file will be used to declare some vars for fetchmail
#
# Uncomment the following if you dont want localized log messages
# export LC_ALL=C

# Declare here if we want to start fetchmail. ‘yes’ or ‘no’
START_DAEMON=yes
Creare quindi il file di configurazione /etc/fetchmailrc, in quanto senza questo file fetchmail non partirà in automatico. In questo file è possibile specificare come il servizi fetchmail deve comportarsi e i dettagli necessari per la connessione agli account delle email.

Supponiamo che ad esempio che l’utente Falko abbia tre account di posta elettronica da cui si desidera recuperare messaggi di posta elettronica:

Primo account: server pop.someprovider.tld, protocollo POP3, username falko@someprovider.tld (in questo caso lo username è l’indirizzo email), password segreta.
Secondo account: server mail.otherprovider.tld, protocollo POP3, username ftimme, password verysecurepassword.
Terzo account: Server mailin.tillsprovider.tld, protocol POP3, username tbrehm, password iwonttellyou.

vi /etc/fetchmailrc
# /etc/fetchmailrc for system-wide daemon mode
# This file must be chmod 0600, owner fetchmail

set daemon 300 # Pool every 5 minutes
set syslog # log through syslog facility
set postmaster root

set no bouncemail # avoid loss on 4xx errors
# on the other hand, 5xx errors get
# more dangerous…

##########################################################################
# Hosts to pool
##########################################################################

# Defaults ===============================================================
# Set antispam to -1, since it is far safer to use that together with
# no bouncemail
defaults:
timeout 300
antispam -1
batchlimit 100

poll pop.someprovider.tld protocol POP3 user “falko@someprovider.tld” there with password “secret” is falko here
poll mail.otherprovider.tld protocol POP3 user “ftimme” there with password “verysecurepassword” is falko here fetchall
poll mailin.tillsprovider.tld protocol POP3 user “tbrehm” there with password “iwonttellyou” is till here keep
All’inizio del file sono indicate alcune configurazioni globali come:
set daemon:imposta ogni quanto (in secondi) fetchmail deve scaricare la posta.
set syslog: registra gli errori nel syslog.
set postmaster: il nome dell’utente gestore della posta (in questo caso: root).
set no bouncemail: reindirizza tutti gli errori di posta al postmaster (come configurato nell’opzione “postmaster” di cui sopra).
Successivamente vengono le opzioni relative al server e agli utenti. Queste opzioni sono applicate a tutte le righe che iniziano con poll. Se volete associare le medesime opzioni a più righe “poll” potete farlo creando una sezione defaults: prima delle righe poll :

timeout: il tempo massimo di inattività del server espresso in secondi (di default 300).
antispam: quale risultato viene restituito dal server SMTP in caso di SPAM.
batchlimit: il numero massimo di messaggi da inviare al server SMTP prima che la connessione venga interrotta e ne venga attivata una nuova (di default 0, ossia un numero illimitato di messaggi).
Infine vengono le righe “poll” per le quali non è necessaria nessuna particolare spiegazione.

Come potete vedere alla fine di ogni riga ci sono dei parametri aggiuntivi:

nofetchall: scarica solo i nuovi messaggi (default).
fetchall: scarica tutti i messaggi.
keep: non cancellare dal server i messaggi visualizzati.
nokeep: cancellare dal server i files visualizzati.
Per avere più informazioni su fetchmail potete consultare la guida
man fetchmail
/etc/fetchmailrc deve avere i permessi impostati a 600 e deve essere di proprietà dell’utente fetchmail:
chmod 600 /etc/fetchmailrc
chown fetchmail /etc/fetchmailrc
A questo punto possiamo lanciare fetchmail:
/etc/init.d/fetchmail start
Una volta lanciato fetchmail dovrebbe scaricare eventuali nuove mail e salvarle nelle mailbox degli utenti falko e till.

Configurare Postfix su Debian

14 Aug, 2018
admin
No Comments

Per prima cosa lanciate questi comandi per essere certi che il sistema sia aggiornato:
apt-get update
apt-get upgrade
Per installare Postfix MTA utilizzare il seguente comando:
apt-get install postfix
Durante l’installazione del package il programma richiederà di rispondere ad alcune domande. La prima domanda riguarda il tipo di mail server che volete installare. Selezionate “Internet Site”.

Il prompt successivo richiederà richiederà di indicare il nome del sistema su cui e’ installato il server. Il nome dovrà essere un fully qualified domain name (FQDN) che punta all’IP del vostro VPSimple. E’ necessario anche configurare il reverse DNS in modo che richiami l’indirizzo IP assegnato al vostro server. Sarà inoltre possibile inviare mail da altri dominii come spiegato di seguito in questa guida.

Una volta terminata l’installazione potrete continuare con la configurazione di Postfix.

Configurazione di Postfix

Editare il file /etc/postfix/main.cf. La maggior parte dei parametri di default dovrebbero essere corretti. Modificare il valore di myhostname in modo che corrisponda con il fully qualified domain name (FQDN) del vostro server, nella nostra guida: mail.example.com:
myhostname = mail.example.com
Aggiungere le seguenti righe al file di configurazione /etc/postfix/main.cf per configurare postfix per il supporto del virtual hosting:
virtual_alias_maps = hash:/etc/postfix/virtual
home_mailbox = mail/
Il valore del parametro home_mailbox indica il folder in cui vengono registrati i messaggi email quando è configurato l’inoltro locale. Ad esempio nel caso di un utente test con una home_mailbox /home/test/ le nuove mail verranno registrate dentro : /home/test/mail/. Una volta terminata la configurazione, utilizzare il seguente comando per ricaricare il mail server:
/etc/init.d/postfix reload
In futuro per fermare, avviare o riavviare Postfix, utilizzate questi comandi:
/etc/init.d/postfix stop
/etc/init.d/postfix start
/etc/init.d/postfix restart

Email Virtual Hosting

Una volta terminata la configurazione di Postfix, per configurare il virtual hosting per il vostro server mail, modificate il file /etc/postfix/virtual Questo file indica al mail agent come comportarsi quando riceve delle mail. Prima di iniziare, assicuratevi di aver configurato correttamente i records A e MX del DNS per ogni server configurato come virtual host. Qui di seguito un esempio del file /etc/postfix/virtual :
admin@example.com example
foreman@example.com example

test@ducklington.com test
test@ducklington.net test
test@example.com test

test1@example.com test1@example3.com.net
test2@example.com test2@example3.com.net
test3@example.com test3@example3.com.net

test4@example.com test6@example2.com, test
test5@example.com test, example

@example4.com example4
Nel primo esempio ci sono due indirizzi email che appartengono al dominio example.com reindirizzati all’account example. Nel gruppo successivo un elenco di email appartenenti a diversi dominii che iniziano con il nome test, reindirizzati al gruppo di utenti test. Quindi diversi indirizzi email appartenenti al dominio example.com le cui email vengono inoltrate ad indirizzi email esterni appartenenti al dominio example3.com. I due indirizzi email successivi sono reindirizzati verso più caselle di posta esterne. Ad esempio la mail di test4@example.com viene inoltrata all’utente locale test e alla mail test6@example2.comt mentre le mail destinate a test5@example.com è vengono inoltrate agli utenti locali test e example. Infine tutti i messaggi inviati a qualsiasi account facente parte del dominio example4.com vengono inoltrati all’utente locale example4.

A questo per essere certi che le modifiche indicate dentro /etc/postfix/virtual vengano prese in considerazione dovrete effettuare il rebuild del database :

postmap /etc/postfix/virtual
Questo comando aggiornerà il file /etc/postfix/virtual.db. Ogni volta che effettuerete delle modifiche al file /etc/postfix/virtual dovrete utilizzare il comando postmap. Prima che Postfix applichi i cambiamenti apportati dovrà essere rilanciato con il comando:
/etc/init.d/postfix reload

Ricordatevi quindi di ricaricare il server solo dopo aver compilato una nuova versione del file virtual.db.

Installazione di Apache e MySQL su CentOS

14 Jun, 2018
admin
No Comments

LAMP ` un acronimo per Linux, Apache, MySQL, PHP. Questa guida mostra come installare il webserver Apache2 su di un server CentOS 5.3 con supporto PHP5 (mod_php) e MySQL.

Installare MySQL 5.0

Per installare MySQL :
yum install mysql mysql-server
Quindi per creare gli script necessari all’avvio automatico di MySQL :
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
Per impostare la password di accesso a MySQL per l’utente root :
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

Installare Apache2

Apache2 ` disponibile sotto forma di package CentOS, quindi potremo installarlo semplicemente con il seguente comando:
yum install httpd
Qui per configurare Apache in modo che venga avviato automaticamente :
chkconfig –levels 235 httpd on
Per avviare Apache manualmente :
/etc/init.d/httpd start
Possiamo quindi provare il funzionamento di Apache aprendo la pagina http://localhost. Se tutto funziona correttamente vedrete la pagina di default di Apache2.

La directory di default di Apache in CentOS è /var/www/html, mentre il file di configurazione è /etc/httpd/conf/httpd.conf. Gli altri file di configurazione sono registrati nella directory : /etc/httpd/conf.d/.

Installare PHP5

Per installare PHP5 e il modulo PHP5 per Apache utilizzare quindi il seguente comando:
yum install php
A questo punto è necessario riavviare Apache:
/etc/init.d/httpd restart

Testare PHP5

Creare un file chiamato info.php nella directory /var/www/html e aprirlo con un browser web :
vi /var/www/html/info.php

Otteremo una serie di informazioni utili sull’installazione di PHP, compresa la versione di PHP installata.

Aggiungere il supporto MySQL a PHP5

Per aggiungere il supporto MySQL in PHP utilizzeremo il package php-mysql. Oltre al package php-mysql a questo punto potrebbe essere utile installare anche altri package per Apache :
yum search php
Scegliere i package che si desidera installare e quindi lanciare una righa di comando simile alla successiva:
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
Riavviare a questo punto Apache2 per terminare l’installazione:
/etc/init.d/httpd restart

Molto interessante.

Come Configurare Apache per l’Invio delle Mail

14 Apr, 2018
admin
No Comments

Dunque, se siete arrivati su questa pagina, state sicuramente progettando o comunque vi sarà già capitato, di imbattervi nella creazione di uno script di invio email in automatico… Inviare automaticamente email con php è possibile grazie alla funzione nativa mail descritta abbondantemente nella guida ufficiale del php e utilizzata da tutti gli script di più alto livello presenti in rete.

Potrebbe capitarvi che PHP non sia correttamente configurato per l’invio delle email e che quindi tutti i tentativi di eseguire il vostro script correttamente, falliscano miseramente e senza darvi troppe spiegazioni. Questo perchè PHP di default ,non effettua la configurazione del “modulo” sendmail, necessario per l’invio dell’email da PHP.

Eccovi una breve descrizione di come configurare il server web Apache per l’invio di email dagli script php sviluppati localmente, l’approccio di risoluzione è il medesimo sia che ci si trovi in ambienti Windows che Linux/Unix.

Per tutti gli utenti linux/unix effettuare una ricerca del comando sendmail:

luca@lincelnx:~$ locate /sendmail
/home/luca/.ies4linux/ie6/drive_c/windows/system32/sendmail.dll
/usr/lib/sendmail
/usr/sbin/sendmail
/usr/share/gnome-pilot/conduits/sendmail.conduit
/usr/share/man/man8/sendmail.8.gz
/usr/share/perl5/Mail/Mailer/sendmail.pm

Prendiamo come buoni tutti i risultati contenuti nelle cartelle dove risiedono i binari

/usr/sbin o usr/bin (varia da sistema a sistema)

Gli utenti di Microsoft Windows non devono effettuare questo passaggio in quanto l’invio di email avviene grazie alla configurazione integrata di So/Outlook e account utente.

Individuare il file php.ini e aprirlo per modificarne la configurazione.

Per gli utenti Linux/Unix individuare con una ricerca testuale il sendmail_path e settarlo correttamente e in modo esteso es:

; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = /usr/sbin/sendmail

Per gli utenti Windows settare il proprio account locale di posta elettronica in modo che php riesca a utilizzarlo per l’invio delle email.

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = luca@webeng.it

Salvare il file, riavviare Apache ed effettuare un test del vostro script di invio.

Spero vi sia stato utile.