CentOS+squid+sams+mysql+apach+php+nat+iptables

Документация связанная с установкой, настройкой и работой пользовательского ПО
Ответить
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

CentOS+squid+sams+mysql+apach+php+nat+iptables

Сообщение zaka » 03 июн 2011, 15:56

CentOS+squid+sams+mysql+apach+php+nat+iptables
(моно сказать что это тест или как говориться лишний инфы не бывает )

ОС: CentOS 5.6
Железа:
RAM: DIM 256 md
HDD: 20 gb
CPU: intel celeron Pent3
кв.
Зеркало для CentOS: centos.mega.kg

Про инсталляцию не буду писать будем считать что ОС поставили и идем настраивать репы но если что моно посмотреть установку redhatпочти одной и тоже.
ВСЕ ДЕЛАЕМ ИЗ ПОД ROOT'a! Настройка сети вам поможет утилита setup или идем в конф файл /etc/sysconfig/network-scripts и называние интерфейса ifcfg-ethX
Пример конф файла а getawey пропишем в /etc/sysconfig/network/:
Пример /etc/sysconfig/network-scripts/ifcfg-ethX

Код: Выделить всё

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=eth1
BOOTPROTO=none
HWADDR=00:e0:4c:80:25:52
IPADDR=192.168.0.88
NETMASK=255.255.255.0
ONBOOT=yes
#HOTPLUG=no
TYPE=Ethernet
Пример /etc/sysconfig/network

Код: Выделить всё

nano /etc/sysconfig/network

Код: Выделить всё

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.89

и второй способ setup набираем setup из под root'a --->Network configuration ---> Edit Devices ---> выбираем сетевую карту и редактируем а в Edit DNS прописываем ДНС сервера или в /etc/resolv.conf
Пример resolv.conf

Код: Выделить всё

nameserver 127.0.0.1
nameserver 77.235.14.2
nameserver 77.235.14.3
Настроим CentOS на мегоскийе репы

Код: Выделить всё

nano /etc/yum.repos.d/CentOS-Base.repo 
За комментируем все что есть в этом файле и вставляем туды текст (Пример настройки реп на мегу).
[spoilercat /etc/yum.repos.d/CentOS-Base.repo][base]
name=CentOS-5 - Base
baseurl=http://centos.mega.kg/files/5.6/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled = 1

[updates]
name=CentOS-5 - Updates
baseurl=http://centos.mega.kg/files/5.6/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled = 1[/spoiler]

Делаем раз и идем пить кофе (обновляем систему)

Код: Выделить всё

yum -y update 
y - отвечает на все вопросы ДА
update - обновление

У мну ОС скачал 166 MB и 230 пакетов, 10-15 мин и если видим слово Complete! от все ОК.
[spoilerПример обновленных и установленных ПО]Installed:
kernel.i686 0:2.6.18-238.9.1.el5

Dependency Installed:
iscsi-initiator-utils.i386 0:6.2.0.872-6.el5 python-libs.i386 0:2.4.3-44.el5

Updated:
amtu.i386 0:1.0.6-2.el5 apr.i386 0:1.2.7-11.el5_6.4 apr-devel.i386 0:1.2.7-11.el5_6.4
audit.i386 0:1.7.18-2.el5 audit-libs.i386 0:1.7.18-2.el5 audit-libs-python.i386 0:1.7.18-2.el5
autofs.i386 1:5.0.1-0.rc2.143.el5_6.2 avahi.i386 0:0.6.16-10.el5_6 avahi-compat-libdns_sd.i386 0:0.6.16-10.el5_6
avahi-glib.i386 0:0.6.16-10.el5_6 bind.i386 30:9.3.6-16.P1.el5 bind-chroot.i386 30:9.3.6-16.P1.el5
bind-libs.i386 30:9.3.6-16.P1.el5 bind-utils.i386 30:9.3.6-16.P1.el5 centos-release.i386 10:5-6.el5.centos.1
centos-release-notes.i386 0:5.6-0 coolkey.i386 0:1.1.0-15.el5 coreutils.i386 0:5.97-23.el5_6.4
cpp.i386 0:4.1.2-50.el5 crash.i386 0:4.1.2-8.el5.centos cups.i386 1:1.3.7-26.el5_6.1
cups-libs.i386 1:1.3.7-26.el5_6.1 curl.i386 0:7.15.5-9.el5_6.2 dbus.i386 0:1.1.2-15.el5_6
dbus-libs.i386 0:1.1.2-15.el5_6 device-mapper.i386 0:1.02.55-2.el5 device-mapper-event.i386 0:1.02.55-2.el5
device-mapper-multipath.i386 0:0.4.7-42.el5_6.2 dhclient.i386 12:3.0.5-23.el5_6.4 dhcpv6-client.i386 0:1.0.10-20.el5
dump.i386 0:0.4b41-5.el5 filesystem.i386 0:2.4.0-3.el5.centos gcc.i386 0:4.1.2-50.el5
gdbm.i386 0:1.8.0-26.2.1.el5_6.1 gettext.i386 0:0.17-1.el5 glibc.i686 0:2.5-58.el5_6.3
glibc-common.i386 0:2.5-58.el5_6.3 glibc-devel.i386 0:2.5-58.el5_6.3 glibc-headers.i386 0:2.5-58.el5_6.3
hal.i386 0:0.5.8.1-62.el5 httpd.i386 0:2.2.3-45.el5.centos.1 httpd-devel.i386 0:2.2.3-45.el5.centos.1
httpd-manual.i386 0:2.2.3-45.el5.centos.1 hwdata.noarch 0:0.213.22-1.el5 initscripts.i386 0:8.45.33-1.el5.centos
jwhois.i386 0:3.2.3-12.el5 kernel-headers.i386 0:2.6.18-238.9.1.el5 kpartx.i386 0:0.4.7-42.el5_6.2
krb5-libs.i386 0:1.6.1-55.el5_6.1 krb5-workstation.i386 0:1.6.1-55.el5_6.1 ksh.i386 0:20100202-1.el5_6.5
kudzu.i386 0:1.2.57.1.26-1.el5.centos.1 less.i386 0:436-7.el5 libgcc.i386 0:4.1.2-50.el5
libgomp.i386 0:4.4.4-13.el5 libhugetlbfs.i386 0:1.3-8.2.el5 libselinux.i386 0:1.33.4-5.7.el5
libselinux-python.i386 0:1.33.4-5.7.el5 libselinux-utils.i386 0:1.33.4-5.7.el5 libsmbclient.i386 0:3.0.33-3.29.el5_6.2
libstdc++.i386 0:4.1.2-50.el5 libtiff.i386 0:3.8.2-7.el5_6.7 libuser.i386 0:0.54.7-2.1.el5_5.2
libvolume_id.i386 0:095-14.24.el5 logwatch.noarch 0:7.3-9.el5_6 lvm2.i386 0:2.02.74-5.el5_6.1
m2crypto.i386 0:0.16-7.el5 man-pages.noarch 0:2.39-17.el5 microcode_ctl.i386 1:1.17-1.52.el5
mkinitrd.i386 0:5.1.19.6-68.el5_6.1 mod_ssl.i386 1:2.2.3-45.el5.centos.1 mysql.i386 0:5.0.77-4.el5_6.6
nash.i386 0:5.1.19.6-68.el5_6.1 nfs-utils.i386 1:1.0.9-50.el5 nscd.i386 0:2.5-58.el5_6.3
nss.i386 0:3.12.8-4.el5_6 nss-tools.i386 0:3.12.8-4.el5_6 nss_ldap.i386 0:253-37.el5_6.1
numactl.i386 0:0.9.8-12.el5_6 oddjob.i386 0:0.27-11.el5 oddjob-libs.i386 0:0.27-11.el5
openldap.i386 0:2.3.43-12.el5_6.7 openldap-devel.i386 0:2.3.43-12.el5_6.7 openssh.i386 0:4.3p2-72.el5_6.3
openssh-clients.i386 0:4.3p2-72.el5_6.3 openssh-server.i386 0:4.3p2-72.el5_6.3 pam_krb5.i386 0:2.2.14-18.el5
pango.i386 0:1.14.9-8.el5.centos.2 paps.i386 0:0.6.6-20.el5 passwd.i386 0:0.73-2
patch.i386 0:2.5.4-31.el5 pciutils.i386 0:3.1.7-3.el5 pcre.i386 0:6.6-6.el5_6.1
poppler.i386 0:0.5.4-4.4.el5_6.17 poppler-utils.i386 0:0.5.4-4.4.el5_6.17 popt.i386 0:1.10.2.3-22.el5
postgresql-libs.i386 0:8.1.23-1.el5_6.1 psmisc.i386 0:22.2-7.el5_6.2 python.i386 0:2.4.3-44.el5
python-numeric.i386 0:23.7-2.2.2.el5_6.1 python-urlgrabber.noarch 0:3.1.0-6.el5 quota.i386 1:3.13-5.el5
redhat-lsb.i386 0:4.0-2.1.4.el5 rmt.i386 0:0.4b41-5.el5 rng-utils.i386 1:2.0-4.el5
rpm.i386 0:4.4.2.3-22.el5 rpm-libs.i386 0:4.4.2.3-22.el5 rpm-python.i386 0:4.4.2.3-22.el5
samba.i386 0:3.0.33-3.29.el5_6.2 samba-client.i386 0:3.0.33-3.29.el5_6.2 samba-common.i386 0:3.0.33-3.29.el5_6.2
sed.i386 0:4.1.5-8.el5 selinux-policy.noarch 0:2.4.6-300.el5_6.1 selinux-policy-targeted.noarch 0:2.4.6-300.el5_6.1
shadow-utils.i386 2:4.0.17-18.el5_6.1 sudo.i386 0:1.7.2p1-10.el5 system-config-securitylevel.i386 0:1.6.29.1-6.el5
system-config-securitylevel-tui.i386 0:1.6.29.1-6.el5 tmpwatch.i386 0:2.9.7-1.1.el5.5 tzdata.i386 0:2011g-1.el5
udev.i386 0:095-14.24.el5 util-linux.i386 0:2.13-0.56.el5 vim-common.i386 2:7.0.109-7.el5
vim-enhanced.i386 2:7.0.109-7.el5 vim-minimal.i386 2:7.0.109-7.el5 vsftpd.i386 0:2.0.5-16.el5_6.1
yum.noarch 0:3.2.22-33.el5.centos
Complete! *COOL*[/spoiler]
Ставим кучу (группу) программ Development Tools

Код: Выделить всё

yum -y groupinstall "Development Tools"
y - ДА
groupinstall - Ставит группу пакетов

[spoilerПример обновленных и установленных ПО]Installed:
autoconf.noarch 0:2.59-12 automake.noarch 0:1.9.6-2.3.el5 automake14.noarch 0:1.4p6-13.el5.1 automake15.noarch 0:1.5-16.el5.2
automake16.noarch 0:1.6.3-8.el5.1 automake17.noarch 0:1.7.9-7.el5.2 bison.i386 0:2.3-2.1 byacc.i386 0:1.9-29.2.2
cscope.i386 0:15.5-15.1.el5_3.1 ctags.i386 0:5.6-1.1 cvs.i386 0:1.11.22-7.el5 dev86.i386 0:0.16.17-2.2
diffstat.i386 0:1.41-1.2.3.el5 dogtail.noarch 0:0.6.1-3.el5 doxygen.i386 1:1.4.7-1.1 elfutils.i386 0:0.137-3.el5
flex.i386 0:2.5.4a-41.fc6 gcc-c++.i386 0:4.1.2-50.el5 gcc-gfortran.i386 0:4.1.2-50.el5 gdb.i386 0:7.0.1-32.el5_6.2
indent.i386 0:2.2.9-14.fc6 libtool.i386 0:1.5.22-7.el5_4 ltrace.i386 0:0.5-13.45svn.el5 oprofile.i386 0:0.9.4-15.el5.centos
patchutils.i386 0:0.2.31-2.2.2 pstack.i386 0:1.2-7.2.2 python-ldap.i386 0:2.2.0-2.1 rcs.i386 0:5.7-30.1
redhat-rpm-config.noarch 0:8.0.45-32.el5.centos rpm-build.i386 0:4.4.2.3-22.el5 splint.i386 0:3.1.1-16.el5 strace.i386 0:4.5.18-5.el5_5.5
subversion.i386 0:1.6.11-7.el5_6.3 swig.i386 0:1.3.29-2.el5 systemtap.i386 0:1.3-4.el5 texinfo.i386 0:4.8-14.el5
valgrind.i386 1:3.5.0-1.el5

Dependency Installed:
at-spi.i386 0:1.7.11-3.el5 chkfontpath.i386 0:1.10.1-1.1 elfutils-libs.i386 0:0.137-3.el5
gail.i386 0:1.9.2-3.el5_4 gnome-python2-gconf.i386 0:2.16.0-1.fc6 imake.i386 0:1.0.2-3
kernel-devel.i686 0:2.6.18-238.9.1.el5 libFS.i386 0:1.0.0-3.1 libXTrap.i386 0:1.0.0-3.1
libXaw.i386 0:1.0.2-8.1 libXevie.i386 0:1.0.1-3.1 libXfont.i386 0:1.2.2-1.0.3.el5_1
libXfontcache.i386 0:1.0.2-3.1 libXmu.i386 0:1.0.2-5 libXtst.i386 0:1.0.1-3.1
libXxf86misc.i386 0:1.0.1-3.1 libfontenc.i386 0:1.0.2-2.2.el5 libgfortran.i386 0:4.1.2-50.el5
libstdc++-devel.i386 0:4.1.2-50.el5 pyspi.i386 0:0.6.1-1.el5 systemtap-runtime.i386 0:1.3-4.el5
ttmkfdir.i386 0:3.0.9-23.el5 xorg-x11-font-utils.i386 1:7.1-3 xorg-x11-fonts-base.noarch 0:7.1-2.1.el5
xorg-x11-server-Xvfb.i386 0:1.1.1-48.76.el5_6.4 xorg-x11-server-utils.i386 0:7.1-5.el5_6.2 xorg-x11-xauth.i386 1:1.0.1-2.1
xorg-x11-xfs.i386 1:1.0.2-5.el5_6.1 xorg-x11-xinit.i386 0:1.0.2-15.el5
Complete! *COOL* [/spoiler]

Ставим ПО апач, пхп, мускул, скуид и всякие модули и т.д.
(httpd php php-mysql php-gd pcre-devel squid mysql-server mysql-devel gd-devel)

Код: Выделить всё

yum -y install httpd php php-mysql php-gd pcre-devel squid mysql-server mysql-devel gd-devel
[spoilerПример установленных ПО]Installed:
gd-devel.i386 0:2.0.33-9.4.el5_4.2 mysql-devel.i386 0:5.0.77-4.el5_6.6 mysql-server.i386 0:5.0.77-4.el5_6.6 pcre-devel.i386 0:6.6-6.el5_6.1
php-gd.i386 0:5.1.6-27.el5_5.3

Dependency Installed:
e2fsprogs-devel.i386 0:1.39-23.el5_5.1 fontconfig-devel.i386 0:2.4.1-7.el5 freetype-devel.i386 0:2.2.1-28.el5_5.1 keyutils-libs-devel.i386 0:1.2-1.el5
krb5-devel.i386 0:1.6.1-55.el5_6.1 libX11-devel.i386 0:1.0.3-11.el5 libXau-devel.i386 0:1.0.1-3.1 libXdmcp-devel.i386 0:1.0.1-2.1
libXpm-devel.i386 0:3.5.5-3 libjpeg-devel.i386 0:6b-37 libpng-devel.i386 2:1.2.10-7.1.el5_5.3 libselinux-devel.i386 0:1.33.4-5.7.el5
libsepol-devel.i386 0:1.15.2-3.el5 mesa-libGL-devel.i386 0:6.5.1-7.8.el5 openssl-devel.i386 0:0.9.8e-12.el5_5.7 perl-DBD-MySQL.i386 0:3.0007-2.el5
xorg-x11-proto-devel.i386 0:7.1-13.el5 zlib-devel.i386 0:1.2.3-3[/spoiler]

Ставим SAMS идем курить маны на офф сайт самс

Код: Выделить всё

mkdir -p /usr/src/sams # создаем каталог  
cd /usr/src/sams # идем на созданный  каталог  
wget "http://trash.sysadmins.el.kg/www/unix/src/sams-1.0.4.tar.bz2" # качаем самс из треша
ls # смотри  
sams-1.0.4.tar.bz2 # есть пакет
tar xf sams-1.0.4.tar.bz2  #делаем распаковку пакета    
cd sams-1.0.4 # переходим в каталог самс
ls # смотрим и читаем INSTALL
[spoilerls /usr/src/sams]CHANGELOG configure.in daemon.c demon.c INSTALL logtool.c mysql README redirect.c setpassword.php tools.c VERSION
config.h contribs debian doc INSTALL.master24 Makefile.am pcre.h README.RUS samsdaemon.c spec tools.h
configure COPYING define.h etc INSTALL.RUS Makefile.in php README.UPGRADE sams_system_test tmp update[/spoiler]
Думаю здесь вес понятно.
[spoilerСодержимое файла INSTALL]English documentation:
doc/EN/index.html
English FAQ:
doc/EN/faq.html


Admin user password:
login: admin
passwd: qwerty

Auditor user password
login: Auditor
passwd: audit[/spoiler]

Код: Выделить всё

./configure && make && make install # ставим самс  
[spoilerПример процесса установки самс]checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for main in -lm... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking pcre/pcre.h usability... no
checking pcre/pcre.h presence... no
checking for pcre/pcre.h... no
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether closedir returns void... no
checking for pid_t... yes
checking for unistd.h... (cached) yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether lstat dereferences a symlink specified with a trailing slash... yes
checking whether lstat accepts an empty string... no
checking whether lstat dereferences a symlink specified with a trailing slash... (cached) yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking whether stat accepts an empty string... no
checking for memmove... yes
checking for memset... yes
checking for pow... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strstr... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... (cached) yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for the SAMS startup scripts locations... using the SAMS startup scripts locations from /etc/init.d
checking for WEB server locations... using WEB server locations from /var/www/html
checking for MYSQL headers... using mysql includes from /usr/include/mysql
checking for <mysql.h> in /usr/include/mysql... using <mysql.h> from /usr/include/mysql
checking for MYSQL library... using mysql libraryes from /usr/lib/mysql
checking for libmysqlclient in /usr/lib/mysql... using libmysqlclient from /usr/lib/mysql
checking for PCRE headers... using pcre includes from /usr/include
checking for <pcre.h> in /usr/include... using <pcre.h> from /usr/include
checking for PCRE library... using pcre libraryes from /usr/lib
checking for libpcre in /usr/lib... using libpcre from /usr/lib
configure: creating ./config.status
config.status: creating Makefile

***** Options and locations *****
system: Linux
default path: /usr/local
default runtime config file: /etc/sams.conf
location the SAMS startup script: /etc/init.d
location HTTP server root directory: /var/www/html
location mysql includes: /usr/include/mysql
location mysql libraries: /usr/lib/mysql
location pcre includes: /usr/include/pcre.h
location pcre libraries: /usr/lib

Type 'make'

gcc -DDEFPATH="\".:/usr/local/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/local/share/locale\"" -I. -I/usr/include/mysql -I/usr/include -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c demon.c
In file included from demon.c:19:
logtool.c: In function ‘SearchDNSBase’:
logtool.c:261: warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result
gcc -DDEFPATH="\".:/usr/local/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/local/share/locale\"" -I. -I/usr/include/mysql -I/usr/include -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c tools.c
tools.c: In function ‘send_mysql_query’:
tools.c:169: warning: assignment discards qualifiers from pointer target type
tools.c: In function ‘url_decode’:
tools.c:229: warning: statement with no effect
tools.c: In function ‘TestPID’:
tools.c:338: warning: implicit declaration of function ‘kill’
tools.c: In function ‘do_connect’:
tools.c:552: warning: assignment makes integer from pointer without a cast
gcc -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -o sams demon.o tools.o -I. -L/usr/lib/mysql -lmysqlclient -L/usr/lib -lpcre
gcc -DDEFPATH="\".:/usr/local/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/local/share/locale\"" -I. -I/usr/include/mysql -I/usr/include -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c daemon.c
In file included from daemon.c:19:
logtool.c: In function ‘SearchDNSBase’:
logtool.c:261: warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result
gcc -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -o samsf daemon.o tools.o -I. -L/usr/lib/mysql -lmysqlclient -L/usr/lib -lpcre
gcc -DDEFPATH="\".:/usr/local/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/local/share/locale\"" -I. -I/usr/include/mysql -I/usr/include -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c redirect.c
redirect.c: In function ‘clean_up_child_process’:
redirect.c:217: warning: implicit declaration of function ‘wait’
redirect.c: In function ‘main’:
redirect.c:449: warning: implicit declaration of function ‘getpid’
gcc -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -o samsredir redirect.o tools.o -I. -L/usr/lib/mysql -lmysqlclient -L/usr/lib -lpcre
gcc -DDEFPATH="\".:/usr/local/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/local/share/locale\"" -I. -I/usr/include/mysql -I/usr/include -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c samsdaemon.c
samsdaemon.c: In function ‘listdir’:
samsdaemon.c:2463: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘__off_t’
samsdaemon.c:2464: warning: format ‘%d’ expects type ‘int’, but argument 7 has type ‘__off_t’
samsdaemon.c:2404: warning: unused variable ‘urlcode’
samsdaemon.c: In function ‘main’:
samsdaemon.c:2517: warning: unused variable ‘urlcode’
samsdaemon.c:2508: warning: unused variable ‘s’
samsdaemon.c:2520: warning: ‘symbol[1]’ may be used uninitialized in this function
samsdaemon.c:2520: warning: ‘symbol[2]’ may be used uninitialized in this function
gcc -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -o samsdaemon samsdaemon.o tools.o -I. -L/usr/lib/mysql -lmysqlclient -L/usr/lib -lpcre
make[1]: Entering directory `/usr/src/sams/sams-1.0.4'
creating /tmp/sams
cp ./etc/sams.conf /etc/sams.conf;
cp ./sams /usr/local/bin;
cp ./samsf /usr/local/bin;
cp ./samsredir /usr/local/bin;
cp ./samsdaemon /usr/local/bin;
cp ./etc/sams /etc/init.d;
cp ./mysql/recover_admin_passwd /usr/local/bin;
creating /usr/local/share/sams
cp -R php/* /usr/local/share/sams/;
chmod 777 /usr/local/share/sams/data;
chmod ugo+x /usr/local/share/sams/bin/*;
rm -f /usr/local/share/sams/data/*;
cp -R doc /usr/local/share/sams/;
cp ./mysql/sams_db.sql /usr/local/share/sams/data;
cp ./mysql/squid_db.sql /usr/local/share/sams/data;
cp ./update/upgrade_mysql_table.php /usr/local/share/sams/data;
creating symlink to sams directory
make[1]: Nothing to be done for `install-data-am'.
make[1]: Leaving directory `/usr/src/sams/sams-1.0.4'[/spoiler]

Здесь у нас стандартные пароли, пользователи на самс и БД если что меняем и здесь.
[spoilernano /etc/sams.conf][client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=samspasswd
MYSQLVERSION=4.0
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/etc/squid
SQUIDLOGDIR=/var/log/squid
SQUIDCACHEDIR=/var/spool/squid
SAMSPATH=/usr/local
SQUIDPATH=/usr/sbin
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/var/db/squidguard
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
LDAPSERVER=servername_or_ipadress
LDAPBASEDN=your.domain
LDAPUSER=DomainAdministrator
LDAPUSERPASSWD=passwd
LDAPUSERSGROUP=Users
REJIKPATH=/usr/local/rejik[/spoiler]

Идем настраивать мускула (Mysql) запускаем мускула

Код: Выделить всё

/etc/init.d/mysqld start

и запускаем такой хорошенький скрипт, меняем пасс root'a и отвечаем на все YES

Код: Выделить всё

mysql_secure_installation

[spoilerПример настроек]Set root password? [Y/n] Y # включить или активизировать пароль roota ответ ДА водим пасс повторяем и все
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y # удалить ананимуса? ДА
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y # отключить удаленный доступ roota ДА
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y # удалить базу тест ДА
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y # перезагрузить мускул ДА
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL![/spoiler]

Заходим под рутом в мускул и создаем БД.

Код: Выделить всё

mysql -p  # вход под рутом 
Passwor:  #водим пасс
GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "samspasswd"; #создаем БД squidctrl
GRANT ALL ON squidдщп.* TO sams@localhost IDENTIFIED BY "samspasswd"; #создаем БД squidlog
flush privileges; # обновление 
\q # выход из мускула
mysql  -p <  /usr/local/share/sams/data/sams_db.sql # заполняем таблицы готовыми данными от самс
Enter password: # водим пасс рута
mysql  -p <  /usr/local/share/sams/data/squid_db.sql # заполняем таблицы готовыми данными от самс
Enter password: # водим пасс рута
Редактируем squid /etc/squid/squid.conf

Код: Выделить всё

nano /etc/squid/squid.conf
нажимаем на Ctrl+W ищем слово forwarded_for on находим раскомментируем и редактируем

Код: Выделить всё

#Default:
forwarded_for off
#  TAG: cachemgr_passwd
Запускаем squid, sams, httpd:

Код: Выделить всё

services squid start
services sams start
services httpd start
Добавляем в авто загрузку

Код: Выделить всё

chkconfig squid on
chkconfig sams on
chkconfig httpd on
chkconfig --list squid # Смотрим добавился ли на авто заг.
Отключаем firewall'лы и т.д. везде отмечаем Disable или выставляем Security Level: Enabled, лезем в Customize и открываем порты SSH, WWW,Secure WWW.

Код: Выделить всё

system-config-securitylevel-tui
[spoilerПример]┌────────────┤ Firewall Configuration ├────────────┐
│ │
│ A firewall protects against unauthorized │
│ network intrusions. Enabling a firewall blocks │
│ all incoming connections. Disabling a firewall │
│ allows all connections and is not recommended. │
│ │
│ Security Level: ( ) Enabled (*) Disabled │
│ │
│ SELinux: Enforcing │
│ Permissive │
│ Disabled │
│ │
│ ┌────┐ ┌───────────┐ ┌────────┐ │
│ │ OK │ │ Customize │ │ Cancel │ │
│ └────┘ └───────────┘ └────────┘ │
│ │
│ │
└──────────────────────────────────────────────────┘[/spoiler]



Открываем браузер любой и наберем адрес сервера (http://192.168.0.89/sams) и мы должны попасть на главную стр. sams.

Изображение
Все должно быть как на скринах кроме IP сервера.
Описание этапов:
1- Авторизация пользователя для входа в самс под админом
2- Авторизация пользователя
3- Настройка ВЕБ интерфейса самс
4- Попадаем настройкам самс
5- Выбираем язык интерфейса
6- Сохраняем настройки самс
7- Нажимаем (Настраиваем самс что бы он считал логи squid'a)
8- Нажимаем
9- Включаем авторизацию ПО IP (Раздаем инет в локалку по IP)
10- Ставим галочку (Читаем логи squid'a)
11- Пившим IP сервера (меняем на свой IP)
12- Сохраняем.

Изображение
Изображение
Изображение
Изображение
Изображение

После всех настроек не забываем перезапустить всю систему!

Создание правил, пользователей, ограничение на url, скорость и т.д курим самостоятельна вот линк на офф сайт самс

Проверяем работает ил PHP и поможет нам вот такой набор команд (создаем index.php в /var/www/html если вы все сделали как выше описано то все должен быть ОКой)

Код: Выделить всё

touch /var/www/html/index.php && echo '<h1>It work Html</h1> echo "<h1>It work PHP";  <?phpinfo (); ?>' > /var/www/html/index.php
Открываем браузер и набираем http://192.168.0.88 если увидим It work Html, It work PHP и таблицу с PHP то все ОК пхп и апач работает а с мускулом уже работали выше.

Включаем поддержку NAT разрешение пересылки пакетов между сетевыми интерфейсами
Для того чтобы разрешить пересылку сетевых пакетов между сетевыми интерфейсами в системе добавьте в конец файла /etc/sysctl.conf
Пример sysctl.conf (смотрим читаем в инете что для чего и оставляем что считаем нужным ну основном защищаемся от всяких атак, делаем по больше буфер обмена и т.д. читаем в инете ))))

Код: Выделить всё

nano /etc/sysctl.conf
Пример sysctl.conf:

Код: Выделить всё

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
net.core.rmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_default = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 16777216 16777216
net.ipv4.tcp_wmem = 4096 16777216 16777216
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.ip_local_port_range = 16384 61000
net.ipv4.tcp_fin_timeout = 30
kernel.panic=10
net.ipv4.tcp_timestamps=0
Сохраните изменения и выполните для того чтобы изменения вступили с силу.

Код: Выделить всё

sysctl -p
Ресетним ПК

Код: Выделить всё

shutdown -r now или reboot
Следующий шаг iptables ну для начала вырубим все откроем нужные порты DNS, FTP, SWWW, WWW, Mail ... и постараемся перекинуть траф с 80 го на 3128 мой порт.

Код: Выделить всё

touch ~/firewall # создаем файл 
chmod +x firewall # даем права на запуск 
Пишем туды этот скрипт

Код: Выделить всё

#!/bin/bash
IPT="/sbin/iptables"
EXT="XX.XXX.XX.XXX" #внешний ИП
LAN="192.168.0.88"
$IPT -F
$IPT -X

$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

TCP_PORTS="21,22,25,53,80,143,443"
UPD_PORTS="53,21,20"

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -p tcp -m multiport --dport $TCP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dport $TCP_PORTS -j ACCEPT

$IPT -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
Вот насчет этой строчки я не уверен надо потыкать и т д.

Код: Выделить всё

$IPT -t NAT -A PREROUTING -d !$EXT -i $LAN -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Код: Выделить всё

./firewall # Запускаем
iptables -L -v # смотрим все ли ок в iptables
service iptables save # сохраняем настройки iptables 
Если хотите что не будь по серьезнее смотрим вот сюда бррр мне аж страшно стало хы хы

Заключение:

У мну получилось прокси сервер с билингом, ВЕБ сервер.
Надо еще по ковырять squid (кеш по баля сделать всякие acl и.т.), apche и php по настраивать в целом посмотреть в сторону security.

Пошел курить маны по iptables (все бывает первый раз))))
Последний раз редактировалось zaka 07 июн 2011, 09:01, всего редактировалось 67 раз.
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: Шлюз сервер squid+sams CentOS

Сообщение zaka » 03 июн 2011, 16:25

Продолжение следует! *COMP*
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: CentOS+squid+sams

Сообщение Raven » 06 июн 2011, 08:54

zaka
*BRAVO*
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: CentOS+squid+sams+mysql+apach+php+nat+iptables

Сообщение zaka » 07 июн 2011, 11:08

1) Баги в SAMS 1.0.4 показывает отчет тока за 2010 и ниже а выше не идет решил проблемс путем обновлении на версию 1.0.5 все оКоЙ

Код: Выделить всё

cd /usr/src/sams
wget http://sams.perm.ru/index.php?option=com_doqment&task=files.download&cid=12
tar xf sams.xxxxxx.tar.gz
cd sams.xxxx
./configure && make && make update
2) Ограничение трафа не жесткий
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Аватара пользователя
zaka
Эникейщик
Эникейщик
Сообщения: 461
Зарегистрирован: 19 май 2010, 08:52

Re: CentOS+squid+sams+mysql+apach+php+nat+iptables

Сообщение zaka » 10 июн 2011, 08:46

Если задумаете использовать redirector предлагаю rejik или samsredir
про 1 способ читаем с оффсайта
про 2 идем в конф файл squid.conf

Код: Выделить всё

nano /etc/squid/squid.conf
Пишем туды последнюю строчку в блоке TAG: url_rewrite_program

Код: Выделить всё

 TAG: url_rewrite_program
#       Specify the location of the executable for the URL rewriter.
#       Since they can perform almost any function there isn't one included.
#
#       For each requested URL rewriter will receive on line with the format
#
#       URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup <NL>
#
#       And the rewriter may return a rewritten URL. The other components of
#       the request line does not need to be returned (ignored if they are).
#
#       The rewriter can also indicate that a client-side redirect should
#       be performed to the new URL. This is done by prefixing the returned
#       URL with "301:" (moved permanently) or 302: (moved temporarily).
#       
#       It can also return a "urlgroup" that can subsequently be matched
#       in cache_peer_access and similar ACL driven rules. An urlgroup is
#       returned by prefixing the returned URL with "!urlgroup!".
#       
#       By default, a URL rewriter is not used.
#       
#Default:
# none
url_rewrite_program /usr/local/bin/samsredir
идем в админку sams

Код: Выделить всё

Администрирование SAMS > Настройка SAMS (гаечный ключ) > Редиректор: встроены SAMS
сохраняем перезапустим squid, sams вот и все
все за баненые url, расширение файлов squid будет отправлять на samsredir

еще один проблемс не мог добавить КГ зону в Локальные домены взял диапазон адресов из elcat'а добавил в Локальные домены но sams все равно считает КГ
[spoilerДиапазон адресов из elcat'а]127.0.0.1
192.168.0.0/24
212.112.96.0/255.255.224.0
31.186.48.0/255.255.248.0
193.106.48.0/255.255.252.0
109.71.224.0/255.255.248.0
46.251.192.0/255.255.224.0
195.38.160.0/255.255.224.0
85.115.197.0/255.255.255.0
194.176.111.0/255.255.255.0
91.192.64.0/255.255.252.0
212.2.224.0/255.255.224.0
81.20.16.0/255.255.240.0
212.42.96.0/255.255.224.0
31.192.248.0/255.255.248.0
77.95.56.0/255.255.248.0
94.143.192.0/255.255.248.0
178.217.168.0/255.255.248.0
212.241.0.0/255.255.224.0
212.97.0.0/255.255.224.0
213.145.128.0/255.255.224.0
31.29.0.0/255.255.224.0
80.72.176.0/255.255.240.0
85.113.0.0/255.255.224.0
89.237.192.0/255.255.192.0
109.201.160.0/255.255.224.0
77.235.0.0/255.255.224.0
85.115.216.0/255.255.248.0
92.245.96.0/255.255.224.0
46.226.208.0/255.255.248.0
194.152.36.0/255.255.255.0
194.152.37.0/255.255.255.0
91.213.233.0/255.255.255.0
178.216.208.0/255.255.248.0
91.205.48.0/255.255.252.0
95.215.244.0/255.255.252.0
217.29.16.0/255.255.240.0
92.62.64.0/255.255.240.0
195.162.92.0/255.255.252.0
85.115.194.0/255.255.255.0
85.115.199.0/255.255.255.0
85.115.200.0/255.255.248.0
85.115.208.0/255.255.248.0
85.115.192.0/255.255.255.0
85.115.193.0/255.255.255.0
85.115.195.0/255.255.255.0
85.115.196.0/255.255.255.0
85.115.198.0/255.255.255.0
81.88.192.0/255.255.240.0[/spoiler]

Проблемс был решен путем добавление доменных имен и IP еще поставил галочку

Код: Выделить всё

Администрирование SAMS > Настройка SAMS (гаечный ключ) > Преобразовывать DNS имена : галочку ставим
сохраняем перезапустим squid, sams.
Пока все работает :-D
Помни прошлое, живи настоящим и думай о будущем.
Изображение
Ответить

Вернуться в «Документация *nix»