wtorek, 24 lipca 2012

Ubuntu Serwer 12.04 LTS - konfiguracja

Założenia wstępne

Serwer pełnił będzie funkcję routera, posiada dwa interfejsy sieciowe: eth0 (WAN, połączenie z internetem) adresowany przez DHCP, oraz eth1 (LAN, połączenie z siecią lokalną), adresowany statycznie. Na interfejsie WAN uruchomiona zostanie usługa NAT (translacja adresów). Na interfejsie LAN uruchomione zostaną następujące usługi: serwer DHCP, serwer DNS, Samba jako PDC (Primary Domain Controller), transparentne proxy z filtracją treści WWW (Squid + Dansguardian). Konfiguracja taka może zostać zastosowana np. w szkolnych pracowniach, czy po modyfikacjach uwzględniających w większym stopniu zagadnienia bezpieczeństwa w małych firmach.

Konfiguracja interfejsów

Zmian dokonujemy w pliku /etc/network/interfaces:
auto lo
iface lo inet loopback

# WAN interface
auto eth0
iface eth0 inet dhcp

# LAN interface
auto eth1
iface eth1 inet static
  address 192.168.19.1
  network 192.168.19.0
  netmask 255.255.255.0
  broadcast 192.168.19.255
  dns-nameservers 192.168.19.1
  dns-search mojadomena.org
  dns-domain mojadomena.org

Adres zewnętrzny (WAN, połączenie z Internetem) przyznawany będzie więc dynamicznie, natomiast wewnętrzny (LAN, połączenie z siecią lokalną) ustawiony został na 192.168.19.1. Użyteczne polecenia:
  • sudo nohup sh -c "ifdown eth0 && ifup eth0" - restart interfejsu eth0 ("sudo service networking restart" zostało odrzucone);
  • sudo ip addr - informacja o wszystkich interfejsach
  • sudo ifconfig - informacja o wszystkich interfejsach (obszerniejsza)


Konfiguracja routera i firewalla

Routing, a zarazem firewall zrealizowane zostanie za pomocą iptables. Ponieważ będziemy korzystać z usługi NAT, w pliku /etc/sysctl.conf trzeba odkomentować opcję: net.ipv4.ip_forward=1

W pliku /etc/mojserwer/firewall.sh (nazwa katalogu i pliku dowolna) tworzymy skrypt ładujący odpowiednie reguły:
#!/bin/bash
echo -e "Ładowanie reguł iptables...\n\n"
#Nazwa interfejsu LAN
INTIF="eth1"
# Adres sieci LAN
INTNET="192.168.19.0/24"
# Adres IP interfejsu LAN
INTIP="192.168.19.1"

# Nazwa interfejsu WAN
EXTIF="eth0"
# Adres IP interfejsu WAN (wykryty)
EXTIP="`/sbin/ifconfig $EXTIF | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"

UNIVERSE="0.0.0.0/0"

# Odkomentowana opcja w /etc/sysctl.conf, więc tu może być zakomentowane
#echo 1 > /proc/sys/net/ipv4/ip_forward

# Wyczyszczenie wszystkich łańcuchów i reguł, określenie domyślnej polityki odrzucania pakietów (DROP).
iptables -P INPUT DROP
iptables -F INPUT
iptables -P OUTPUT DROP
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -F -t nat
if [ "`iptables -L | grep drop-and-log-it`" ]; then
   iptables -F drop-and-log-it
fi
iptables -X
iptables -Z

# Utworzenie łańcucha DROP.
iptables -N drop-and-log-it
iptables -A drop-and-log-it -j LOG --log-level info
iptables -A drop-and-log-it -j REJECT

# Reguły INPUT
# Wszystkie połączenia z localhost
 iptables -A INPUT -i lo -j ACCEPT
# Odrzucenie połączeń podszywających się pod lokalne
 iptables -A INPUT -i $EXTIF -s $INTNET -d $UNIVERSE -j drop-and-log-it
# Protokół ICMP
 iptables -A INPUT -i $INTIF -p icmp -s $INTNET -d $UNIVERSE -j ACCEPT
 iptables -A INPUT -i $EXTIF -p icmp -s $UNIVERSE -d $EXTIP -j ACCEPT
# Połączeń zwrotne do serwera maskarady na interfejsie LAN
 iptables -A INPUT -i $INTIF -s $INTNET -d $INTIP -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Komunikaty ICMP: ping i echo
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 7 -j ACCEPT
 iptables -A INPUT -i $INTIF -p udp -s $INTNET -d $UNIVERSE --dport 7 -j ACCEPT
# Zapytania DNS
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 53 -j ACCEPT
 iptables -A INPUT -i $INTIF -p udp -s $INTNET -d $UNIVERSE --dport 53 -j ACCEPT
# Usługi Samby
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 135 -j ACCEPT
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 139 -j ACCEPT
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 445 -j ACCEPT
 iptables -A INPUT -i $INTIF -p udp -s $INTNET -d $UNIVERSE --dport 137 -j ACCEPT
 iptables -A INPUT -i $INTIF -p udp -s $INTNET -d $UNIVERSE --dport 138 -j ACCEPT
# Protokół SSH
 iptables -A INPUT -i $INTIF -p tcp -s $INTNET -d $UNIVERSE --dport 22 -j ACCEPT
# Serwer proxy Squid na interfejsie LAN, port 3128
 iptables -A INPUT -i $INTIF -p tcp --dport 3128 -j ACCEPT
# Squid3 transparent bez Dansguardiana - trzeba wtedy odkomentować
#iptables -t nat -A PREROUTING -i $INTIF -p tcp --dport 80 -j REDIRECT --to-ports 3128
# Dansguardian + Squid3 transparent proxy
 iptables -A INPUT -i $INTIF -p tcp --dport 8080 -j ACCEPT
 iptables -t nat -A PREROUTING -i $INTIF -p tcp --dport 80 -j REDIRECT --to-ports 8080

# Połączenia przychodzące na interfejs WAN
# Połączenia zwrotne do serwera maskarady na interfejsie WAN
 iptables -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Komunikaty ICMP: ping i echo.
 iptables -A INPUT -i $EXTIF -p tcp -s $UNIVERSE -d $EXTIP --dport 7 -j ACCEPT
 iptables -A INPUT -i $EXTIF -p udp -s $UNIVERSE -d $EXTIP --dport 7 -j ACCEPT

# Odrzucanie i logowanie wszystkich innych połączeń przychodzących
 iptables -A INPUT -s $UNIVERSE -d $UNIVERSE -j drop-and-log-it

# Reguły OUTPUT
# Odrzucanie połączeń do sieci LAN z WAN
 iptables -A OUTPUT -o $EXTIF -s $UNIVERSE -d $INTNET -j drop-and-log-it
# Wszystkie połączenia localhost
 iptables -A OUTPUT -o lo -j ACCEPT
# Zezwolenie dla LAN
 iptables -A OUTPUT -o $INTIF -d $INTNET -j ACCEPT
# Zezwolenie na DHCP reply typu broadcast - dla MS Visty
iptables -A OUTPUT -o $INTIF -p udp -s $INTIP --sport 67 -d $UNIVERSE --dport 68 -j ACCEPT
# Zezwolenie dla WAN
 iptables -A OUTPUT -o $EXTIF -j ACCEPT

# Odrzucanie i logowanie wszystkie innych połączeń wychodzących
 iptables -A OUTPUT -s $UNIVERSE -d $UNIVERSE -j drop-and-log-it

# FORWARD: Włączenie routowania, tj. usługi NAT, zwanej maskaradą, czyli IMPASQ.
# Routing na interfejsie WAN
 iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
# Routowanie ustanowionych połączeń
 iptables -A FORWARD -i $EXTIF -o $INTIF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Odblokowanie poszczególnych usług
# Protokół ICMP
 iptables -A FORWARD -i $INTIF -p icmp -j ACCEPT
# Porty wysokie
 iptables -A FORWARD -i $INTIF -p tcp --dport 1024:65535 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 1024:65535 -j ACCEPT
# Komunikaty ICMP: ping, echo
 iptables -A FORWARD -i $INTIF -p tcp --dport 7 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 7 -j ACCEPT
# Usługa DNS
 iptables -A FORWARD -i $INTIF -p tcp --dport 53 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 53 -j ACCEPT
# Protokół SSH
 iptables -A FORWARD -i $INTIF -p tcp --dport 22 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 22 -j ACCEPT
# HTTP-FORWARD-OK
# HTTP -- jeśli wyłączony jest squid i dansguardian, poniższe trzeba odkomentować
# iptables -A FORWARD -i $INTIF -p tcp --dport 80 -j ACCEPT
# iptables -A FORWARD -i $INTIF -p udp --dport 80 -j ACCEPT
# HTTPS
 iptables -A FORWARD -i $INTIF -p tcp --dport 443 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 443 -j ACCEPT
# FTP
 iptables -A FORWARD -i $INTIF -p tcp --dport 20:21 -j ACCEPT
 iptables -A FORWARD -i $INTIF -p udp --dport 21 -j ACCEPT
# Poczta
 iptables -A FORWARD -i $INTIF -p tcp --dport 25 -j ACCEPT # smtp
 iptables -A FORWARD -i $INTIF -p tcp --dport 110 -j ACCEPT # pop3
 iptables -A FORWARD -i $INTIF -p tcp --dport 143 -j ACCEPT # imap
 iptables -A FORWARD -i $INTIF -p tcp --dport 465 -j ACCEPT # legacy secure SMTP
 iptables -A FORWARD -i $INTIF -p tcp --dport 587 -j ACCEPT # smtp Submission
 iptables -A FORWARD -i $INTIF -p tcp --dport 993 -j ACCEPT # imap ssl
 iptables -A FORWARD -i $INTIF -p tcp --dport 995 -j ACCEPT # pop3s
# Odrzucanie i logowanie wszystkich pozostałych połączeń. 
 iptables -A FORWARD -j drop-and-log-it
echo -e "Ładowanie reguł iptables zakończone!\n\n"


Plikowi należy nadać prawa do wykonywania: chmod a+x /etc/mojserwer/firewall.sh. Aby reguły były wczytywane podczas startu systemu w pliku /etc/rc.local umieszczamy wywołanie skryptu:

# Start firewalla
cd /etc/mojserwer/
./init_firewall.sh
#


Użyteczne polecenia:
  • sh /etc/rc.local - uruchomienie (restart) firewalla i routingu;

Serwer DHCP

Uzupełnienie: tandem isc-dhcp-server + bind można zastąpić usługą Dnsmasq.
Instalacja (wersja 4.1): apt-get install isc-dhcp3-server

Konfiguracja

W pliku /etc/default/isc-dhcp-server ustawiamy interfejs, na którym ma działać serwer: INTERFACES="eth1"

W pliku /etc/dhcp/dhcpd.conf definiujemy ustawienia globalne i podsieci:
ddns-update-style none;
option domain-name "mojadomena.org";
option domain-name-servers mojserwer.mojadomena.org;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.19.0 netmask 255.255.255.0 {
  range 192.168.19.100 192.168.19.200;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.19.255;
  option routers 192.168.19.1;
# DNS server
  option domain-name-servers 192.168.19.1;
  option domain-name "mojadomena.org";
# WINS server
  option netbios-name-servers 192.168.19.1;
}


Jak widać zdefiniowano podsieć LAN 192.168.19.0/24, w której serwer będzie przyznawał adresy w zakresie 192.168.19.100-192.168.19.200. Określono też domyślny adres naszego serwera, czyli 192.168.19.1, udostępniającego usługi routera, DNS i WINS. Uwaga: dopóki nie skonfigurujemy usługi DNS na serwerze, stacje nie będą mogły łączyć się z Internetem przy użyciu nazw domenowych. Na czas konfiguracji usługi DNS można podać adresy zewnętrznych serwerów DNS (np. swojego ISP lub open DNS), np.:

option domain-name-servers 208.67.222.222,208.67.220.220;

Użyteczne polecenia:
  • sudo service isc-dhcp-server start (restart) - uruchomienie (restart) serwera dhcp

Squid

Instalacja: sudo apt-get install squid3

Konfiguracja

Przed utworzeniem pliku konfiguracyjnego warto zmienić nazwę oryginalnego pliku, który zawiera opis wszystkich opcji, natomiast właściwy plik utworzyć od początku:

sudo mv /etc/squid3/squid.conf /etc/squid3/squid.conf.org
sudo touch /etc/squid3/squid.conf


Zawartość pliku:

acl all src
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 192.168.19.0/24 #Opis sieci LAN
acl LAN src 192.168.19.0/24 #Opis sieci LAN
acl safeports port 21 70 80 210 280 443 488 563 591 631 777 873 901 81 3128 1025-65535
acl sslports port 443 563 81 873 2087 10000
acl purge method PURGE
acl connect method CONNECT

follow_x_forwarded_for allow localhost

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !safeports
http_access deny CONNECT !sslports
http_access allow localhost
http_access allow localnet
http_access allow LAN
http_access deny all

icp_access allow localnet
icp_access deny all

# Normalny proxy
# http_port 3128
# Transparent proxy
http_port 3128 intercept

# Rozmiar cache'u
cache_mem 8 MB
maximum_object_size_in_memory 512 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /home/cache 8000 14 256
maximum_object_size 16 MB
cache_swap_low 93
cache_swap_high 97

# Logi
access_log /var/log/squid3/access.log
cache_log  /var/log/squid3/cache.log
cache_store_log none
logfile_rotate 5
log_icp_queries off

# TIMEOUTS
forward_timeout 240 second
connect_timeout 30 second
peer_connect_timeout 5 second
read_timeout 600 second
request_timeout 60 second
shutdown_lifetime 10 second

Przygotowanie katalogu cache:
sudo mkdir /home/cache
sudo chmod 777 /home/cache
sudo chown proxy:proxy /home/cache


Utworzenie katalogu cache: sudo squid3 -z - nie powinno być żadnych błędów.

Użyteczne polecenia:
  • sudo service squid3 start (restart) - uruchomienie (restart) squida;

Dansguardian

Instalacja: sudo apt-get install dansguardian

Konfiguracja

W pliku /etc/dansguardian/dansguardian.conf zmieniamy niewiele:
language = 'polish'
filterip =192.168.19.1 #ip, na którym ma nasłuchiwać dansguardian
#accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl'
forwardedfor = on

Jak widać, linię accessdeniedaddress zakomentowujemy, ostatnia opcja umożliwia wgląd w źródłowe IP klienta. W pliku /etc/dansguardian/dansguardianf1.conf opisującym domyślną grupę użytkowników (czyli wszystkich) ustalamy reguły filtrowania:

naughtynesslimit = 150 #ustawienie wrażliwości filtra

Dansguardian domyślnie nasłuchuje na porcie 8080, proxy możemy więc konfigurować ręcznie w przeglądarkach wybranych klientów. Jeżeli jednak cały ruch ma przechodzić przez filtr automatycznie (bez wiedzy użytkoników), w skrypcie firewalla (patrz wyżej) muszą znaleźć się wpisy:

 iptables -A INPUT -i $INTIF -p tcp --dport 8080 -j ACCEPT
 iptables -t nat -A PREROUTING -i $INTIF -p tcp --dport 80 -j REDIRECT --to-ports 8080

- które przekierowują cały ruch http do Dansguardiana. Dodatkowo można zablokować port 3128, na którym nasłuchuje Squid, żeby uniemożliwić użytkownikom obchodzenie filtra.

Użyteczne polecenia:
  • sudo service dansguardian start (restart) - uruchomienie (restart) usługi;
  • sudo dansguardian -g - polecenie ponownego wczytania konfiguracji, np. po dokonaniu poprawek w listach;

Bind - serwer DNS

Instalacja i konfiguracja Binda jako lokalnego serwera DNS jest opcjonalna. Jeżeli ją pominiemy, pamiętać trzeba o umieszczeniu poprawnych adresów zewnętrznych serwerów DNS w konfiguracji usługi DHCP. Minusem będzie brak możliwości odwoływania się do innych komputerów w sieci lokalnej za pomocą ich nazw. Warto więc rozważyć ewentualne zastąpienie tandemu Bind + ISC DHCP alternatywą, czyli usługą Dnsmasq.

Instalacja: sudo apt-get install bind9

Konfiguracja

Ustawień dokonujemy w plikach zawartych w katalogu /etc/bind. Podstawowe opcje ustawiamy w /etc/bind/named.conf.options:

options {
 directory "/var/cache/bind";
 forwarders {
  208.67.222.222;
  208.67.220.220;
 };
 dnssec-validation yes;
 auth-nxdomain no;
 listen-on { 192.168.19.1; 127.0.0.1; };
 listen-on-v6 { any; };
};


W pliku /etc/bind/named.conf.local definiujemy naszą domenę lokalną:

zone "mojadomena.org" {
  type master;
  file "/etc/bind/db.mojadomena.org";
};

zone "19.168.192.in-addr.arpa" {
  type master;
  notify no;
  file "/etc/bind/db.192";
};


W zdefiniowanych powyżej plikach konfiguracyjnych trzeba wprowadzić odpowiednie rekordy DNS. W pliku /etc/bind/db.mojadomena.org opisujemy naszą domenę:

$TTL 604800
@    IN     SOA     mojserwer.mojadomena.org.    admin.mojadomena.org. (
                    3 ; Serial
                    604800 ; Refresh
                    86400 ; Retry
                    2419200 ; Expire
                    604800 ); Negative Cache TTL 

@           IN      NS    mojserwer.mojadomena.org.
localhost   IN      A     127.0.0.1
mojserwer   IN      A     192.168.19.1
dns1        IN      CNAME mojserwer


W pliku /etc/bind/db.192 konfigurujemy domenę odwrotną:

$TTL 604800
@    IN     SOA     mojserwer.mojadomena.org.    admin.mojadomena.org. (
                    3 ; Serial
                    604800 ; Refresh
                    86400 ; Retry
                    2419200 ; Expire
                    604800 ); Negative Cache TTL 

@    IN     NS      mojserwer.
1    IN     PTR     mojserwer.mojadomena.org.


Powyższa konfiguracja ma zapewniać serwer autorytatywny dla domeny lokalnej z funkcją buforowania zapytań, dlatego trzeba jeszcze zadbać, aby wszystkie zapytania DNS na serwerze kierowane były do serwera lokalnego (buforującego). W pliku /etc/dhcp/dhclient.conf powinniśmy mieć wpisy:
supersede domain-name "mojadomena.org";
prepend domain-name-servers 127.0.0.1;
- dzięki czemu w pliku /etc/resolv.conf znajdzie się właściwy wpis: nameserver 127.0.0.1 oraz search mojadomena.org.

Użyteczne polecenia:
  • sudo service bind9 start (restart) - uruchomienie (restart) serwera DNS;
  • named-checkzone example.com /etc/bind/db.mojadomena.org - sprawdzenie poprawności konfiguracji domeny lokalnej;
  • named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192 - sprawdzenie poprawności konfiguracji domeny odwrotnej;
  • dig -x 127.0.0.1 - sprawdzenie działania serwera na interfejsie lokalnym;
  • dig google.pl - testowanie serwera, należy powtórzyć co najniej dwa razy, aby sprawdzić czas odpowiedzi, czyli działanie funkcji buforowania;
  • tail -f /var/log/syslog - śledzenie ewentualnych błędów;

Samba

Instalacja: sudo apt-get install samba

Przed edycją pliku konfiguracyjnego warto zrobić jego kopię: sudo cp /etc/samba/smb.conf.master /etc/samba/smb.conf.org. Edytujemy plik /etc/samba/smb.conf.master:

[global]
 workgroup = mojadomena.org
 server string = %h server (Samba, Ubuntu)
 interfaces = eth1
 bind interfaces only = Yes
 map to guest = Bad User
 pam password change = Yes
 passwd program = /usr/bin/passwd %u
 passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
 unix password sync = Yes
 syslog = 0
 log file = /var/log/samba/log.%m
 max log size = 100
 add machine script = /usr/sbin/useradd -N -g machines -c Machine -s /bin/false -d /dev/null %u
 logon script = scripts\logon.cmd
 logon path = \\%L\profiles\%U
 logon drive = H:
 logon home = \\%L\%U
 domain logons = Yes
 os level = 35
 preferred master = Yes
 domain master = Yes
 dns proxy = No
 usershare allow guests = Yes
 panic action = /usr/share/samba/panic-action %d
 idmap config * : backend = tdb

[homes]
 comment = Katalogi domowe
 valid users = %S
 read only = No
 create mask = 0700
 directory mask = 0700
 browseable = No

[netlogon]
 comment = Network Logon Service
 path = /srv/samba/netlogon
 guest ok = Yes
 browseable = No

[profiles]
 comment = Users profiles
 path = /srv/samba/profiles
 read only = No
 create mask = 0600
 directory mask = 0700
 profile acls = Yes
 browseable = No

[printers]
 comment = All Printers
 path = /var/spool/samba
 create mask = 0600
 guest ok = Yes
 printable = Yes
 print ok = Yes
 browseable = No

[print$]
 comment = Printer Drivers
 path = /var/lib/samba/printers

[public]
 comment = Katalog publiczny
 path = /home/public
 read only = No
 guest ok = Yes

[materialy]
 comment = Zasoby dla uczniow
 path = /home/materialy
 guest ok = Yes

Tworzymy katalogi na profile mobilne oraz katalogi udostępniane:
sudo mkdir -m 1777 -p /srv/samba/netlogon
sudo mkdir -m 1777 -p /srv/samba/profiles
sudo mkdir -m 777 -p /srv/samba/public
sudo mkdir -m 755 -p /srv/samba/materialy


Dla każdego użytkownika i każdej maszyny, którą chcemy podłączyć do PDC (kontrolera domeny) musimy utworzyć konta. Ale najpierw utworzymy i zmapujemy w domenie przydatne grupy:
sudo addgroup -gid 200 ntadmins
sudo addgroup -gid 201 machines

sudo addgroup -gid 202 designers
sudo addgroup -gid 203 nobody
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d
net groupmap add ntgroup="Domain Users"  unixgroup=users rid=513 type=d
net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d
net groupmap add ntgroup="Designers" unixgroup=designers type=d


Dodanie konta dla maszyny:
/usr/bin/useradd -g machines -d /dev/null -c "machine nickname" -s /bin/false test$
passwd -l test$
smbpasswd -a -m test


Dodanie konta dla użytkownika, dodanie użytkownika do przykładowych grup, dodanie użytkownika do kont samby:
sudo adduser juzio
sudo groupmod -a -G users,designers juzio
sudo smbpasswd -a juzio


Logi samby znajdziemy w /var/log/samba.

Podręczne polecenia:
  • sudo service smbd start (restart) - start (restart) podstawowej usługi
  • sudo service nmbd start (restart) - start (restart) usługi przeglądania
  • sudo pdbedit -L -v - podgląd użytkowników Samby

Vnstat

Instalacja i konfiguracja: sudo apt-get install vnstat
sudo vnstat -u -i eth0
sudo vnstat -u -i eth1

Przeglądanie statystyk:
sudo vnstat przełącznik
  • -q - ogólne
  • -s - krótkie
  • -h - ostatnie 12 godzin
  • -d - ostatnie dni
  • -m - miesiące
  • -l - statystyki w czasie rzeczywistym

Optymalizacja

Przede wszystkim podana wyżej konfiguracja Squida i Dansguardiana działa, ale należy dostosować ją do konkretnych warunków, czyli warto obserwować logi:
tail -f /var/log/squid3/access.log oraz tail -f /var/log/dansguardian/access.log
Warto zastanowić się, które strony są zaufane/potrzebna, a które należy blokować i dopisać je do plików odpowiednio /etc/dansguardian/lists/exceptionsitelist oraz /etc/dansguardian/lists/bannedsitelist.

Na serwerze nie powinny działać żadne usługi, które nie są na nim niezbędne, więc co można usunąć?
  • sudo apt-get purge whoopsie - usunięcie narzędzia raportowania błędów (instalowane automatycznie)
  • sudo apt-get purge update-notifier-common - usunięcie zbędnych na serwerze powiadomień o aktualizacjach
  • sudo apt-get purge apport apport-symptoms python-apport python-problem-report - usunięcie usługi tworzącej raporty awarii

Aktualizacja: powyższa konfiguracja działa również na Debianie (Wheezy), przy czym ISC DHCP Server + Bind zastąpiono pakietem Dnsmasq.

Zobacz: Dokumentacja

12 komentarzy:

  1. Bardzo Panu dziękuję, szukałem zamiennika SBS'a w szkole. Pozdrawiam z wdzięcznością, Irek C.

    OdpowiedzUsuń
  2. A musi być skonfigurowany bind aby zadziałała reszta tzn serwer dhcp, squid, dansquardian, nfs, sieć wygląda tak internet-router-serwer-lan.

    OdpowiedzUsuń
  3. Jezeli to możliwe prosiłbym o opisanie konfiguracji serwera pocztowego proxy na ubuntu 12 server

    OdpowiedzUsuń
  4. prosiłbym o dodanie funkcji serwera poczty proxy dla pop3 i smtp

    OdpowiedzUsuń
  5. dziękuje zrobiłem co trzeba czy mogę się przyłączyć do domeny z poziomu Windows xp?? jezeli tak to proszę o podpowiedż jak?? czy tylko z ubuntu jest możliwa ta opcja dla powyższej konfiguracji??

    OdpowiedzUsuń
  6. xp dodalem do domeny dzieki ale gdy loguje się jest komunikat ze nie moze stworzyc profilu mobilnego o co chodzi?? proszę o pomoc rafmik5@wp.pl

    OdpowiedzUsuń
  7. też przyłączam się do prośby o opisanie konfiguracji serwera pocztowego

    OdpowiedzUsuń
  8. root@net:/home/mariusz# sudo squid3 -z
    2014/08/05 21:47:33| aclParseAclLine: ACL 'manager' already exists with different type.
    FATAL: Bungled /etc/squid3/squid.conf line 2: acl manager proto cache_object
    Squid Cache (Version 3.3.8): Terminated abnormally.
    CPU Usage: 0.016 seconds = 0.012 user + 0.004 sys
    Maximum Resident Size: 17728 KB
    Page faults with physical i/o: 0

    OdpowiedzUsuń
  9. root@net:/home/mariusz# sudo squid3 -z
    2014/08/27 19:05:25| aclParseAclLine: ACL 'manager' already exists with different type.
    FATAL: Bungled /etc/squid3/squid.conf line 2: acl manager proto cache_object
    Squid Cache (Version 3.3.8): Terminated abnormally.
    CPU Usage: 0.016 seconds = 0.008 user + 0.008 sys
    Maximum Resident Size: 17712 KB
    Page faults with physical i/o: 0
    root@net:/home/mariusz#

    Jakiś pomysł ?

    OdpowiedzUsuń
  10. Squid nie obsługuje już "transaprent".

    http://www.elektroda.pl/rtvforum/topic2888458.html

    OdpowiedzUsuń
  11. Ciekawy artykuł, na pewno przetestuję. Osobiście stawiałem na Debianie 7 i na Ubuntu 14.04 Bind9 z Samba4 i za każdym razem Bind nie uruchamia się po komendzie restart. Ręce opadają, boje się , że tu będzie tak samo.

    OdpowiedzUsuń
  12. Bardzo fajnie napisane. Jestem pod wrażeniem i pozdrawiam.

    OdpowiedzUsuń

Co myślisz, co czujesz?