Примеры.
Блокирование и разрешение IP-адресов
Один из самых основных функций брандмауэра является способность блокировать определенные IP-адреса. Вы можете добавлять их в черный список или белый список или можно просто игнорировать IP-адреса с помощью редактирования конфигурационных файлов csf.deny, csf.allow и csf.ignore.
Блокировка IP-адреса
Если вы хотите заблокировать IP-адрес или диапазон, то нужно открыть файл csf.deny:
# vim /etc/csf/csf.deny
Заблокированные IP-адреса или диапазоны нужно писать в одну строку в csf.deny файла. Если вы хотите заблокировать IP-адрес 154.23.31.44, а также IP-диапазон 22,123 * *, вы должны добавить следующие строки в файл:
154.23.31.44 22.123.0.0/16
Диапазоны IP представлены с использованием обозначений CIDR
Блокировка трафика на порту 80 от конкретного диапазона:
tcp|out|d=80|d=12.34.56.78/24 #csf.deny
Синтаксис для продвинутых правил:
tcp/udp|in/out|s/d=port|s/d=ip|u=uid tcp/udp : EITHER tcp OR udp OR icmp protocol in/out : EITHER incoming OR outgoing connections s/d=port : EITHER source OR destination port number (or ICMP type) (use a _ for a port range, e.g. 2000_3000) s/d=ip : EITHER source OR destination IP address u/g=UID : EITHER UID or GID of source packet, implies outgoing connections, s/d=IP value is ignored
Разрешение IP-адресов
Если вы хотите добавить IP-адрес или диапазон в разрешенный диапазон, то вы должны добавить их в csf.allow файл. Разрешение IP-адресов работает аналогично примеру что выше:
# vim /etc/csf/csf.allow
Разрешить соединения через порт 443 для диапазона IP-адресов:
tcp|out|d=443|d=12.34.56.78/27 # csf.allow
Разрешить подключение по SSH для IP:
tcp|in|d=22|s=23.45.67.88 # csf.allow
Игнорирование IP адресов
CSF также предлагает возможность исключать IP-адреса из фильтров брандмауэра. IP-адреса в csf.ignore обойдeт фильтры брандмауэра и они могут быть только заблокированы, если перечисленные в csf.deny файла.
# vim /etc/csf/csf.ignore
Для того, чтобы изменения вступили в силу, необходимо перезагрузить CSF после редактирования любого из файлов, описанных выше, с помощью команды:
csf -r
Команды для csf
Основные команды CSF в брандмауэре из поз командной строки, в качестве альтернативы вы можете просмотреть параметры командной CSF строки с помощью:
# man CSF
или
# CSF -h
Для того чтобы добавить ваш IP адрес в «белый список» или список разрешенных хостов (allow list):
# csf -a 123.45.67.89
Для того чтобы заблокировать IP, используйте:
# csf -d 123.45.67.89
Для того чтобы разблокировать IP и удалить его из /etc/csf/csf.deny используйте:
# csf -dr IP_address
Для того чтобы удалить и разблокировать все записи в /etc/csf/csf.deny
# csf -df
Чтобы удалить IP-адрес из временного IP бан-лист:
# csf -tr IP address
Чтобы очистить все IP-адреса из временных записей:
# csf -tf
Отображает текущего списока allow и deny с IP с их TTL и комментариями:
# csf -t
Отключить CSF и lfd:
# csf -x
Розрешить (включить) csf and lfd:
# csf -e
Запустить firewall правила:
# csf -s
Рестарт правил фаервола
# csf -r
Сброс/остановка правил в firewall:
# csf -f
Поиск IP в списках:
# csf -g IP_address
Посмотреть прослушивающие порты для внешних подключений и кто работает на этих портах:
# csf -p
Отправить себе общую проверку безопасности сервера
# csf -m email_adress
На этом моя статья «Установка CSF на Linux с cPanel» подошла к завершению.
Настройка X11 forwarding используя ssh в Unix/Linux
Открываем файл:
# vim /etc/ssh/sshd_config
И прописываем (приводим к виду):
X11Forwarding yes X11DisplayOffset 10
Так же, можно прописать:
X11UseLocalhost no
Перезапуск SSH сервера:
- Если используете Debian 6, Ubuntu или Linux Mint:
# /etc/init.d/ssh restart
- Если используете Debian 7, CentOS/RHEL 7, Fedora
# systemctl restart ssh.service
- Если используете CentOS/RHEL 6
$ sudo service sshd restart
Вышеупомянутая настройка, позволяет X11 форвардинг на хост сервера. Если вы хотели бы включить X11 forwarding для отдельного пользователя, вы можете использовать пользовательский файл конфигурации ssh (т. е. $HOME/.ssh/config). Таким образом, вы можете использовать переадресацию X11 только тогда, когда вы используете ssh для учетной записи пользователя. Открываем:
$ vim $HOME/.ssh/config
И прописываем:
ForwardX11 yes
Мой файл выглядит следующим образом:
IdentityFile ~/.ssh/id_rsa Host * UseKeychain yes ForwardX11 no ServerAliveInterval 15 ForwardAgent yes ForwardX11Trusted yes GatewayPorts yes
Если используете Vagrant, то внутри его, можно пробросить следующие опции:
config.ssh.forward_agent = true config.ssh.forward_x11 = true
Ну и далее запускаем все это дело.
ERRORS top
EADDRINUSE The specified local address is already in use or the filesystem socket object already exists. EBADF This error can occur for sendmsg(2) when sending a file descriptor as ancillary data over a UNIX domain socket (see the description of SCM_RIGHTS, above), and indicates that the file descriptor number that is being sent is not valid (e.g., it is not an open file descriptor). ECONNREFUSED The remote address specified by connect(2) was not a listening socket. This error can also occur if the target pathname is not a socket. ECONNRESET Remote socket was unexpectedly closed. EFAULT User memory address was not valid. EINVAL Invalid argument passed. A common cause is that the value AF_UNIX was not specified in the sun_type field of passed addresses, or the socket was in an invalid state for the applied operation. EISCONN connect(2) called on an already connected socket or a target address was specified on a connected socket. ENOENT The pathname in the remote address specified to connect(2) did not exist. ENOMEM Out of memory. ENOTCONN Socket operation needs a target address, but the socket is not connected. EOPNOTSUPP Stream operation called on non-stream oriented socket or tried to use the out-of-band data option. EPERM The sender passed invalid credentials in the struct ucred. EPIPE Remote socket was closed on a stream socket. If enabled, a SIGPIPE is sent as well. This can be avoided by passing the MSG_NOSIGNAL flag to send(2) or sendmsg(2). EPROTONOSUPPORT Passed protocol is not AF_UNIX. EPROTOTYPE Remote socket does not match the local socket type (SOCK_DGRAM versus SOCK_STREAM). ESOCKTNOSUPPORT Unknown socket type. ESRCH While sending an ancillary message containing credentials (SCM_CREDENTIALS), the caller specified a PID that does not match any existing process. ETOOMANYREFS This error can occur for sendmsg(2) when sending a file descriptor as ancillary data over a UNIX domain socket (see the description of SCM_RIGHTS, above). It occurs if the number of "in-flight" file descriptors exceeds the RLIMIT_NOFILE resource limit and the caller does not have the CAP_SYS_RESOURCE capability. An in-flight file descriptor is one that has been sent using sendmsg(2) but has not yet been accepted in the recipient process using recvmsg(2). This error is diagnosed since mainline Linux 4.5 (and in some earlier kernel versions where the fix has been backported). In earlier kernel versions, it was possible to place an unlimited number of file descriptors in flight, by sending each file descriptor with sendmsg(2) and then closing the file descriptor so that it was not accounted against the RLIMIT_NOFILE resource limit. Other errors can be generated by the generic socket layer or by the filesystem while generating a filesystem socket object. See the appropriate manual pages for more information.
Установка Secure-Delete на Unix/Linux
Secure-Delete — это комплект консольных утилит для «параноика», которые предназначены для безвозвратного удаления данных. Программа юзает алгоритм стирания по методу Гутмана (Secure Deletion of Data from Magnetic and Solid-State Memory by Peter Gutmann, 1996). Это его был доклад на тему криптографии.
Установка Secure-Delete на Debian/Ubuntu/Mint
И так, чтобы установить, выполните команду:
# apt-get install secure-delete
Ничего сложного, просто установка пакета.
И так, чтобы установить, выполните команду:
# yum install secure-delete
PS: может и не быть такого пакета в ОС.
Установку для других Unix/Linux систем
Если не получилось установить утилиты с пакетов, то можно их собрать с исходного кода.
Скачиваем srm пакет и распаковываем его:
# cd /usr/local/src && wget https://freefr.dl.sourceforge.net/project/srm/1.2.15/srm-1.2.15.tar.gz && tar xfvz srm-*.tar.gz
Выполняем сборку:
# cd srm-* && ./configure && make && make install
Для работы я нашел несколько пакетов, если кто-то знает больше просьба дополнить.
Отправка сигналов с клавиатуры
Сигналы могут быть отправлены с клавиатуры. Несколько стандартных значений по умолчанию перечислены ниже. По умолчанию сочетания клавиш для отправки сигналов прерывания может быть определен с помощью команды stty.
CTRL-C
Отправить SIGINT (прерывание). По умолчанию это вызывает процесс прекращается.
CTRL-Z
Отправить SIGTSTP (Suspend). По умолчанию это вызывает процесс приостановить все операции.
CTRL-\
Отправить SIGQUIT (Quit). По умолчанию это вызывает процесс прекратить немедленно и сбросить ядро.
CTRL-T
Отправить SIGINFO (INFO). По умолчанию это заставляет операционную систему отображать информацию о команде. Не поддерживается на всех системах.
вывод
Когда приложения ведут себя неправильно и вызвают к зависанию системы, это очень заманчиво, чтобы перезагрузить компьютер и начать сеанс снова и снова. С помощью этих команд «kill», вы сможете лучше управлять плохим поведением приложений которые вызывают или могут вызвать крах системы. На этом, я завершаю данную тему «Команда kill в Unix/Linux».
Назначение команды dd
Мы упоминали, что основная задача — обработка файлов. Но в Linux все устройства, порты, оперативная память и память с кодом процессов отображаются как файлы, а это значит, что над ними можно проводить операции в . Еще утилита позволяет осуществлять выборочное копирование файлов с диска. Например, переместить фрагмент файла определенного размера или пропустить несколько гигабайт. Эта функция также помогает считать файлы с поврежденного носителя, изменить расположение байтов в файле, создавать файлы фиксированного размера. Кроме этого в можно создать дополнительную копию загрузочного сектора жесткого диска или прочитать блоки из системных файлов.
Команда kill в Unix/Linux
Сигналы — программные прерывания. Они используются для связи между процессами в UNIX и UNIX-подобных операционных систем, таких как Linux, Mac OS.
Сигналы использовались еще с Bell Labs UNIX в 1970 и сегодня официально определено стандартом POSIX. Когда сигнал поступает на процесс, операционная система прерывает нормальный поток выполнения процесса и обеспечивает уведомление.
Не имеет значения, какую операционную систему вы используете, вы несомненно столкнетесь с тем что ваши приложения, блокируются и отказаться работать должным образом. В Unix, Linux, есть команда «kill», которую вы можете использовать, чтобы прекратить процесс немедленно, но и не только это, но об этом немного позже я расскажу. В этой статье «Команда kill в Unix/Linux» я расскажу и покажу на готовых примерах различные команды утилиты kill.
Команды kill и сигналы
Когда вы выполняете команду «kill», вы на самом деле посылает е сигнал к системе и даете указание расторгнуть работу некорректной роботы приложения. Существует в общей сложности 60 сигналов, которые можно использовать, но все, что вы действительно должны знать, SIGTERM (15) и SIGKILL (9).
Вы можете просмотреть все сигналы с помощью команды:
# kill -l
На моей MacOS:
kill -l на macos
На CentOS:
kill -l на centos
На Debian:
kill -l на Debian
Я постараюсь рассказать о всех сигналах, но для самого начала поговорим только о самых важных и часто использующихся.
Формат вывода
Команда также позволяет вам настроить выходной формат.
Чтобы указать поля, которые должны отображаться в выходных данных команды, используйте параметр .
— это список столбцов, разделенных запятыми, которые будут включены в вывод. Каждое поле можно использовать только один раз. Допустимые имена полей:
- — Источник файловой системы.
- — Тип файловой системы.
- — Общее количество .
- — Количество используемых inodes.
- — Количество доступных inodes.
- — процент используемых inodes.
- — Общее дисковое пространство.
- — Используемое дисковое пространство.
- — Доступное дисковое пространство.
- — Процент используемого пространства.
- — имя файла, если оно указано в командной строке.
- — точка монтирования.
Например, чтобы отобразить вывод всех разделов ext4 в удобочитаемом формате, показывая только имя и размер файловой системы, а также процент используемого пространства, которое вы бы использовали: