вторник, 26 августа 2008 г.

FreeBSD servers

___________________________
FTP server(ftpd):
Данный сервер передает данные по сети в не защищенном виде.
Проверил работоспособность демона inetd командой
ps -waux | grep inetd
Добавил в файл /etc/rc.conf
inetd_enable="YES"
А в файле разкомментирвал строчки ftp.
Перезапустил демон:
/etc/rc.d/inetd stop
/etc/rc.d/inetd start
Проверил работоспособность ftp
ftp localhost
/etc/ftpusers - в этом фале запрещенные пользователи или группы(@users)
При создания файла touch /var/run/nologin - сервер запрещает к нему подключение
Для добавление анонимных пользователей, нужно в
sysinstall->Configure->Networking поставить галочку на AnonFTP
Для отключения пользователя anonymuos можно удалить пользователя ftp или дерево /var/ftp
___________________________
Маршрутизатор:
Перенаправление пакетов с одного сетевого интерфейса на другой включается в /etc/rc.conf
gateway_enable="YES"
Необходимо включить firewll и nat в файле ядра
options IPFIREWALL
options IPFIREWALL_VERBOSE # journal
options IPFIREWALL_VERBOSE_LIMIT=100 # Limit journal
options IPFIREWALL_DEFAULT_TO_ACCEPT # default close all
options IPDIVERT # acces divert to nat
Потом включается демон natd, firewall в /etc/rc.conf
firewall_enable="YES"
#firewall_type="OPEN"
firewall_script="/etc/ipfw.conf"
natd_enable="YES"
natd_interface="re1" #Nat интерфейс на re1(на нем интернет)
nats_flags="-u -m"
smbd_enable="YES"
nmbd_enable="YES"
named_enable="YES" # Сервер DNS

Конфигурация IPFW
Создаем файл /usr/firewall.conf и для пропуска все пакеты, через него вписываем:
add divert natd all from any to any via ed0 add
allow all from any to any
Ставим права на файл: chmod 600 /usr/local/etc/firewall.conf
Также можно задать:
firewall_type="open" - разрешает все входящие и исходящие пакеты
firewall_type="client" - правила для защиты только данной машины
firewall_type=simple" - правила для защиты всей сети
Настройка скрипта ipfw:
#!/bin/sh

/sbin/ipfw -f flush
/sbin/ipfw add 00050 check-state
/sbin/ipfw add 00100 divert 8668 ip4 from any to any via re1
/sbin/ipfw add 00200 allow ip from any to any via lo0
/sbin/ipfw add 00300 deny ip from any to 127.0.0.0/8
/sbin/ipfw add 00400 deny ip from 127.0.0.0/8 to any
# deny local lan on re1(Inet)
/sbin/ipfw add 00550 deny ip from any to 10.0.0.0/8 in via re1
/sbin/ipfw add 00560 deny ip from any to 172.16.0.0/12 in via re1
/sbin/ipfw add 00580 deny ip from any to 0.0.0.0/8 in via re1
# deny autoconfigure local on re1
/sbin/ipfw add 00590 deny ip from any to 169.254.0.0/16 in via re1
# deny multicastovye rassylki
/sbin/ipfw add 00600 deny ip from any to 224.0.0.0/4 in via re1
# deny fragmenrirovanye icmp
/sbin/ipfw add 00610 deny icmp from any to any frag
# deny icmp/32 on re1
/sbin/ipfw add 00620 deny log icmp from any to 255.255.255.255 in via re1
/sbin/ipfw add 00630 deny log icmp from any to 255.255.255.255 out via re1
# allow ssh from Net on Lan
/sbin/ipfw add 00650 allow ip from any to any ssh via re1

# allow traffic with Inet to re1 wich established
/sbin/ipfw add 00670 allow tcp from any to 78.107.117.210/32 via re1 established
#
# allow vnc on 192.168.7.24
#/sbin/ipfw add 00660 allow ip from any to any 1988 via re1

# deny icmp all from Inet. Allow icmp ni Inet from local
/sbin/ipfw add 00680 allow icmp from any to any out icmptype 8
/sbin/ipfw add 00690 allow icmp from any to any in icmptype 0
/sbin/ipfw add 00700 deny icmp from any to any via re1
# deny tcp and udp on re0 for 192.168.7.44
/sbin/ipfw add 00750 deny tcp from 192.168.7.44 to any via re0
/sbin/ipfw add 00760 deny udp from 192.168.7.44 to any via re0
# deny tcp 139 and 445 ports deny fron Inet
/sbin/ipfw add 00800 deny tcp from any to any 445 via re1
/sbin/ipfw add 00810 deny tcp from any to any 139 via re1
#deny all on re1
/sbin/ipfw add 00820 deny tcp from any to 78.107.117.210 via re1
# allow dns
/sbin/ipfw add 00840 allow tcp from 78.107.117.210 to 195.14.50.1 53 via re1
/sbin/ipfw add 00850 allow udp from 78.107.117.210 to 195.14.50.1 53 via re1
# deny all 53
/sbin/ipfw add 00860 deny tcp from any to any 53 via re1
/sbin/ipfw add 00870 deny udp from any to any 53 via re1
# allow tcp packet po ustanovlennym soedineniyam
/sbin/ipfw add 00900 allow tcp from any to any established

/sbin/ipfw add 01000 allow ip from any to any
/sbin/ipfw add 65534 deny ip from any to any

Дополнитльная информация
________________________
Установка DNS
cd /usr/ports/dns/bind9
make install
Переходим в cd /etc/namedb/named.conf для конфигурации сервера:
listen-on { any; }; #для прослушки всех, можно: listen-on { 192.168.7.0/24; }
forwarders {
195.14.50.1;
195.14.50.21;
}; # указывая ip провайдера
_______________________
Установка SAMBA
cd /usr/ports/net/samba3
Для конфигурации переходим в /usr/local/etc (в linux: /etc/samba)
ee smb.conf
В файле вносим:
workgroup = west.lan
server string = westser
hosts allow = 192.168.7. # можно ограничить по ip hosts allow = 192.168.7.24, запрет hosts deny 192.168.7.21
interfaces = re0 # Используем samba только на внутреннем интерфейсе
bind interfaces only = Yes # Используем samba только на внутреннем интерфейсе
max log size = 100
security = share #Пользователи не должны вводить логин и пасс при подключенпие к серверу

#====== Share Definitions ======
[FILESERVER]
comment = FILESERVER
path = /home/vital/files
browseable = yes #Если поставить browseable = no, то до каталога можно будет достучаться набрав полный адрес. В общих ресурсах его не будет видно.
writable = yes
guest ok = yes
share mode = yes
Добавляем в rc.conf демон для samba:
smbd_enable="YES"
nmbd_enable="YES
Запускаем демон
/usr/local/etc/rc.d]# ./samba start

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd Переносит пользователей ОС в пользов-й smb
Или можно синхронизировать через webmin
После синхронизация, нужно вновь задать пароли.

Пример работы пользователей с папкой ftp:
_________________
[FTP]
writeable = yes запись в папку
read list = west,@west пользователь и группа только на чтение
valid users = vital,west корректные пользователи
admin users = vital, root пользователи администрирования папки
path = /local/ftp/ путь к паки
write list = vital,@wheel,@vital пользователь и группа на чтение/запись
_________________
Не видимая директория для работы пользователя vital:
_________________
[vital]
comment = files for vital
path = /local/vital/
writeable = yes
valid users = vital
admin users = vital
write list = vital, @wheel, @vital
browseable = No
_________________
Можно сопоставлять нескольких пользователей windows с одним пользователем Nix, что позволит дать группам win те же права, что и у конкретного пользователя nix'ов.
Создаётся: smbusers.map и внего прописываются данные.

За комментированный log file = ... , то логи будут указанны в одном файле: log.smb
max log size = 50 размер журнала в 50 кбайт

public = yes или guest ok = yes разрешения гостевого входа.

/usr/local/etc/rc.d/samba restart перезагрузка samba в freebsd
smbd -V версия самбы
winbindd -V версия winbind

winbind интеграция samba в домены windows. Сервис синхронизирует список пользователей и групп PDC с машиной Samba.
testparm - проверяет параметры файла smb.conf
______________________
Установка задания на выполнение через CRON:
Необходимо было синхронизировать время.
Создал скрипт /clock.sh:
#!/bin/sh
ntpdate 194.186.254.22 195.2.64.5
Сделал его выполняемым:
chmod +x clean
Зарегистрировался в системе под своим пользователем и создал задание, через:
crontab -e
Открылся vi редактор и в нем внес
#sync time
30 23 * * * /clock.sh
Желательно создать еще 3-ю пустую строку.
Сохранил, ESC+ZZ
Т.е. каждый день в 23:30 будет выполняться скрипт clock.sh
Данное задание находится: /var/cron/tab в файле по имени пользователя.
crontab -l вывод запланированных заданий.
В /var/log/cron лог выполнения задания cron'а
_____________________
Проброс порта из вне во внутреннюю сеть:

Самый простой способ и 100% рабочий, установить rinetd из портов:

Код:
# cd /usr/ports/net/rinetd && make install clean
# echo ‘rinetd_enable=”YES”‘ >> /etc/rc.conf
# ee /usr/local/etc/rinetd.conf

Код:
1.2.3.4 10001 192.168.1.1 10001

1.2.3.4 - Ваш внешний IP-адрес.
10001 - Ваш внешний порт.
192.168.1.1 - компьютер внутри локальной сети.
10001 - порт компьютера внутри локальной сети.

Код:
# /usr/local/etc/rc.d/rinetd start

Проверяем запущенный демон: sockstat | grep rinetd

______________________
Администрирование через WEBMIN

Webmin - это программный комплекс, который позволяет администрировать unix-подобную операционную систему, не работая с командной строке и не запоминая ни одной команды. Все управление сервером происходит через веб-интерфейс. Используя любой браузер, администратор сервера может заводить новые аккаунты, почтовые ящики, изменять настройки веб-сервера Apache, исправлять и дополнять записи DNS, настраивать сайты, почтовые ящики и т.д.

Webmin состоит из простого веб-сервера и небольшого количества скриптов, которые собственно и осуществляют связь между командами администратора через веб-интерфейс и их исполнением на уровне операционной системы и прикладных программ. Webmin написан полностью на языке Perl и не использует никаких дополнительных нестандартных модулей. Простота, легкость и быстрота выполнения команд - одно из самых больших преимуществ данной панели управления.

Данная панель управления бесплатно распространяется для коммерческого и некоммерческого использования. Авторы этой программы позволяют всем желающим не только бесплатно использовать программу, но и изменять ее по своему усмотрению.

Работать с Webmin достаточно просто - нужно запустить браузер, набирать http://имя_домена.com:10000/ и попасть на страницу администрирования.

#whereis webmin
#cd /usr/ports/sysutils/webmin
#make install

#/usr/local/lib/webmin/setup.sh - скрипт запуск настройки

в /etc/rc.conf добавить webmin_enable="YES"
default port:10000

____________________

SAMS (SQUID Account Management System)

SAMS представляет собой программное средство для администрирования доступа пользователей к прокси-серверу SQUID.
SAMS это не биллиноговая система!

Возможности системы:

  • Администрирование системы через web интерфейс
  • Ограничение объема трафика пользователей на месяц
  • Автоматическое отключение пользователей, превысивших лимит
  • Блокировка доступа пользователей к запрещенным ресурсам интернет
  • Настройка доступа пользователей через механизм шаблонов
  • Разбиение пользователей на группы для удобства администрирования системы
  • Ведение статистики посещенных пользователями ресурсов интернет
  • Формирование отчетов по трафику пользователей за любой отрезок времени
  • Поддержка видов авторизации SQUID: ntlm, ncsa, ip
  • Поддержка использования редиректоров SQUID: rejik, squidGuard
  • Ограничение скорости закачки для групп пользователей
  • Посылку сообщений администратору при отключении пользователей при превышении трафика
  • Для хранения данных используется СУБД MySQL

Комментариев нет: