Архив рубрики: linux

hot keys

читшит: www.jetbrains.com/phpstorm/documentation/PhpStorm_ReferenceCard.pdf

Ctrl+Q на названии функции — выдает доку по функции
Ctrl+P на параметре фунциии — выдает описание параметра
Shift+F1 на названии функции — переходит по ссылке, если такая была привязана к функции (для нативных PHP-функций переходит на php.net/function.name)
Alt+стрелки вверх/вниз — перемещение между методами класса
Ctrl+Alt+стрелки влево/вправо — перемещает вперед/назад между местами кода, которые только что просматривались
Ctrl+E, Ctrl+Shift+E — недавно просмотренные/редактированные файлы
Ctrl+Shift+F — поиск по проекту
Ctrl+Shift+N, double Shift — быстрый и очень удобный поиск по файлам
Ctrl+/ — закомментить/раскомментить выделенный код/строку
Ctrl+D — дублировать выделенный код/строку
/** и Enter перед названием функции — автоматическое формирование PHPDoc
Ctrl+Shift+U — выделенный код к верхнему или нижнему регистру
Ctrl+Shift+V — последние 5 записей в буфере
Alt+F7 на функции — найти места вызова функции
F11 — добавить/убрать bookmark (появляется справа черная засечка)
Ctrl+Alt+L — авто-формат выделенного кода (правила форматирования очень гибко настраиваются в настройках)
Shift, Shift это поиск по всему, он лучше чем Ctrl+Shift+A (действия) или Ctrl+Shift+N (только файлы).
Ctrl+W, выделение, его нужно жать несколько раз подряд, пока не выделит все что нужно :)
Ctr+Alt куча полезного из рефакторинга

block/unlock ip

link

Как заблокировать IP адрес с помощью iptables на Linux

Я установил и запустил CentOS на моем сервере , и я часто нахожу , что мой сервер подвергается нападению другими компьютерами. Грубая сила SSH атаки, сканирование портов , сканирование вирусов и так далее. В этой теме я расскажу и покажу вам на готовом примере, как можно блокировать IP -адрес на сервере Linux с помощью IPTables .

Во-первых, я буду считать что вы уже используете IPTables . Если вам нужна помощь в настройке, топрочитайте эту статью.

Как заблокировать IP -адрес ?

Пример. Я хочу заблокировать входящий запрос от некоторого IP, предположим 192.168.244.134 , то нужно войти как root и ввести следующую команду:

Где ,
– I: Вставка цепи в верхней части правил .
– s: Матч IP -адрес источника .
– j : Перейти к указанным целевым цепям , если пакету соответствует текущее правило .

Чтобы отбрасывать пакеты , приходящие на интерфейс eth0 с 192.168.244.134 , введите следующую команду:

Как заблокировать подсеть ?

Используйте следующий синтаксис для блокирования 10.0.0.0 /8:

Как сохранить заблокированный IP -адрес ?

Чтобы сохранить заблокированный IP -адрес для Iptables в файл конфигурации , введите следующую команду:

или

Как разблокировать IP- адрес?

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

Пример вывода:

Чтобы разблокировать 192.168.244.134 необходимо удалить номер строки 1, для этого введите:

git in github

echo # custom_joomla >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:shilovk/custom_joomla.git
git push -u origin master

…or push an existing repository from the command line

git remote add origin git@github.com:shilovk/custom_joomla.git
git push -u origin master

ssh server refused our key

link

/etc/ssh/sshd_config

and set log level:

LogLevel DEBUG3

Then try to authenticate, and when it fails, look for log file:

/var/log/secure

LogLevel is defined in /etc/ssh/sshd_config. The default log is/var/log/auth.log unless defined otherwise in sshd_config

It sounds like you are attempting to add a users key into root’s authorized_keys file instead of the users authorized_keys file.

Just to clarify:

roots key should be in /root/.ssh/authorized_keys

users key should be in /home/USERNAME/.ssh/authorized_keys

It is possible to store the keys in /etc/ssh as you suggested, but not in the way that you are doing it. This is generally done when the users home directory is encrypted. In order for this to work, you need to make sure the following is done:

# mkdir /etc/ssh/USERNAME
# chmod 755 /etc/ssh/USERNAME
# chown USERNAME /etc/ssh/USERNAME
# touch /etc/ssh/USERNAME/authorized_keys
# chmod 644 /etc/ssh/USERNAME/authorized_keys
# chown USERNAME /etc/ssh/USERNAME/authorized_keys
# cat /home/USERNAME/.ssh/authorized_keys > /etc/ssh/USERNAME/authorized_keys
# echo "AuthorizedKeysFile /etc/ssh/%u/authorized_keys" >> /etc/ssh/sshd_config

Note: You might want to actually edit /etc/ssh/sshd_config instead of just appending to the end, as it is possible that you already have an AuthorizedKeysFile set.

 

sendmail mail

link

Многие сталкивались с проблемой отправки сообщений с сервера из bash/perl/python/php/etc…

На самом это достаточно просто.
Достаточно поставить sendmail.

yum install sendmail sendmail-cf mailx -y #centos
sudo apt-get install mailutils #ubuntu

chkconfig --level 345 sendmail on

/etc/init.d/sendmail start
Starting sendmail:                                         [  OK  ]
Starting sm-client:                                        [  OK  ]

В принципе вы уже можете отправлять почту, но по умолчанию в конфигурации указано что вы отправляете почту с хоста localhost.localdomain

Следующая секция составлена с учётом того что ваш hostname  в системе настроен верно.
Настроить эту системную переменой в CentOS вы можете в файле /etc/sysconfig/network
Проверить какой у вас сейчас hostname, как не странно можно командой hostname =))Итак вносим изменения в конфигурацию sendmail 

sed -i -e "s/^LOCAL_DOMAIN.*$/LOCAL_DOMAIN(\`${HOSTNAME}\')dnl/g" /etc/mail/sendmail.mc

make -C /etc/mail

/etc/init.d/sendmail restart

Shutting down sm-client:                                   [  OK  ]
Shutting down sendmail:                                    [  OK  ]
Starting sendmail:                                         [  OK  ]
Starting sm-client:                                        [  OK  ]


Ensure the sendmail-cf rpm is installed. Then

In in sendmail.mc file
change this line
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl

to 
MASQUERADE_DOMAIN(mydomain.com)dnl

Настало время протестировать что у нас получилось.

соответственно подставьте свой email вместо user@domain.com

echo "The test body" | mail -s "The test subject" user@domain.com

Всё можете идти в почту, и проверять свой спам, Поскольку это письмо скорее всего окажется  в нём. По скольку A запись и PTR запись DNS, должны совпадать с вашим внешним IP. Да кстати, эта конструкция может работать через NAT.

в Gmail.com это письмо скорее всего попадёт в спам, а до ящика Mail.ru вовсе не дойдёт потому, что Администрация Mail.ru пытается защитить своих хомячков от всевозможных спамов.

view port 80

смотреть чем занять 80 порт можно так:

lsof -i -P | grep *:80

httpd      1705     root    4u  IPv6   10599      0t0  TCP *:80 (LISTEN)

или

netstat -nlp | grep :80
tcp        0      0 :::80                       :::*                        LISTEN      1705/httpd

Cron Daily server reboot

You need to run the following command:

/sbin/shutdown -r now

with root pirviliges. The way to do it is to use root’s crontab, not your user crontab. A sudo before the usual crontab command does that:

sudo crontab -e

Tip: You can switch the shell’s standard editor for things like crontab and visudo with sudo update-alternatives --config editor (and than selecting the editor of your choice.

Editing the crontab you should add the following line to you file:

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command  

@daily root /sbin/shutdown -r now

The «@daily» here is a shortcut for every day at midnight (equivalent to «0 0 * * *»). By the way — why do you want a daily reboot?

EDIT — see https://help.ubuntu.com/community/CronHowto for the following: «Crontab commands are generally stored in the crontab file belonging to your user account (and executed with your user’s level of permissions). If you want to regularly run a command requiring administrative permissions, edit the root crontab file: sudo crontab -e»

EDIT — thanks to @charlesbridge for his comment — edited answer to include the full path

ip reject

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

iptables -A INPUT -s 85.25.71.227 -j REJECT


Здесь добавляется(-A) правило в таблицу INPUT(входящие пакеты) для IP 85.25.71.227 и действие REJECT(полностью отбрасывать пакеты не показывая признаков жизни даже по пингу). Тоесть вредитель не сможет даже получить пинга от моего сайта. Это супер!
Кстати, можно использовать и DROP, но как заверяет тамошний эксперт — это может вызвать сбои и при большом количестве запросов, так как при DROP тот сервер все таки получает ответ.
Кстати, после этого нужно сохранить данные. Иначе после перезагрузки правила обнулятся. 

service iptables save

php old rpms

rpm -qa | grep php

https://webtatic.com/packages/php53/

rpm -Uvh https://mirror.webtatic.com/yum/centos/5/latest.rpm
yum --enablerepo=webtatic install php