четверг, 22 февраля 2018 г.

Проброс портов в firewalld и iptables в CentOS7

Проброс портов в firewalld и iptables в CentOS7

Проброс портов через firewalld

Просмотр статуса сервиса firewalld
# systemctl status firewalld

Просмотр созданных правил
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Пробросить порт 9006 на 80 порт сервера 10.200.16.216
# firewall-cmd --zone=public --add-masquerade --permanent
# firewall-cmd --zone=public --add-forward-port=port=9006:proto=tcp:toport=80:toaddr=10.200.16.216 --permanent

Перезагрузка службы и применение настроек
# firewall-cmd --reload


Проброс портов через iptables 

Сервиса iptables не существует. Iptables – это набор команд для изменения пакетного фильтра netfilter, встроенного в ядро Linux. Для работы netfilter необходимы две таблицы: таблица filter и таблица nat
Просмотр действующих правил таблицы filter
# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Просмотр правил всех таблиц
# service  iptables status
Таблица: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Таблица: nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Файл настроек iptables - /etc/sysconfig/iptables
В файле два блока – для таблицы nat и таблицы filter
# Generated by iptables-save v1.4.7 on Tue Dec 31 10:19:33 2013
*nat
:PREROUTING ACCEPT [146:9375]
:POSTROUTING ACCEPT [457:36459]
:OUTPUT ACCEPT [457:36459]
COMMIT
# Completed on Tue Dec 31 10:19:33 2013
# Generated by iptables-save v1.4.7 on Tue Dec 31 10:19:33 2013
*filter
:INPUT ACCEPT [4027:397752]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3661:1561691]
COMMIT
# Completed on Tue Dec 31 10:19:33 2013

Для возможности проброса портов необходимо включить переадресацию трафика на уровне ядра
# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Чтобы настройка сохранялась после перезагрузки используйте такую команду:
# sysctl -w net.ipv4.ip_forward=1

Пробросить порт 9006 на 80 порт сервера 10.200.16.216
# iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 9006 -j DNAT --to-destination 10.200.16.216:80
# iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -d 10.200.16.216 -j SNAT --to-source 10.200.16.227

Сохранение настроек
# service iptables save

воскресенье, 24 декабря 2017 г.

Использование SSH в PHP

Использование SSH в PHP

Для использования ssh в PHP необходимо установить расширение
# yum install php-pecl-ssh2
Что бы применить раширение в Apache необходимо перезапустить apache
# service httpd restart

Пример кода подключения к серверу и выполнения команды:

Переменные $ip, $login, $password, $cmd должны быть определены.

$connection = ssh2_connect($ip, 22);
ssh2_auth_password($connection, $login, $password);

$stream = ssh2_exec($connection, $cmd);
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);

stream_set_blocking($stream, true);
stream_set_blocking($errorStream, true);

echo "Output: " . stream_get_contents($stream);
echo "Error: " . stream_get_contents($errorStream);

fclose($errorStream);

fclose($stream);

Текстовый редактор ATOM. Установка

Текстовый редактор ATOM. Установка

1. Заходим на сайт atom.io



2. По ссылке «Download Windows 64-bit installer» скачиваем программу «AtomSetup-x64.exe»
3. Запускаем «AtomSetup-x64.exe»



4. Отказываемся от использования atom по умолчанию, нажав «No» или делаем другой выбор.



5. Установка дополнительных плагинов 
File ? Settings 
(или клавиши Ctrl + ,  - клавиши Ctrl, плюс и запятая)
Меню + Install
В поиском меню можно искать пакеты для atom и затем устанавливать их.


Плагин emmet позволяет писать хорошо форматированный HTML с помощью удобной сокращенной записи.
Плагин atom-beautify помогает расставлять в коде отступы, которые повышают читабельность.
Плагин autocomplete-paths предлагает имена файлов из файловой системы в меню автодополнения по мере набора текста
Плагин api-docs обеспечивает поиск по документации по ключевому слову.
Ряд плагинов из группы linter необходимы для проверки стиля и синтаксиса кода. После установки основного плагина linter будет предложено установить linter-ui-default, а затем intentions, busy-signal. Соглашаемся.


Дополнительный плагины группы linter-csslint, linter-htmlhint обеспечивают проверку кода CSS, HTML и JavaScript кода.

6. Готово