Attrib

Позволяет просматривать, устанавливать или снимать атрибуты файла или каталога, такие как «Только чтение», «Архивный», «Системный» и «Скрытый». Выполненная без параметров команда attrib выводит атрибуты всех файлов в текущем каталоге.

Синтаксис

attrib [{+r|-r}] [{+a|-a}] [{+s|-s}] [{+h|-h}] [[диск:][путь] имя_файла] [/s[/d]]

Параметры

+r Установка атрибута «Только чтение». -r Снятие атрибута «Только чтение». +a Установка атрибута «Архивный». -a Снятие атрибута «Архивный». +s Установка атрибута «Системный». -s Снятие атрибута «Системный». +h Установка атрибута «Скрытый». -h Снятие атрибута «Скрытый». [диск:][путь] имя_файла Задание местонахождения и имени каталога, файла или набора файлов, атрибуты которых требуется просмотреть или изменить. Для обработки группы файлов допускается применение подстановочных знаков (? и *) в параметре имя_файла. /s Выполнение команды attrib и всех параметров командной строки для соответствующих файлов в текущем каталоге и всех его подкаталогах. /d Выполнение команды attrib и всех параметров командной строки для каталогов. /? Отображение справки в командной строке.

Заметки

  • Работа с группами файловДля просмотра или изменения атрибутов группы файлов можно воспользоваться подстановочными знаками (? и *) в параметре имя_файла. Для изменения атрибутов системных или скрытых файлов вначале требуется снять соответствующие атрибуты.
  • Использование атрибута «Архивный»Атрибут «Архивный» (т. е. параметр +a) используется для отметки файлов, измененных со времени последнего резервного копирования. Этот атрибут используется в команде xcopy. Для получения дополнительных сведений об атрибуте «Архивный» и команде xcopy щелкните ссылку «».
  • Команда attrib с другими параметрами доступна в консоли восстановления.

Примеры

Чтобы вывести атрибуты файла News86, расположенного в текущем каталоге, введите следующую команду:

attrib news86

Чтобы назначить атрибут «Только чтение» файлу Report.txt, введите следующую команду:

attrib +r report.txt

Чтобы снять атрибут «Только чтение» с файлов в каталоге \Public\Jones на диске B и всех его подкаталогах, введите следующую команду:

attrib -r b:\public\jones\*.* /s

Предположим, что необходимо передать коллеге диск, содержащий файлы из текущего каталога диска A, за исключением файлов с расширением .bak. Поскольку для копирования файлов с установленным атрибутом «Архивный» может быть использована команда xcopy, необходимо установить этот атрибут для всех файлов, подлежащих копированию. Вначале установите атрибут «Архивный» для всех файлов на диске A, а затем снимите этот атрибут для файлов с расширением .bak. Например, введите следующую команду:

attrib +a a:*.* attrib -a a:*.bak

Теперь для копирования файлов с диска A на диск B воспользуйтесь командой xcopy. Запущенная с параметром /a команда xcopy скопирует только файлы с установленным атрибутом «Архивный». Например, введите следующую команду:

xcopy a: b: /a

Если требуется снять атрибут Архивный со скопированных файлов, воспользуетесь командой xcopy с параметром /m вместо /a. Например, введите следующую команду:

xcopy a: b: /m

Оригинал: windowsfaq.ru/content/view/253/57/

Рубрика: *Windows | 1 комментарий

Настройка OpenVPN на CentOS 6.x

Не знаю по какой причине, но в версии CentOS 6.x отсутствует такой чудесный пакет как OpenVPN. А он частенько бывает нам необходим. К счастью существует достаточно дополнительных репозитариев, где все это есть.

Итак, приступим.
Первым делом подключим репозитарий, в котором есть наш пакет. В моем примере это будет repoforge.
Заходим в консоль сервера, например, в папку /root, скачиваем необходимый нам rpm пакет, содержащий установку rpmforge и устанавливаем его:
# cd /root
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Далее, необходимо проверить установлен и активен ли у нас tun/tap интерфейс:
# sudo cat /dev/net/tun
В результате выполнения этой команды, должно появиться сообщение вида
# cat: /dev/net/tun: File descriptor in bad state
Это значит что с интерфейсом все нормально.
Далее устанавливаем, собственно, сам OpenVPN:
# yum install openvpn
А вот дальше начинается самое интересное. Нам нужно сгенерировать ключи для OpenVPN. Для этого копируем соответствующий инструментарий в /etc/openvpn:
# cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
Затем необходимо немного изменить файл vars, чтоб он правильно работал в CentOS 6.3. Открываем файл /etc/openvpn/easy-rsa/2.0/vars в любимом редакторе и правим:
# vi /etc/openvpn/easy-rsa/2.0/vars
меняем строку 29 с:
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
на:
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

Сохраняемся и выходим.
Далее генерируем ключи:
# chmod 755 /etc/openvpn/easy-rsa/2.0/*
#cd /etc/openvpn/easy-rsa/2.0
# source /etc/openvpn/easy-rsa/2.0/vars
# /etc/openvpn/easy-rsa/2.0/clean-all
# chmod 755 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/pkitool
# /etc/openvpn/easy-rsa/2.0/build-ca
# /etc/openvpn/easy-rsa/2.0/build-key-server server
# /etc/openvpn/easy-rsa/2.0/build-dh
# /etc/openvpn/easy-rsa/2.0/build-key client1
# /etc/openvpn/easy-rsa/2.0/build-key client2

Копируем полученные ключи в папку /etc/openvpn
cp -r /etc/openvpn/easy-rsa/2.0/keys/* /etc/openvpn/
и конфигурационный файл server.conf туда же:
cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/
Правим его.
Ниже приведу мой конфиг:
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log         /var/log/openvpn.log
verb 0

Теперь включаем форвард в ядре. Для этого изменяем в файле /etc/sysctl.conf
# vi /etc/sysctl.conf
строку
net.ipv4.ip_forward = 0
на строку:
net.ipv4.ip_forward = 1

После этого включаем трансляцию адресов NAT чтобы пакеты от клиентской машины попадая на наш выделенный сервер могли уйти в Интернет, ну и, соответственно, возвращались назад.

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Для VPS на базе OpenVZ команда выглядит так:

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx — это Ip адрес сетевого интерфейса вашего VPS.
Сохраняем конфиг iptables:

iptables-save > /etc/sysconfig/iptables

Перезагружаем OpenVPN и радуемся настроенному VPN.

# service openvpn restart

Более подробно о настройке OpenVPN я писал статье Установка и настройка OpenVPN в CentOS 4. Здесь же описаны основные шаги по установке пакета под centos 6.x

Оригинал dedicatesupport.com/content/nastroika-openvpn-na-centos-6x

Рубрика: *CentOS | Оставить комментарий

CentOS / Redhat Iptables Настройка брандмауэра

Как настроить брандмауэр называется Netfilter (Iptables) в CentOS / RHEL / Fedora / RedHat Enterprise Linux?

Netfilter представляет собой брандмауэр для систем Linux операционной. Он входит в состав дистрибутива, и она включена по умолчанию. Этот брандмауэр контролирует программу IPTables. Netfilter фильтрация происходит на уровне ядра, прежде чем программа может даже обрабатывать данные из сети пакетов.

Iptables конфигурационный файл

По умолчанию конфигурационные файлы для RHEL / CentOS / Fedora Linux являются:

/etc/sysconfig/iptables — системные скрипты, которые активируют брандмауэр, читая этот файл.

Отображения правила по умолчанию

Введите следующую команду:

iptables —line-numbers -n -L

Пример результатов:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
3    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
4    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
5    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:53
8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
Включить брандмауэр

Введите следующие команды, чтобы включить брандмауэр:

chkconfig iptables on
service iptables start
# restart the firewall
service iptables restart
# stop the firewall
service iptables stop
Понимание Firewall

Есть всего 4 цепочек

  1. Input — по умолчанию цепочка используется для пакетов, адресованных к системе. Используйте это, чтобы открыть или закрыть входящие порты (например, 80,25 и 110 и т.д.) и IP-адреса / подсети (например, 202.54.1.20/29).
  2. Output — по умолчанию используется цепь, когда пакеты формируются из системы. Используйте это открытие или закрытие исходящих портов и IP адресов / подсетей.
  3. FORWARD — По умолчанию цепи используется, когда пакеты отправлять через другой интерфейс. Обычно используется, когда вы настроить Linux в качестве маршрутизатора. Например, eth0 подключен к ADSL / кабельных модемов и eth1 подключен к локальной сети. Используйте FORWARD цепи отправлять и получать трафик из локальной сети к Интернету.
  4. RH-Firewall-1-INPUT — Это определяемое пользователем сети. Он используется ввод, вывод и вперед цепи.
Пакет соответствующих правил
  1. Каждый пакет начинается в первое правило в цепочке.
  2. Пакет продолжается, пока не соответствует правилу.
  3. Если совпадение найдено, то управление перейдет к указанной цели (например, REJECT, ACCEPT, DROP).
Значения целевых
  • Целевые средства позволят ACCEPT пакета.
  • Целевая REJECT значит отбросить пакет и отправить сообщение об ошибке на удаленном хосте.
  • Целевая DROP означает отбросить пакет и не посылают сообщение об ошибке удаленный хост или хост-отправитель.
/etc/sysconfig/iptables

Редактировать /etc/sysconfig/iptables, введите:

# vi /etc/sysconfig/iptables

Вы увидите правила по умолчанию следующим образом:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
Отбросьте все трафик

Найти строки:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

Обновление, как следует изменить политику по умолчанию отказаться от принять за вход и вперед встроенные цепи:

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
Log и Drop Spoofing адрес источника

Добавьте следующие строки перед окончательным COMMIT строки:

-A INPUT -i eth0 -s 10.0.0.0/8 -j LOG --log-prefix "IP DROP SPOOF "
-A INPUT -i eth0 -s 172.16.0.0/12 -j LOG --log-prefix "IP DROP SPOOF "
-A INPUT -i eth0 -s 192.168.0.0/16 -j LOG --log-prefix "IP DROP SPOOF "
-A INPUT -i eth0 -s 224.0.0.0/4 -j LOG --log-prefix "IP DROP MULTICAST "
-A INPUT -i eth0 -s 240.0.0.0/5 -j LOG --log-prefix "IP DROP SPOOF "
-A INPUT -i eth0 -d 127.0.0.0/8 -j LOG --log-prefix "IP DROP LOOPBACK "
-A INPUT -i eth0 -s 169.254.0.0/16  -j LOG --log-prefix "IP DROP MULTICAST "
-A INPUT -i eth0 -s 0.0.0.0/8  -j LOG --log-prefix "IP DROP "
-A INPUT -i eth0 -s  240.0.0.0/4  -j LOG --log-prefix "IP DROP "
-A INPUT -i eth0 -s  255.255.255.255/32  -j LOG --log-prefix "IP DROP "
-A INPUT -i eth0 -s 168.254.0.0/16  -j LOG --log-prefix "IP DROP "
-A INPUT -i eth0 -s 248.0.0.0/5  -j LOG --log-prefix "IP DROP "
Log и Drop Весь трафик

Найдите следующие строки:

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Обновление его следующим образом:

-A RH-Firewall-1-INPUT -j LOG
-A RH-Firewall-1-INPUT -j DROP
COMMIT
Открытие порта

Чтобы открыть порт 80 (HTTP-сервер), добавьте следующие линии до COMMIT

-A RH-Firewall-1-INPUT -m tcp -p tcp —dport 80 -j ACCEPT

Чтобы открыть порт 53 (DNS Server) добавьте следующие линии до COMMIT

-A RH-Firewall-1-INPUT -m tcp -p tcp —dport 53 -j ACCEPT

-A RH-Firewall-1-INPUT -m udp -p tcp —dport 53 -j ACCEPT

Чтобы открыть порт 443 (HTTPS сервер) добавьте следующие линии до COMMIT:

-A RH-Firewall-1-INPUT -m tcp -p tcp —dport 443 -j ACCEPT

Чтобы открыть порт 25 (SMTP-сервер) добавьте следующие линии до COMMIT:

-A RH-Firewall-1-INPUT -m tcp -p tcp —dport 25 -j ACCEPT

Только позвольте SSH трафик от 192.168.1.0/24

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 22 -j ACCEPT

Включить доступ для печати 192.168.1.0/24

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -p udp -m udp —dport 631 -j ACCEPT

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -p tcp -m tcp —dport 631 -j ACCEPT

Разрешить законные клиенты NTP для доступа к серверу

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state —state NEW -p udp —dport 123 -j ACCEPT

Открытый FTP-порт 21 (FTP)

-A RH-Firewall-1-INPUT -m state —state NEW -p tcp —dport 21 -j ACCEPT

Сохраните и закройте файл. Редактировать /etc/sysconfig/iptables-config, введите:

# vi /etc/sysconfig/iptables-config

Убедитесь, что FTP-модуль загружается с пробелами список модулей:

IPTABLES_MODULES=»ip_conntrack_ftp»

Чтобы перезапустить брандмауэр, введите следующие команды:

# service iptables restart

# iptables -vnL —line-numbers

Редактировать /etc/sysctl.conf для DoS и SYN защиты

Редактировать /etc/sysctl.conf для защиты от определенных видов атак и добавить / обновить следующим образом:

net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
#net.ipv4.icmp_ignore_bogus_error_messages = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
Альтернативный вариант конфигурации

Вы можете пропустить /etc/sysconfig/iptables файл и создать скрипт с нуля следующим образом:

#!/bin/bash
# A sample firewall shell script 
IPT="/sbin/iptables"
SPAMLIST="blockedip"
SPAMDROPMSG="BLOCKED IP DROP"
SYSCTL="/sbin/sysctl"
BLOCKEDIPS="/root/scripts/blocked.ips.txt"

# Stop certain attacks
echo "Setting sysctl IPv4 settings..."
$SYSCTL net.ipv4.ip_forward=0
$SYSCTL net.ipv4.conf.all.send_redirects=0
$SYSCTL net.ipv4.conf.default.send_redirects=0
$SYSCTL net.ipv4.conf.all.accept_source_route=0
$SYSCTL net.ipv4.conf.all.accept_redirects=0
$SYSCTL net.ipv4.conf.all.secure_redirects=0
$SYSCTL net.ipv4.conf.all.log_martians=1
$SYSCTL net.ipv4.conf.default.accept_source_route=0
$SYSCTL net.ipv4.conf.default.accept_redirects=0
$SYSCTL net.ipv4.conf.default.secure_redirects=0
$SYSCTL net.ipv4.icmp_echo_ignore_broadcasts=1
#$SYSCTL net.ipv4.icmp_ignore_bogus_error_messages=1
$SYSCTL net.ipv4.tcp_syncookies=1
$SYSCTL net.ipv4.conf.all.rp_filter=1
$SYSCTL net.ipv4.conf.default.rp_filter=1
$SYSCTL kernel.exec-shield=1
$SYSCTL kernel.randomize_va_space=1

echo "Starting IPv4 Firewall..."
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# load modules
modprobe ip_conntrack

[ -f "$BLOCKEDIPS" ] && BADIPS=$(egrep -v -E "^#|^$" "${BLOCKEDIPS}")

# interface connected to the Internet 
PUB_IF="eth0"

#Unlimited traffic for loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# DROP all incomming traffic
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

if [ -f "${BLOCKEDIPS}" ];
then
# create a new iptables list
$IPT -N $SPAMLIST

for ipblock in $BADIPS
do
   $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG "
   $IPT -A $SPAMLIST -s $ipblock -j DROP
done

$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST
fi

# Block sync
$IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Sync"
$IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -j DROP

# Block Fragments
$IPT -A INPUT -i ${PUB_IF} -f  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"
$IPT -A INPUT -i ${PUB_IF} -f -j DROP

# Block bad stuff
$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL ALL -j DROP

$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"
$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -j DROP # NULL packets

$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"
$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS

$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"
$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP # FIN packet scans

$IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

# Allow full outgoing connection but no incomming stuff
$IPT -A INPUT -i ${PUB_IF} -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -o ${PUB_IF} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Allow ssh
$IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 22 -j ACCEPT

# Allow http / https (open port 80 / 443)
$IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 80 -j ACCEPT
#$IPT -A INPUT -o ${PUB_IF} -p tcp --destination-port 443 -j ACCEPT

# allow incomming ICMP ping pong stuff
$IPT -A INPUT -i ${PUB_IF} -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPT -A OUTPUT -o ${PUB_IF} -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow port 53 tcp/udp (DNS Server)
$IPT -A INPUT -i ${PUB_IF} -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$IPT -A OUTPUT -o ${PUB_IF} -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 53 -m state --state NEW,ESTABLISHED,RELATED  -j ACCEPT
#$IPT -A OUTPUT -o ${PUB_IF} -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open port 110 (pop3) / 143
$IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 110 -j ACCEPT
$IPT -A INPUT -i ${PUB_IF} -p tcp --destination-port 143 -j ACCEPT

##### Add your rules below ######
#
# 
##### END your rules ############

# Do not log smb/windows sharing packets - too much logging
$IPT -A INPUT -p tcp -i ${PUB_IF} --dport 137:139 -j REJECT
$IPT -A INPUT -p udp -i ${PUB_IF} --dport 137:139 -j REJECT

# log everything else and drop
$IPT -A INPUT -j LOG
$IPT -A FORWARD -j LOG
$IPT -A INPUT -j DROP

exit 0

Оригинал ddos.am/ddos-atack/anti-ddos-programs/iptables/33-centos-redhat-iptables-firewall-configuration-tutorial.html

Рубрика: *CentOS | 1 комментарий

centos rsync backup

Rsync (Remote Synchronization) — Синхронизирует файлы и каталогов с минимальными затратами трафика.
Важным отличием rsync от другого похожего софта является то, что синхронизация осуществляется одним потоком в каждом направлении.
Простым языком:
Rsync Допустим у нас есть отдельный сервер куда будут сливаться бэкап .
С сервера куда мы хотим бэкапы сливать, запускается скрипт/команда rsync с параметрами, которая соединяется с удаленными тачками в сети.
На всех тачках должнабыть запущенна и работать Rsync служба, в конфигурационном файле мы прописали какие именно директории нам нужно синхронизировать.

Установим rsync

yum install -y rsync

Rsync мы будем запускать через xinitd
Суперсервер xinetd пришел на замену устаревшему серверу inetd. Любой сервер, обрабатывающий запросы, обычно может работать в двух режимах.
Если у нас не установлен xinitd. то установим его.

# yum install -y xinetd

Отредактируем конфиг xinetd.

# nano /etc/xinetd.d/rsync
изменим параметр 
disable = yes 
на 
disable = no

Что бы наши изменения вступили в силу мы должны перезагрузить демон xinetd

# /etc/init.d/xinetd restart

Добавим в автозагрузку

# chkconfig xinetd on

теперь нам нужно проверить слушаеться ли xinitd

# netstat -lnpt | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3210/xinetd

Теперь приступим к конфигурации rsync.

# nano /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
motd file = /etc/rsync.motd
log file = /var/log/rsyncd.log
transfer logging = true

[share]
path = /mnt/share/users
comment = For backups from local servers
uid = nobody
gid = nobody
hosts allow = 10.5.2.0/24
hosts deny = *

[site]
path = /var/www/localhost/likeunix.ru/
uid = root
read only = yes
list = yes
comment =  Site directory
hosts allow = 10.5.2.0/24
auth users = bagas
secrets file = /etc/rsyncd.scrt

такс разберем наш конфиг.
uid/gid — Имена групп, можно указать root, но это не эстэтично.
use chroot — запуск rsync в chroot, для большей безопасности.
log file — Файл логов.
transfer logging — Писать в лог о скачиваемых файлах
max connections — Максимальное число конектов
[share] — название блока
path — Путь что сохраняем.
hosts allow — Указываем список сетей или IP адресов, с которых разрешен доступ к шаре:(сети указываем через пробел)
hosts deny — Каие сети IP адреса запрещены
secrets file — Файл с имена пользователей и паролей.
list — Разрешить просмотр файлов.
auth users — список пользователей rsyncd, которым разрешен доступ к шаре (через пробел).
comment — Коментария к шаре.
read only — режим только чтение

Создадим файл приветствия.

# nano /etc/rsync.motd
################################

Hello from rsync server
Server Adress : 10.5.2.0

################################

Файл приветствия можете свой создать.

Так теперь файл с паролями, так как они у нас будут храниться в открытом виде, надо поставить на них жесткие права

# chown root:root /etc/rsyncd.scrt && chmod 600 /etc/rsyncd.scrt

Выглядит он так.

# nano /etc/rsyncd.scrt
bagas:passwod
shuga:password

Проверим.

#rsync rsync://[email protected]/

Теперь сама команда копирования.

# rsync -uroghtp –progress –delete-after –password-file=/etc/rsyncd.scrt [email protected]::backup /mnt/share_25/

-e ssh Использовать ssh для связи с сервером.
-v, –verbose увеличение отладочной информации, если вы планируете запускать по расписанию то этот пункт вам не нужен.
-u, –update пропускать обновление файлов.
-r, –recursive разрешаем рекурсию в директориях
-o, –owner сохраняем владельца (только под root)
-g, –group сохраняем группу
-h, –human-readable вывод цифр в читаемом виде (Кб, Мб, Гб)
-t, –times сохраняем дату изменения
-p, –perms сохраняем права доступа
–delete-after удалить после синхронизации из директории назначения файлы,отсутствующие в исходной диретокрии.
–password-file Указываем путь, где находится файл с паролем.
-z Упаковываем поток с помощью gzip.

Оригинал likeunix.ru/centos-rsync-backup/

Рубрика: *CentOS | Оставить комментарий

Эта статья может служить кратким введением в систему Red Hat Package Management, или RPM.

Хосе Назарио

Эта статья может служить кратким введением в систему Red Hat Package Management, или RPM. Мы поговорим о том, что собой представляет RPM, почему его следует использовать, а также сравним его с другими системами управления программными пакетами для Linux и Unix.

Red Hat Package Manager (RPM) представляет собой набор инструментальных средств, служащих для создания и управления программными пакетами в Unix-системах. RPM, поставляемый вместе с Red Hat Linux и производными от него дистрибутивами, может работать с любым вариантом Unix, поскольку распространяется в исходных текстах. Однако найти RPM-пакеты для других диалектов Unix непросто.

Хотя управление пакетами строится на довольно тривиальных принципах, его реализация может оказаться делом непростым. Конечно, контролируемая установка ПО, управление уже установленными программными пакетами и их удаление из системы трудностей не представляет. RPM был создан в связи с необходимостью выполнять такие операции эффективно; другого содержательного решения тогда не было.

RPM, в отличие от ряда других менеджеров программных пакетов для Unix, использует собственный формат файлов. Это может породить серьезные проблемы, если потребуется выделить какой-то один компонент из пакета, а утилиты RPM под рукой нет. К счастью, существуют такие инструменты, как Alien, позволяющие получить файлы в формате, который допускает управление, скажем, с помощью tar или ar.

Схема именования файлов RPM сама по себе является стандартизованной конвенцией. Названия RPM имеют формат (имя)-(версия)-(сборка).(платформа).rpm. Например, название cat-2.4-7.i386.rpm используется для обозначения RPM-пакета для утилиты cat версии 2.4, сборки 7 для платформы x86. Если вместо названия платформы указано src, значит, речь идет об исходных текстах.

Зачем нужно управление пакетами?

Для небольших утилит, таких, как, скажем, cat, которые имеют один исполняемый модуль и одну страницу справочника man, RPM не нужен. Но возьмем, например, KDE, включающий множество компонентов и зависимостей и требующий их повсеместного соблюдения. Отследить их все крайне сложно, если вообще возможно.

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

Установка происходит без сучка и задоринки. Вы выбираете то, что вам нужно, и просите систему выполнять за вас «грязную» работу: распаковать программу, убедиться, что места хватает, разместить все в нужном порядке и установить. Отследить зависимости и дополнительные требования программного пакета для хорошего менеджера пакетов тоже не составляет труда.

Управление установленными пакетами также прекрасно осуществляется хорошей системой управления пакетами. Система хранит полный список установленного ПО, который стоит посмотреть, если вы решили что-то установить. Еще важнее то, что такая система позволяет без труда модернизировать имеющиеся решения. Наконец, с ее помощью просто провести проверку корректности пакетов. Зная, какие пакеты установлены и каковы свойства их компонентов, можно быстро диагностировать проблему и с успехом ее устранить.

RPM и другие

Коротко говоря, основное мое недовольство RPM связано с отсутствием для него мощного графического пользовательского интерфейса. При том, что кое-какие интерфейсы есть (такие как gnorpm и glint), в них отсутствуют более сложные функции, реализованные в SGI Software Manager. В целом, я считаю, что RPM лучше выполняет разбор и разрешение конфликтов, чем inst, и намного, намного быстрее. Так что я согласен обойтись и без мощного графического интерфейса.

В RPM меня больше всего восхищает скорость и проверка пакетов, выполняемая с помощью сигнатур пакетов и контрольных сумм компонентов. К примеру, однажды мне пришлось перезагружать SGI Software Manager только потому, что я с ошибками переустановил редактор jot. На установку этого небольшого пакета ушло около 15 минут, не считая перезагрузки.

RPM объединяет несколько файлов в одном архиве и выполняет сжатие архива для создания тела пакета RPM. Более того, вставляется дополнительная заголовочная информация, включающая в себя скрипты, выполняемые перед и после установки для подготовки системы к установке нового пакета, а также информацию для базы данных, которую поддерживает RPM. Зависимости проверяются перед установкой каждого пакета; в соответствии с приведенными флагами могут устанавливаться дополнительные компоненты.

RPM способен творить чудеса именно, благодаря этой своей базе данных.

Установка с помощью RPM

Это базовая функция RPM и одна из наиболее популярных. Для этого запустите команду

rpm -i (пакет)

В случае, если все пойдет хорошо, пакет будет установлен, и вы получите приглашение на ввод команды без каких-либо сообщений. Прискорбнее, если вам понадобится узнать, почему вас постигла неудача. Если указать флаг -h, то можно наблюдать на экране «термометр», заполняемый значками #. Судя по всему, многим нравится использовать флаги -ivh вместе:

rpm -ivh (пакет)

И опять-таки, в этом случае вы немногое узнаете о том, что происходит. Только то, что процесс установки идет без сбоев. Я же, как правило, стремлюсь при установке нового пакета получить всю возможную информацию (-vv). Это позволяет мне видеть, что происходит:

rpm -ivv (пакет)

Хотя выводимая на экран информация обычно прокручивается, она дает возможность точно знать, не возникло ли каких-то проблем. Плюс к тому, понятно, какие модули уже установлены.

Зависимости RPM поддерживает достаточно разумным образом, но все это в немалой степени определяется качеством модуля сборки пакетов. Я встречал пакеты, которые зависели от себя сами, и те, которые, казалось, зависят от пакетов, портящих что-то другое. Помните об этом.

Иногда RPM будет выдавать замечания по поводу пакетов, которые установлены, но не зарегистрированы. Возможно, вы установили их без помощи RPM (скажем, OpenSSL). Чтобы избавится от таких замечаний, вы можете заставить RPM игнорировать зависимости:

rpm -ivv —nodeps (пакет)

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

В редких случаях RPM будет создавать путаницу и настаивать на том, что вы установили пакет, хотя вы этого явно не делали. Хотя, как правило, подобный случай свидетельствует о какой-то ошибке, ее тоже можно обойти. Просто принудительно установите пакет:

rpm -ivv —force (пакет)

Будьте осторожны. Точно так же, как и в том случае, когда вы игнорировали зависимости, принудительная установка пакета может оказаться неблагоразумной. Помните, что ваша система может перестать работать. Пеняйте на себя.

Вероятно, самой большой наградой вам станет возможность использовать одну из потрясающих функций RPM: установку по сети. Иногда, в системе нет сетевых клиентов, а вам необходимо их установить через RPM. Для этого в RPM встроено программное обеспечение клиентов Web и FTP:

rpm -iv ftp://ftp.redhat.com/ path/package.rpm

rpm -iv http://www.me.com/ path/package.rpm

Управление пакетами

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

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

rpm -qip (пакет)

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

Все это замечательно, но, предположим, вы хотите узнать, что именно входит в состав данного пакета, из каких файлов он состоит? Да, вы можете просмотреть содержимое пакета во многом так же, как получить таблицу содержимого архива tar (с помощью tar -tvf):

rpm -qlp (пакет)

Это будет список всех файлов в архиве с их полными именами, в том числе названиями каталогов. Я часто пользуюсь этой опцией, чтобы понять, нужно ли устанавливать пакет, но, самое важное, где его устанавливать. Я предпочитаю придерживаться соглашения о том, что модули следует размещать в предназначенных для них местах, однако некоторые менеджеры пакетов этого не делают. Наконец, чтобы увидеть все пакеты, которые вы установили в своей системе, используйте:

rpm -qa

Вам будет выдан список пакетов, установленных в системе.

Одна из самых замечательных, с моей точки зрения, возможностей RPM — проверка корректности пакетов. Она часто бывает полезна при поиске засбоившего компьютера или исполняемого модуля, который мог быть пропущен или изменен вследствие какой-то вашей ошибки. Чтобы проверить корректность пакета, используйте флаг -V:

rpm -V (пакет)

Проверить корректность всех пакетов, установленных в системе, тоже довольно просто:

rpm -Va

Режим проверки корректности позволяет получить некоторые статистические данные о файле.

5 Сумма MD5; S Размер файла; L Символьная ссылка; T Время модификации; D Устройство; U Пользователь; G Группа; M Режим (включая права доступа и тип файла)

Иногда эти данные бессмысленны, например, если вы меняете файл /etc/inetd.conf, то размер и сумма MD5 будут изменяться. Однако некоторые вещи меняться не должны, такие как /bin/login. Команда rpm -Va может оказаться полезной для выполнения быстрой проверки защиты, позволяя понять, на что именно в первую очередь следует обратить внимание.

Одной из примечательных особенностей управления пакетами, как можно заметить, является легкость, с которой можно выполнять модернизацию. RPM имеет две возможности модернизации пакетов, которые иногда путают. Первая из них — простая модернизация:

rpm -U (пакет)

Путаница здесь возникает из-за действий, предпринимаемых менеджером пакетов в том случае, если пакет еще не установлен. Если пакет найден, он модифицируется. Если он не найден, то до него модифицируется система, а пакет устанавливается. Иногда это может вызвать недоумение, если вы не хотели устанавливать пакет и выполнять модификацию, которая следует автоматически. Я предлагаю «освежать» только те пакеты, последнюю версию которых вы действительно хотите иметь:

rpm -F (пакет)

В этом случае будут модифицированы только установленные пакеты, и, если пакет не найден, то устанавливаться он не будет.

Модификация тоже выполняется весьма интересным образом. Сначала устанавливается новая версия и отмечаются ее отличия от старой. Затем старая версия удаляется, но только отдельные ее части так, чтобы не затронуть новые компоненты. Представьте, если /usr/local/bin/netscape был изменен, а затем удален, то все усилия пропали бы даром!

Удаление пакетов

Вы можете устанавливать, обновлять и управлять пакетами и, конечно же, вы можете деинсталлировать пакеты с помощью RPM. Чтобы «безоговорочно» удалить пакет RPM, используйте:

rpm -e (пакет)

В отличие от установок и модернизаций, при удалении для указания пакета следует использовать не название «пакет-версия.i386.rpm», а просто «пакет-версия». Это имена, которые выводятся на экран в режиме запроса и именно их и следует указывать. Вы должны дать менеджеру пакетов возможность удалить все компоненты пакета, указав самую общую часть имени, например, для linuxconf и linuxconf-devel это будет linuxconf. Можно также обойтись без зависимостей:

rpm -e —nodeps (пакет)

Здесь вы вновь берете риск на себя, поскольку можете в итоге удалить больше, чем рассчитываете. Можно, как и при установке, добавить флаги, чтобы получить более детальную информацию.

Некоторые замечания о RPM

Иногда разработчики создают довольно странные зависимости для своих RPM-пакетов. Возьмем, к примеру, libsafe. Он имеет четко определенную зависимость: itself («сам от себя»). В этом случае корректно установить пакет можно только с флагом -nodeps. В другой раз пакет может содержать дополнительные фрагменты, и, возможно, придется устанавливать больше, чем вы рассчитывали.

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

RPM можно использовать с любым вариантом Linux/Unix, поскольку он распространяется в исходных текстах. RPM распространяется в рамках Red Hat Linux и некоторых производных от него дистрибутивах. Рекомендуется использовать версии 3.0 и выше, чтобы обеспечить совместимость. Версия 4.0, как сообщается, имеет другой формат базы данных, поэтому я рекомендую разобраться, как разрешить эту проблему, прежде чем модернизировать свой RPM до версии 4.0. Не уверен, что для этого достаточно просто реконструировать базу данных в 4.0.

RPM обычно сам распространяется как RPM-пакет. Понятно? К счастью, он также поставляется и в виде архива, подготовленного с помощью gzip tarball, и непосредственно в исходных текстах. У меня, к примеру, RPM установлен на Slackware, но его можно установить и на SGI Irix или Sun Solaris, если потребуется. Впрочем, он практически бесполезен на других платформах помимо Linux, поскольку для других вариантов Unix пакеты готовятся средствами RPM крайне редко.

Хосе Назарио — аспирант факультета биохимии университета Case Western Reserve University. Он работает с Unix почти десять лет, а с Linux — с версии ядра 1.2.

Оригинал  http://www.osp.ru/os/2001/12/180705/

Рубрика: *CentOS | Оставить комментарий