Ziezo heb een postfix mailserver opgezet op mijn Linux server :) Aangezien Ubuntu een Debian derivaat is werkt het met apt-get, dus installeerde ik Postfix als volgt:
Aangezien mijn ISP Telenet is, moest ik wel de poort aanpassen. Telenet blokkeert namelijk poorten onder 1024, en het SMTP protocol maakt gebruik van poort 25. Ik besliste om mijn mailserver op poort 5025 te draaien. Dit was vrij makkelijk te realiseren, ik moest hiervoor enkel de eerste lijn in /etc/postfix/master.cf vervangen door:
5025 inet n - - - - smtpd
Natuurlijk zette ik daarna poort 5025 open in mijn NAT.
Ik volgde eigenlijk letterlijk een howto van de Ubuntu wiki's, en zo ziet mijn /etc/postfix/main.cf er nu uit:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. smtpd_banner = $myhostname ESMTP $mail_name (STAMPEN BELGIE STAMPEN!) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h
Merk op dat mijn WAN IP staat bij mynetworks in /etc/postfix/main.cf, we gaan postfix nu eens testen.
Van op een client deed ik het volgende (vetgedrukte characters zijn nu dingen zie ik zelf heb moeten typen)
pieterjan@ubuntux $ telnet 84.194.91.145 5025 Trying 84.194.91.145... Connected to 84.194.91.145. Escape character is '^]'. 220 amdstation.phar0zlinux.net ESMTP Postfix (STAMPEN BELGIE STAMPEN!) ehlo amdstation 250-amdstation.phar0zlinux.net 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: mansondude@gmail.com 250 2.1.0 Ok rcpt to: mansondude@gmail.com 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> dit is nog maar eens een testje he . 250 2.0.0 Ok: queued as DD1CA738070 quit 221 2.0.0 Bye Connection closed by foreign host.
Laat ik nu eens kijken wat de server zegt wat betreffende deze mail, ik gebruik hiervoor het commando tail -f /var/log/mail.log
De server maakt duidelijk dat de mail correct is verzonden, wat ook klopt als ik mijn gmail open.
Het volgende is kinderachtig maar je kan ook vanaf je eigen mailserver spam versturen.
Installeer eerst wel mailx: apt-get install mailx
Maak nu een scriptje, noem het bijvoorbeeld spam.sh en plaats er de correcte rechten op via chmod a+x spam.sh
#!/bin/bash MAILER=0 EMAILMESSAGE="FUCKER" ONDERWERP="Spammer!" echo "Script om wraak te nemen op spammersn" echo "Geef het mailadres van de spammer op" read EMAILADRES echo "Hoeveel mails wilt ge versturen?" read aantal while [ $MAILER -lt $aantal ]; do echo $EMAILMESSAGE | /usr/bin/mail -s "$ONDERWERP" "$EMAILADRES" let MAILER=MAILER+1 done
Ubuntu Linux + Apache2 + Virtual Host + Syslog Server
Ubuntu Linux + Apache2 + Virtual Hosts + Syslog Server
Stappen
1)Apache2 installeren en de ports aanpassen 2)Virtual Hosts voorbeeld 3)Syslog server aan de hand van php en Virtual Hosts 4)Ik alleen wil die logs zien !! (gebruikmakend van .htaccess)
Lokaal statisch ip adres
Stel dat eth0 je interface is en 192.168.0.102 willen we als lokaal statisch ip dan zetten we in /etc/network/interfaces
mkdir /logs (we maken een aparte directory voor de logs)
Bewerk /etc/syslog.conf en voeg onderstaande toe als je echt alles wilt loggen voeg je volgende toe en sla je op
*.* /logs/logger.log
Het kan ook dat je bv. enkel bepaalde dingen wilt loggen, hier de lijst:
auth - authentication (login) messages cron - messages from the memory-resident scheduler daemon - messages from resident daemons kern - kernel messages lpr - printer messages (used by JetDirect cards) mail - messages from Sendmail user - messages from user-initiated processes/apps local0-local7 - user-defined (see below) syslog - messages from the syslog process itself
cd /etc/apache2/sites-enabled ln -s /etc/apache2/sites-available/mijnnaam.homelinux.com mijnnaam.homelinux.com
Ok, nu gaan we in logs en plaatsen we er een index.php met volgende inhoud
cd /logs touch index.php nano index.php
<html> <head> <title>mijnaam.homelinux.com</title> </head> <body> <center><h2>mijn syslog server</h2></center> <?php $FileHandle = fopen("logger.log", "r") or die("<font color="#ff0000"><b>Fout bij inlezen van het logbestand :(</b></font>"); while (!feof($FileHandle)) echo fgets($FileHandle) . "<br />"; fclose($FileHandle); ?> </body> </html>
Restart apache: /etc/init.d/apache2 force-reload
Ok, surf naar www.dyndns.com en www.whatsmyip.org (onthoud je ip) En bij dyndns registreer je je, je logt in, je klikt op DNS services -> dynamic DNS -> Add Host ... en je registreert gratis mijnnaam.homelinux.com en bij ip zet je natuurlijk je remote ip (wat je zag bij whatsmyip.org)
Als je nu surft naar mijnnaam.homelinux.com/:8070 zal je je syslogs zien
4)Ik alleen wil mijn syslogs zien!!! (.htacces))
We gaan ervoor zorgen dat je een paswoord moet opgeven om de logs te bekijken, dit regelen we met .htaccess
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory>
Deze AllowOverride all vertelt apache rekening te houden met een .htaccess bestand
Restart opnieuw apache: /etc/init.d/apache2 force-reload
Surf naar je site, en je zal een paswoord moeten opgeven dat ge hebt gespecifcieerd.
Conclusie
Via Virtual Host op apache kan je dus meerdere websites hosten op één machine.