wget —page-requisites -r -k -l 10 -e robots=off —wait 1 http://livedemo00.template-help.com/xx_xxxxx/
Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения
Cгенерировать открытый/закрытый SSH-ключ в Linux
ssh-keygen
enter
enter
enter
cat id_rsa.pub >> ~/.ssh/authorized_keys
Оставаясь на удаленном хосте, откройте конфигурационный файл SSH: sudo nano /etc/ssh/sshd_config
Убедитесь, что следующие атрибуты имеют корректные значения:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
sudo service ssh reload
На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды: ssh user@remote-host-ip-address
enter
enter
enter
cat id_rsa.pub >> ~/.ssh/authorized_keys
Оставаясь на удаленном хосте, откройте конфигурационный файл SSH: sudo nano /etc/ssh/sshd_config
Убедитесь, что следующие атрибуты имеют корректные значения:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
sudo service ssh reload
На этом все. Теперь вы можете соединяться со своим удаленным хостом с помощью команды: ssh user@remote-host-ip-address
Как подключить дополнительный жесткий диск в Ubuntu
Перед тем, как монтировать дополнительный HDD к файловой системе на нем нужно создать новый раздел, отформатировать его и только после этого смонтировать
1. Список жестких дисков в Ubuntu
Список дисков покажет программа fdisk:
1
| fdisk -l | grep 'Disk /dev/sd' |
2. Создание разделов на HDD в Ubuntu
Для разметки диски снова воспользуемся программой fdisk. Запускаем fdisk с указанием HDD, на котором нужно создать раздел:
1
| fdisk /dev/sdb |
Вот несколько основных команд:
p — просмотр текущей таблицы разделов диска;
n — создание нового раздела;
d — удаление существующего раздела;
w — запись таблицы разделов на диск и последующий выход;
q — выход без записи новой таблицы на жесткий диск.
n — создание нового раздела;
d — удаление существующего раздела;
w — запись таблицы разделов на диск и последующий выход;
q — выход без записи новой таблицы на жесткий диск.
3. Форматирование раздела
1
| mkfs.ext4 /dev/sdb1 |
4. Монтирование раздела
Создадим каталог /hdd в директории /media, в которую монтируются все подключаемые устройства
1
| mkdir /media/hdd |
Монтируем раздел в созданный каталог:
1
| mount /dev/sdb1 /media/hdd |
Проверяем результат:
1
| df -h |
Как видно из скриншота раздел смонтирован в нужный каталог. К сожалению, после перезагрузки Ubuntu раздел придется монтировать заново. Делать это каждый раз вручную не наш метод, поэтому автоматизируем процесс.
За монтирование разделов при старте операционной системы в Ubuntu отвечает файл /etc/fstab. В него то мы и добавим команду на монтирование раздела. Открываем файл /etc/fstab в редакторе nano:
1
| nano /etc/fstab |
Итак, открыв
/etc/fstab
вы увидите достаточно небольшое содержимое, у меня этот файл выглядит так:
Каждому разделу винчестера отводится одна строка. Строчки, начинающиеся с символа решётки (
#
), являются комментариями и системой игнорируются. Формат каждой записи очень простой:раздел_винчестера точка_монтирования файловая_система опции_монтирования два_вспомогательных_числа
Помните, в статье про разметку диска я рассказывал, что разделы винчестера в Linux именуются как
sdaX
(или sdbX
, sdcX
и т.д. если у вас несколько винчестеров). Так вот, в fstab
используется несколько другой механизм идентификации винчестеров6). Для этой цели используются так называемые uuid
, достаточно длинные строчки из произвольных букв латинского алфавита и цифр7). Для того, чтобы узнать uuid
для нужного вам раздела выполните в терминале команду8)ls -l /dev/disk/by-uuid
Вот как выглядит результат выполнения у меня:
Я думаю, понятно, что к чему,
uuid
для каждого раздела выделен голубым цветом.
Итак, первое поле записи в
fstab
для разделов винчестера выглядит так:UUID=ваш_uuid
Второе поле - это точка монтирования, тут всё просто, собственно вам всего лишь надо указать желаемую директорию. Однако учтите, что во-первых, указываемый каталог должен существовать, а во-вторых, в записи его имени не должно быть спецсимволов и пробелов.
В конец файла вставляем строку
1
| UUID=ваш_uuid /media/hdd ext4 defaults 1 2 |
сохраняем (Ctrl+O) и закрываем nano (Ctrl+X).
5. Проверка
Проверить работоспособность проделанных действий можно двумя способами:
— Первый способ. Перезагрузить Ubuntu и после загрузки набрать команду df -h. Раздел /dev/sdb1 должен быть смонтирован.
— Второй способ — это путь джедая =) Нужно отмонтировать раздел командой umount /media/hdd и перезагрузить файл fstab командой mount -a.
— Второй способ — это путь джедая =) Нужно отмонтировать раздел командой umount /media/hdd и перезагрузить файл fstab командой mount -a.
sh скрипт для резервного копирования сайта
Скрипт для резервного копирования сайта. Ссылка на источник https://dev.1c-bitrix.ru/community/blogs/howto/945.php
#!/bin/sh
doc_root=$1
name=$2
if [ -z $doc_root ]; then
echo Usage: $0 /path/to/document/root [backup_name]
exit
fi
if [ -z $name ]; then
name=backup
fi
dbconn=$doc_root/bitrix/php_interface/dbconn.php
readcfg() {
grep $1 $dbconn | sed 's/.*"\(.*\)".*/\1/'
}
host=`readcfg DBHost`
username=`readcfg DBLogin`
password=`readcfg DBPassword`
database=`readcfg DBName`
utf=`grep 'BX_UTF' $dbconn | grep true`
if [ -z "$utf" ]; then
charset=cp1251
else
charset=utf8
fi
backup_dir=$doc_root/bitrix/backup
if [ ! -e $backup_dir ]; then
mkdir $backup_dir
fi
cd $doc_root &&
mysqldump -h$host -u$username -p$password --default-character-set=$charset $database > $backup_dir/$name.sql &&
tar -cf $backup_dir/$name.tar $backup_dir/$name.sql &&
rm $backup_dir/$name.sql &&
tar -rf $backup_dir/$name.tar --exclude '*bitrix/tmp/*' --exclude '*bitrix/updates/*' --exclude '*bitrix/backup/*' --exclude '*bitrix/*cache/*' . &&
gzip -f -9 $backup_dir/$name.tar &&
echo OK && exit
echo Error
21 пример использования iptables для администраторов.
Знак # означает, что команда выполняется от root. Откройте заранее консоль с рутовыми правами - sudo -i
в Debian-based системах или su
в остальных.
1. Показать статус.
# iptables -L -n -v
Где:
-L : Показать список правил.
-v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы 'K', 'M' or 'G'.
-n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение).
-v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы 'K', 'M' or 'G'.
-n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение).
2. Отобразить список правил с номерами строк.
# iptables -n -L -v --line-numbers
Вы можете использовать номера строк для того, чтобы добавлять новые правила.
3. Отобразить INPUT или OUTPUT цепочки правил.
# iptables -L INPUT -n -v
# iptables -L OUTPUT -n -v --line-numbers
4. Остановить, запустить, перезапустить файрвол.
Силами самой системы:
# service ufw stop
# service ufw start
Можно также использовать команды iptables для того, чтобы остановить файрвол и удалить все правила:
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
Где:
-F : Удалить (flush) все правила.
-X : Удалить цепочку.
-t table_name : Выбрать таблицу (nat или mangle) и удалить все правила.
-P : Выбрать действия по умолчанию (такие, как DROP, REJECT, или ACCEPT).
-F : Удалить (flush) все правила.
-X : Удалить цепочку.
-t table_name : Выбрать таблицу (nat или mangle) и удалить все правила.
-P : Выбрать действия по умолчанию (такие, как DROP, REJECT, или ACCEPT).
5. Удалить правила файрвола.
Чтобы отобразить номер строки с существующими правилами:
# iptables -L INPUT -n --line-numbers
# iptables -L OUTPUT -n --line-numbers
# iptables -L OUTPUT -n --line-numbers | less
# iptables -L OUTPUT -n --line-numbers | grep 202.54.1.1
Получим список IP адресов. Просто посмотрим на номер слева и удалим соответствующую строку. К примеру для номера 3:
# iptables -D INPUT 3
Или найдем IP адрес источника (202.54.1.1) и удалим из правила:
# iptables -D INPUT -s 202.54.1.1 -j DROP
Где:
-D : Удалить одно или несколько правил из цепочки.
-D : Удалить одно или несколько правил из цепочки.
6. Добавить правило в файрвол.
Чтобы добавить одно или несколько правил в цепочку, для начала отобразим список с использованием номеров строк:
# iptables -L INPUT -n --line-numbers
Чтобы вставить правило между 1 и 2 строкой:
# iptables -I INPUT 2 -s 202.54.1.2 -j DROP
Проверим, обновилось ли правило:
# iptables -L INPUT -n --line-numbers
7. Сохраняем правила файрвола.
Через iptables-save:
# iptables-save > /etc/iptables.rules
8. Восстанавливаем правила.
Через iptables-restore
# iptables-restore < /etc/iptables.rules
9. Устанавливаем политики по умолчанию.
Чтобы сбрасывать весь трафик:
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -L -v -n
После вышеперечисленных команд ни один пакет не покинет данный хост.
# ping google.com
10. Блокировать только входящие соединения.
Чтобы сбрасывать все не инициированные вами входящие пакеты, но разрешить исходящий трафик:
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -L -v -n
Пакеты исходящие и те, которые были запомнены в рамках установленных сессий - разрешены.
# ping google.com
11. Сбрасывать адреса изолированных сетей в публичной сети.
# iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Список IP адресов для изолированных сетей:
10.0.0.0/8 -j (A)
172.16.0.0/12 (B)
192.168.0.0/16 (C)
224.0.0.0/4 (MULTICAST D)
240.0.0.0/5 (E)
127.0.0.0/8 (LOOPBACK)
10.0.0.0/8 -j (A)
172.16.0.0/12 (B)
192.168.0.0/16 (C)
224.0.0.0/4 (MULTICAST D)
240.0.0.0/5 (E)
127.0.0.0/8 (LOOPBACK)
12. Блокировка определенного IP адреса.
Чтобы заблокировать адрес взломщика 1.2.3.4:
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP
# iptables -I INPUT -m iprange --src-range 5.143.231.0-5.143.231.255 -j DROP
13. Заблокировать входящие запросы порта.
Чтобы заблокировать все входящие запросы порта 80:
# iptables -A INPUT -p tcp --dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
Чтобы заблокировать запрос порта 80 с адреса 1.2.3.4:
# iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
14. Заблокировать запросы на исходящий IP адрес.
Чтобы заблокировать определенный домен, узнаем его адрес:
# host -t a facebook.com
Вывод: facebook.com has address 69.171.228.40
Найдем CIDR для 69.171.228.40:
# whois 69.171.228.40 | grep CIDR
Вывод:
CIDR: 69.171.224.0/19
CIDR: 69.171.224.0/19
Заблокируем доступ на 69.171.224.0/19:
# iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP
Также можно использовать домен для блокировки:
# iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
# iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP
15. Записать событие и сбросить.
Чтобы записать в журнал движение пакетов перед сбросом, добавим правило:
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Проверим журнал (по умолчанию /var/log/messages):
# tail -f /var/log/messages
# grep -i --color 'IP SPOOF' /var/log/messages
16. Записать событие и сбросить (с ограничением на количество записей).
Чтобы не переполнить раздел раздутым журналом, ограничим количество записей с помощью -m. К примеру, чтобы записывать каждые 5 минут максимум 7 строк:
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG --log-prefix "IP_SPOOF A: "
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
16. Сбрасывать или разрешить трафик с определенных MAC адресов.
# iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP
## *разрешить только для TCP port # 8080 с mac адреса 00:0F:EA:91:04:07 * ##
# iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT
17. Разрешить или запретить ICMP Ping запросы.
Чтобы запретить ping:
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Разрешить для определенных сетей / хостов:
# iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT
Разрешить только часть ICMP запросов:
### ** предполагается, что политики по умолчанию для входящих установлены в DROP ** ###
# iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
## ** разрешим отвечать на запрос ** ##
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
18. Открыть диапазон портов.
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
19. Открыть диапазон адресов.
## разрешить подключение к порту 80 (Apache) если адрес в диапазоне от 192.168.1.100 до 192.168.1.200 ##
# iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT
## пример для nat ##
# iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.20-192.168.1.25
20. Закрыть или открыть стандартные порты.
Заменить ACCEPT на DROP, чтобы заблокировать порт.
## ssh tcp port 22 ##
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
## cups (printing service) udp/tcp port 631 для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j ACCEPT
## time sync via NTP для локальной сети (udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT
## tcp port 25 (smtp) ##
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
# dns server ports ##
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
## http/https www server port ##
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
## tcp port 110 (pop3) ##
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
## tcp port 143 (imap) ##
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
## Samba file server для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
## proxy server для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
## mysql server для локальной сети ##
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
21. Ограничить количество параллельных соединений к серверу для одного адреса.
Для ограничений используется connlimit модуль. Чтобы разрешить только 3 ssh соединения на одного клиента:
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
Установить количество запросов HTTP до 20:
# iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP
Где:
--connlimit-above 3 : Указывает, что правило действует только если количество соединений превышает 3.
--connlimit-mask 24 : Указывает маску сети.
--connlimit-above 3 : Указывает, что правило действует только если количество соединений превышает 3.
--connlimit-mask 24 : Указывает маску сети.
Помощь по iptables.
Для поиска помощи по iptables, воспользуемся man:
$ man iptables
Чтобы посмотреть помощь по определенным командам и целям:
# iptables -j DROP -h
Проверка правила iptables.
Проверяем открытость / закрытость портов:
# netstat -tulpn
Проверяем открытость / закрытость определенного порта:
# netstat -tulpn | grep :80
Проверим, что iptables разрешает соединение с 80 портом:
# iptables -L INPUT -v -n | grep 80
В противном случае откроем его для всех:
# iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
Проверяем с помощью telnet
$ telnet ya.ru 80
Можно использовать nmap для проверки:
$ nmap -sS -p 80 ya.ru
Подписаться на:
Сообщения
(
Atom
)